winrt::Windows::Foundation::IUnknown struct (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, funções abi e operadores de comparação diferentes.
Sintaxe
struct IUnknown
Requisitos
SDK mínimo com suporte: 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 |
---|---|
de função IUnknown::as | Retorna a interface solicitada, se houver suporte. Joga se não for. |
função IUnknown::try_as | Retorna a interface solicitada, se houver suporte. Retornará null , ou false , se não estiver. |
Operadores de membro
Operador | Descrição |
---|---|
IUnknown::operator bool | Verifica se o objeto IUnknown está fazendo referência a uma interface. |
IUnknown::operator= (operador de atribuição) | Atribui um valor ao objeto IUnknown |
Funções gratuitas
Função | Descrição |
---|---|
attach_abi função | Anexa um objeto IUnknown a um ponteiro bruto que possui uma referência ao seu destino; uma referência adicional não é adicionada. |
copy_from_abi função | 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. |
de função |
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 da interface ou do objeto para o parâmetro. |
detach_abi função | Desanexa da interface IUnknown bruta sem diminuir a contagem de referência, talvez para devolvê-la a um chamador. |
get_abi função | Retorna a interface IUnknown bruta subjacente ponteiro, caso seja necessário passá-la para uma função. |
get_unknown função | Uma função auxiliar que retorna o endereço da interface IUnknown bruta subjacente de um objeto de um tipo projetado. |
put_abi função | Retorna o endereço do ponteiro de interface IUnknown |
função de troca | 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 |
---|---|
operador |
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. |
operador <= (operador menor 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. |
operador >= (operador maior 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
Função IUnknown::as
Retorna a interface solicitada, se houver suporte. Joga 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.
Valor de retorno
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 sobrecarga de retorno de auto
) ou false
(a sobrecarga bool
-retornando), 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.
Valor de retorno
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 sobrecarga de retorno de auto
) ou false
(a sobrecarga de retorno de bool
).
Se to
for uma referência nula, retornará null
ou false
.
IUnknown::operator bool
Verifica se o objeto IUnknown está fazendo referência a uma interface. Se o objeto IUnknown não estiver fazendo referência a uma interface, ele será logicamente nulo; caso contrário, logicamente não será nulo.
Sintaxe
explicit operator bool() const noexcept;
Valor de retorno
true
se o objeto IUnknown estiver fazendo referência a 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
Valor de retorno
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
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
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 da interface ou do objeto para o parâmetro. Essa função permite que você distribua uma referência à mesma interface sem chamar queryInterface.
Sintaxe
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
Parâmetros
value
Uma referência de ponteiro bruto; por meio do qual copiar o ponteiro para o IUnknown destino do objeto.
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
Valor de retorno
Um ponteiro para a interface IUnknown
função get_abi
Retorna a interface IUnknown bruta subjacente ponteiro, caso seja necessário passá-la para uma função. Você pode chamar AddRef, de Versão ou QueryInterface no ponteiro retornado.
Sintaxe
void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;
Parâmetros
Valor de retorno
Um ponteiro para a interface 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.
Valor de retorno
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.
Valor de retorno
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
.
operador<= (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.
Valor de retorno
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.
Valor de retorno
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.
Valor de retorno
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
.
operador>= (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.
Valor de retorno
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
Sintaxe
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
Parâmetros
Valor de retorno
O endereço do ponteiro de interface IUnknown
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.