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
.
object
Winrt::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)