Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Un modello di funzione che chiama una funzione o un metodo specificato (chiamando automaticamente winrt::check_hresult su di esso), acquisisce il puntatore di interfaccia restituito dalla funzione o dal metodo e lo restituisce come parametro typename T del modello se T deriva da Windows::Foundation::IUnknown, in caso contrario, restituisce un winrt::com_ptr. Genera se l'operazione non riesce.
Vedere anche la funzione winrt::com_ptr::capture.
Sintassi
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);
Parametri di modelli
typename T Tipo del puntatore di interfaccia restituito dalla funzione o dal metodo .
typename F Tipo di oggetto funzione, ad esempio una funzione libera o std::function.
typename O Tipo di interfaccia.
typename M Tipo di metodo.
typename Args Zero o più tipi di argomento.
Parametri
function Oggetto funzione di tipo F.
p Puntatore a un oggetto di tipo O.
object
Winrt::com_ptr di tipo O.
method Metodo (implementato da O) di tipo M.
args Zero o più argomenti di tipo Args.
Valore restituito
Restituisce T se T deriva da Windows::Foundation::IUnknown; in caso contrario, restituisce winrt::com_ptr. Genera se l'operazione non riesce.
Commenti
- L'overload
capture(F function, Args&&...args)richiama l'oggetto funzione. - L'overload
capture(O* p, M method, Args&& ...args)richiama il metodo sul puntatore. - L'overload
capture(winrt::com_ptr<O> const& object, M method, Args&&...args)richiama il metodo sull'oggetto .
Tutti gli overload passano (per l'oggetto invoke) tutti gli argomenti aggiuntivi forniti. Tutti gli overload passano anche i due argomenti aggiuntivi che tali richiami richiedono, in particolare un REFIID (l'ID della destinazione dell'oggetto winrt::com_ptr) e un void** (indirizzo di un puntatore alla destinazione del winrt::com_ptr).
Requisiti
SDK minimo supportato: Windows SDK versione 10.0.17134.0 (Windows 10, versione 1803)
Spazio dei nomi: winrt
Intestazione: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluso per impostazione predefinita)