winrt::try_capture, modèle de fonction (C++/WinRT)
Un modèle de fonction qui appelle une fonction ou une méthode spécifiée (appelant automatiquement winrt::check_hresult dessus), capture le pointeur d’interface qui est généré à partir de la fonction ou de la méthode, et le retourne en tant que paramètre typename T
de modèle si T
dérive de Windows::Foundation::IUnknown, sinon, retourne un winrt::com_ptr. Retourne un com_ptr vide s’il n’a pas réussi.
Consultez également la fonction winrt::com_ptr::try_capture.
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);
Paramètres de modèle
typename T
Type du pointeur d’interface qui est généré à partir de la fonction ou de la méthode.
typename F
Type d’objet de fonction, tel qu’une fonction libre ou std::function.
typename O
Type d’interface.
typename M
Type de méthode.
typename Args
Zéro ou plusieurs types d’arguments.
Paramètres
function
Objet de fonction de type F
.
p
Pointeur vers un objet de type O
.
object
Winrt::com_ptr de type O
.
method
Méthode (implémentée par O
) de type M
.
args
Zéro ou plusieurs arguments de type Args
.
Valeur retournée
Retourne T
si T
dérive de Windows::Foundation::IUnknown, sinon, retourne winrt::com_ptr. Retourne un com_ptr vide s’il n’a pas réussi.
Remarques
- La
try_capture(F function, Args&&...args)
surcharge appelle l’objet de fonction. - La
try_capture(O* p, M method, Args&& ...args)
surcharge appelle la méthode sur le pointeur. - La
try_capture(winrt::com_ptr<O> const& object, M method, Args&&...args)
surcharge appelle la méthode sur l’objet.
Toutes les surcharges passent (à l’appelant) tous les arguments supplémentaires que vous fournissez. Toutes les surcharges transmettent également les deux arguments supplémentaires requis par ces appels , en particulier un REFIID (ID de la cible du winrt::com_ptr) et un void** (adresse d’un pointeur vers la cible de winrt::com_ptr).
Spécifications
Sdk minimum pris en charge : Windows SDK version 10.0.17134.0 (Windows 10, version 1803)
Espace de noms : winrt
En-tête : %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (inclus par défaut)