winrt::capture 函式範本 (C++/WinRT)

函式範本,呼叫指定的函式或方法 () 自動呼叫winrt::check_hresult,擷取函式或方法輸出的介面指標,如果 T 衍生自Windows::Foundation::IUnknown,則會傳回樣板參數 typename T ,否則會傳回winrt::com_ptr。 如果失敗,則會擲回 。

另請參閱 winrt::com_ptr::capture 函式

語法

template <typename T, typename F, typename...Args>
impl::com_ref<T> capture(F function, Args&& ...args);

template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> capture(O* p, M method, Args&& ...args);

template <typename T, typename O, typename M, typename...Args>
impl::com_ref<T> capture(com_ptr<O> const& object, M method, Args&& ...args);

範本參數

typename T 函式或方法輸出的介面指標類型。

typename F 函式物件類型,例如免費函式或 std::function

typename O 介面類別型。

typename M 方法類型。

typename Args 零個或多個引數類型。

參數

functionF 別的函式物件。

pO 別 物件的指標。

object類型的 Owinrt::com_ptr

method方法 (由 類型 M) 實作 O

args 類型的 Args 零個或多個引數。

傳回值

如果衍生自Windows::Foundation::IUnknown,則傳回 ,否則會傳回winrt::com_ptrTT 如果失敗,則會擲回 。

備註

  • capture(F function, Args&&...args) 載會叫用函式物件。
  • capture(O* p, M method, Args&& ...args) 載會在指標上叫用 方法。
  • capture(winrt::com_ptr<O> const& object, M method, Args&&...args) 載會在 物件上叫用 方法。

所有多載都會傳遞 (至叫用者,) 您提供的任何其他引數。 所有多載也會傳遞這類叫用所需的兩個額外引數,特別是 REFIID (winrt::com_ptr) 的目標識別碼,以及 void** (winrt::com_ptr) 目標指標的位址。

規格需求

最低支援的 SDK:Windows SDK 10.0.17134.0 版 (Windows 10版本 1803)

命名空間: winrt

標頭: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion <> \cppwinrt\winrt\base.h 預設包含 ()

另請參閱