Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Um modelo de função que chama uma função ou método especificado (chamando automaticamente winrt::check_hresult nele), captura o ponteiro de interface que é saída da função ou método e retorna-o como o parâmetro typename T de modelo se T deriva de Windows::Foundation::IUnknown, caso contrário, retorna um winrt::com_ptr. Lança se não tiver êxito.
Consulte também a função winrt::com_ptr::capture.
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);
Parâmetros de modelo
typename T O tipo do ponteiro de interface que é saída da função ou método.
typename F Um tipo de objeto de função, como uma função livre, ou std::function.
typename O Um tipo de interface.
typename M Um tipo de método.
typename Args Zero ou mais tipos de argumento.
Parâmetros
function Um objeto de função do tipo F.
p Um ponteiro para um objeto do tipo O.
object Um winrt::com_ptr do tipo O.
method Um método (implementado por O) do tipo M.
args Zero ou mais argumentos do tipo Args.
Valor retornado
Retorna T se T deriva de Windows::Foundation::IUnknown, caso contrário, retorna winrt::com_ptr. Lança se não tiver êxito.
Comentários
- A
capture(F function, Args&&...args)sobrecarga invoca o objeto de função. - A
capture(O* p, M method, Args&& ...args)sobrecarga invoca o método no ponteiro. - A
capture(winrt::com_ptr<O> const& object, M method, Args&&...args)sobrecarga invoca o método no objeto.
Todas as sobrecargas passam (para a invocação) quaisquer argumentos adicionais que você fornecer. Todas as sobrecargas também passam pelos dois argumentos adicionais que essas invocações exigem, especificamente, um REFIID (a ID do destino do winrt::com_ptr) e um void** (o endereço de um ponteiro para o destino do winrt::com_ptr).
Requisitos
SDK com suporte mínimo: Windows SDK versão 10.0.17134.0 (Windows 10, versão 1803)
Namespace: winrt
Cabeçalho: %WindowsSdkDir%IncludeWindowsTargetPlatformVersion<>\cppwinrt\winrt\base.h (incluído por padrão)