winrt::try_capture-Funktionsvorlage (C++/WinRT)

Eine Funktionsvorlage, die eine angegebene Funktion oder Methode aufruft (automatisch winrt::check_hresult darauf aufrufen), erfasst den Schnittstellenzeiger, der von der Funktion oder Methode ausgegeben wird, und gibt ihn als Vorlagenparameter typename T zurück, wenn T er von Windows::Foundation::IUnknown abgeleitet wird, andernfalls wird ein winrt::com_ptr zurückgegeben. Gibt eine leere com_ptr zurück , wenn dies nicht erfolgreich ist.

Siehe auch die Winrt::com_ptr::try_capture-Funktion.

Syntax

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

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

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

Vorlagenparameter

typename T Der Typ des Schnittstellenzeigers, der aus der Funktion oder Methode ausgegeben wird.

typename F Ein Funktionsobjekttyp, z. B. eine freie Funktion oder std::function.

typename O Ein Schnittstellentyp.

typename M Ein Methodentyp.

typename Args Null oder mehr Argumenttypen.

Parameter

function Ein Funktionsobjekt vom Typ F.

p Ein Zeiger auf ein Objekt vom Typ O.

objectWinrt::com_ptr vom Typ O.

method Eine Methode (implementiert nach O) vom Typ M.

args Null oder mehr Argumente vom Typ Args.

Rückgabewert

Gibt T zurück, wenn T sie von Windows::Foundation::IUnknown abgeleitet wird, andernfalls winrt::com_ptr zurück. Gibt eine leere com_ptr zurück , wenn dies nicht erfolgreich ist.

Hinweise

  • Die try_capture(F function, Args&&...args) Überladung ruft das Funktionsobjekt auf.
  • Die try_capture(O* p, M method, Args&& ...args) Überladung ruft die Methode auf dem Zeiger auf.
  • Die try_capture(winrt::com_ptr<O> const& object, M method, Args&&...args) Überladung ruft die Methode für das Objekt auf.

Alle Überladungen durchlaufen alle von Ihnen bereitgestellten zusätzlichen Argumente (an den Aufruf). Alle Überladungen übergeben auch die beiden zusätzlichen Argumente, die solche Aufrufe erfordern– insbesondere eine REFIID (die ID des Ziels des winrt::com_ptr) und ein void** (Die Adresse eines Zeigers auf das Ziel des winrt::com_ptr).

Anforderungen

Mindest unterstütztes SDK: Windows SDK Version 10.0.17134.0 (Windows 10, Version 1803)

Namespace: winrt

Header: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (standardmäßig enthalten)

Siehe auch