struct winrt::Windows::Foundation::IUnknown (C++/WinRT)
Cada classe de runtime do C++/WinRT (seja uma classe de runtime do Windows ou de terceiros) deriva de winrt::Windows::Foundation::IUnknown. Ele representa a interface COM IUnknown e fornece instalações como a consulta para uma interface diferente, funções abi e operadores de comparação.
Syntax
struct IUnknown
Requisitos
SDK com suporte mínimo: SDK do Windows versão 10.0.17134.0 (Windows 10, versão 1803)
Namespace: winrt
Cabeçalho: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (incluído por padrão)
Construtores
Construtor | Descrição |
---|---|
Construtor IUnknown::IUnknown | Inicializa uma nova instância do struct IUnknown , opcionalmente com uma cópia ou movimentação dos dados de entrada. |
Funções de membro
Função | Descrição |
---|---|
Função IUnknown::as | Retorna a interface solicitada, se houver suporte. Lança se não for. |
Função IUnknown::try_as | Retorna a interface solicitada, se houver suporte. Retornará null , ou false , se não for. |
Operadores membro
Operador | Descrição |
---|---|
IUnknown::operator bool | Verifica se o objeto IUnknown está referenciando ou não uma interface. |
IUnknown::operator= (operador de atribuição) | Atribui um valor ao objeto IUnknown . |
Funções gratuitas
Função | Descrição |
---|---|
função attach_abi | Anexa um objeto IUnknown a um ponteiro bruto que possui uma referência ao seu destino; uma referência adicional não é adicionada. |
função copy_from_abi | Copia para um objeto IUnknown de outro ponteiro. Diminui a contagem de referência em qualquer interface ou objeto referenciado no momento, copia o parâmetro de ponteiro bruto e começa a gerenciar o tempo de vida da interface ou objeto apontado por ele. |
função copy_to_abi | Copia para outro ponteiro de um objeto IUnknown . Incrementa a contagem de referência em qualquer interface ou objeto referenciado no momento e copia o endereço de memória dessa interface ou objeto no parâmetro . |
função detach_abi | Desanexa da interface IUnknown bruta sem diminuir a contagem de referência, talvez para devolvê-la a um chamador. |
função get_abi | Retorna o ponteiro de interface IUnknown bruto subjacente caso você precise passá-lo para uma função. |
função get_unknown | Uma função auxiliar que retorna o endereço da interface IUnknown bruta subjacente de um objeto de um tipo projetado. |
função put_abi | Retorna o endereço do ponteiro de interface IUnknown bruto subjacente como um ponteiro para um ponteiro para void; essa função ajuda você a chamar métodos (como métodos COM) que retornam referências como parâmetros out por meio de um ponteiro para um ponteiro para void. |
função swap | Troca o conteúdo dos dois parâmetros IUnknown para que eles apontem para o destino um do outro. |
Operadores gratuitos
Função | Descrição |
---|---|
operator!= (operador de desigualdade) | Retorna um valor que indica se os dois parâmetros se referem a destinos diferentes. |
operador< (operador menor que) | Retorna um valor que indica se o destino do primeiro parâmetro ocorre anteriormente na memória do que o do segundo parâmetro. |
operator<= (operador menor que ou igual a) | Retorna um valor que indica se o destino do primeiro parâmetro ocorre anteriormente na memória ou no mesmo local que o do segundo parâmetro. |
operator== (operador de igualdade) | Retorna um valor que indica se os dois parâmetros se referem à mesma interface e/ou objeto. |
operador> (operador maior que) | Retorna um valor que indica se o destino do primeiro parâmetro ocorre mais tarde na memória do que o do segundo parâmetro. |
operator>= (operador maior que ou igual a) | Retorna um valor que indica se o destino do primeiro parâmetro ocorre mais tarde na memória ou no mesmo local que o do segundo parâmetro. |
Construtor IUnknown::IUnknown
Inicializa uma nova instância do struct IUnknown , opcionalmente com uma cópia ou movimentação dos dados de entrada.
Sintaxe
IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;
Parâmetros
other
Outro IUnknown que inicializa o objeto IUnknown .
Função IUnknown::as
Retorna a interface solicitada, se houver suporte. Lança se não for. Essa função será útil se você quiser consultar uma interface que não precisa passar para o chamador.
Sintaxe
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Parâmetros de modelo
typename To
O tipo da interface solicitada.
Parâmetros
to
Uma referência a um valor para receber a interface solicitada.
Retornar valor
Um com_ptr referenciando a interface solicitada ou um ponteiro inteligente fortemente tipado para a interface solicitada (declarada por C++/WinRT ou por terceiros).
Função IUnknown::try_as
Retorna a interface solicitada, se houver suporte. Retorna null
(a auto
sobrecarga -returning) ou false
(a bool
sobrecarga -returning), se não estiver. Essa função será útil se você quiser consultar uma interface que não precisa passar para o chamador.
Sintaxe
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Parâmetros de modelo
typename To
O tipo da interface solicitada.
Parâmetros
to
Uma referência a um valor para receber a interface solicitada. Pode ser uma referência nula.
Retornar valor
Um com_ptr referenciando a interface solicitada ou um ponteiro inteligente fortemente tipado para a interface solicitada (declarada por C++/WinRT ou por terceiros), se a interface solicitada tiver suporte, caso contrário null
(a auto
sobrecarga -retornando) ou false
(a bool
sobrecarga -retornando).
Se to
for uma referência nula, retornará null
ou false
.
IUnknown::operator bool
Verifica se o objeto IUnknown está referenciando ou não uma interface. Se o objeto IUnknown não estiver fazendo referência a uma interface, ele será logicamente nulo; caso contrário, não será logicamente nulo.
Sintaxe
explicit operator bool() const noexcept;
Retornar valor
true
se o objeto IUnknown estiver referenciando uma interface (logicamente não nula), caso contrário false
(logicamente nulo).
IUnknown::operator= (operador de atribuição)
Atribui um valor ao objeto IUnknown .
Sintaxe
winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown const& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(winrt::Windows::Foundation::IUnknown&& other) noexcept;
winrt::Windows::Foundation::IUnknown& operator=(std::nullptr_t) noexcept;
Parâmetros
other
Um valor IUnknown a ser atribuído ao objeto IUnknown , seja por cópia ou por movimentação.
Retornar valor
Uma referência ao objeto IUnknown .
função attach_abi
Anexa um objeto IUnknown a um ponteiro bruto que possui uma referência ao seu destino; uma referência adicional não é adicionada. Se necessário, você pode usar essa função para unir referências.
Sintaxe
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parâmetros
object
Um valor IUnknown no qual operar.
value
Um ponteiro bruto que possui uma referência ao seu destino.
função copy_from_abi
Copia para um objeto IUnknown de outro ponteiro. Diminui a contagem de referência em qualquer interface ou objeto referenciado no momento, copia o parâmetro de ponteiro bruto e começa a gerenciar o tempo de vida da interface ou objeto apontado por ele.
Sintaxe
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parâmetros
object
Um valor IUnknown no qual operar.
value
Um ponteiro bruto para um destino cujo tempo de vida deve ser gerenciado pelo objeto IUnknown .
função copy_to_abi
Copia para outro ponteiro de um objeto IUnknown . Incrementa a contagem de referência em qualquer interface ou objeto referenciado no momento e copia o endereço de memória dessa interface ou objeto no parâmetro . Essa função permite distribuir uma referência à mesma interface sem chamar QueryInterface.
Sintaxe
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
Parâmetros
object
Um valor IUnknown no qual operar.
value
Uma referência de ponteiro bruto; por meio do qual copiar o ponteiro para o destino do objeto IUnknown .
função detach_abi
Desanexa um objeto IUnknown de sua interface IUnknown bruta sem diminuir a contagem de referência, talvez para devolvê-lo a um chamador.
Sintaxe
void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;
Parâmetros
object
Um valor IUnknown no qual operar.
Retornar valor
Um ponteiro para a interface IUnknown bruta referenciada pelo objeto IUnknown .
função get_abi
Retorna o ponteiro de interface IUnknown bruto subjacente caso você precise passá-lo para uma função. Você pode chamar AddRef, Release ou QueryInterface no ponteiro retornado.
Sintaxe
void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;
Parâmetros
object
Um valor IUnknown no qual operar.
Retornar valor
Um ponteiro para a interface IUnknown bruta referenciada pelo objeto IUnknown .
operator!= (operador de desigualdade)
Retorna um valor que indica se os dois parâmetros se referem a destinos diferentes.
Sintaxe
bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parâmetros
left
right
Um valor IUnknown cujo endereço de memória do destino deve ser comparado com o do outro parâmetro.
Retornar valor
true
se os dois parâmetros apontarem para destinos diferentes, caso contrário false
, .
operador< (operador menor que)
Retorna um valor que indica se o destino do primeiro parâmetro ocorre anteriormente na memória do que o do segundo parâmetro.
Sintaxe
bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parâmetros
left
right
Um valor IUnknown cujo endereço de memória do destino deve ser comparado com o do outro parâmetro.
Retornar valor
true
se o endereço de memória do destino do primeiro parâmetro for menor que o do segundo parâmetro, caso contrário false
, .
operator<= (operador menor que ou igual a)
Retorna um valor que indica se o destino do primeiro parâmetro ocorre anteriormente na memória ou no mesmo local que o do segundo parâmetro.
Sintaxe
bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parâmetros
left
right
Um valor IUnknown cujo endereço de memória do destino deve ser comparado com o do outro parâmetro.
Retornar valor
true
se o endereço de memória do destino do primeiro parâmetro for menor ou igual ao do segundo parâmetro, caso contrário false
, .
operator== (operador de igualdade)
Retorna um valor que indica se os dois parâmetros se referem à mesma interface e/ou objeto.
Sintaxe
bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parâmetros
left
right
Um valor IUnknown cujo endereço de memória do destino deve ser comparado com o do outro parâmetro.
Retornar valor
true
se os dois parâmetros apontarem para o mesmo destino, caso contrário false
, .
operador> (operador maior que)
Retorna um valor que indica se o destino do primeiro parâmetro ocorre mais tarde na memória do que o do segundo parâmetro.
Sintaxe
bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parâmetros
left
right
Um valor IUnknown cujo endereço de memória do destino deve ser comparado com o do outro parâmetro.
Retornar valor
true
se o endereço de memória do destino do primeiro parâmetro for maior que o do segundo parâmetro, caso contrário false
, .
operator>= (operador maior que ou igual a)
Retorna um valor que indica se o destino do primeiro parâmetro ocorre mais tarde na memória ou no mesmo local que o do segundo parâmetro.
Sintaxe
bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parâmetros
left
right
Um valor IUnknown cujo endereço de memória do destino deve ser comparado com o do outro parâmetro.
Retornar valor
true
se o endereço de memória do destino do primeiro parâmetro for maior ou igual ao do segundo parâmetro, caso contrário false
, .
função put_abi
Retorna o endereço do ponteiro de interface IUnknown bruto subjacente como um ponteiro para um ponteiro para void; essa função ajuda você a chamar métodos (como métodos COM) que retornam referências como parâmetros out por meio de um ponteiro para um ponteiro para void.
Sintaxe
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
Parâmetros
object
Um valor IUnknown no qual operar.
Retornar valor
O endereço do ponteiro de interface IUnknown bruto subjacente.
função swap
Troca o conteúdo dos dois parâmetros IUnknown para que eles apontem para o destino um do outro.
Sintaxe
void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;
Parâmetros
left
right
Um valor IUnknown cujo ponteiro para alternar mutuamente com o do outro parâmetro.
Confira também
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de