Compartilhar via


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 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.
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 bruto subjacente como um ponteiro para um ponteiro para nulo; 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 nulo.
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 != (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.
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

Outro IUnknown que inicializa o objeto IUnknown .

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

um valor IUnknown para atribuir ao objeto IUnknown , por cópia ou por movimento.

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

um valor IUnknown para 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

um valor IUnknown para operar.

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 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

um valor IUnknown para operar.

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

um valor IUnknown para operar.

Valor de retorno

Um ponteiro para a interface IUnknown bruta referenciada pelo objeto 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

um valor IUnknown para operar.

Valor de retorno

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.

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 bruto subjacente como um ponteiro para um ponteiro para nulo; 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 nulo.

Sintaxe

void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;

Parâmetros

um valor IUnknown para operar.

Valor de retorno

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.

Consulte também