Freigeben über


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

Eine Funktionsvorlage, die eine angegebene Funktion oder Methode aufruft (automatisch winrt::check_hresult darauf aufrufen), erfasst den Schnittstellenzeiger, der aus 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. Wird ausgelöst, wenn es nicht erfolgreich ist.

Siehe auch die winrt::com_ptr::Capture-Funktion.

Syntax

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);

Vorlagenparameter

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

typename F Ein Funktionsobjekttyp, z. B. eine kostenlose 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.

object Ein Winrt::com_ptr vom Typ O.

method Eine Methode (implementiert nach O) des Typs M.

args Null oder mehr Argumente des Typs Args.

Rückgabewert

Gibt zurückT, wenn T sie von Windows::Foundation::IUnknown abgeleitet wird, andernfallswinrt::com_ptr zurück. Wird ausgelöst, wenn es nicht erfolgreich ist.

Hinweise

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

Alle Überladungen durchlaufen (an den Aufruf) alle zusätzlichen Argumente, die Sie bereitstellen. 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ützte 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