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 autosobrecarga -returning) ou false (a boolsobrecarga -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 autosobrecarga -retornando) ou false (a boolsobrecarga -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

leftright 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

leftright 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

leftright 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

leftright 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

leftright 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

leftright 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

leftright Um valor IUnknown cujo ponteiro para alternar mutuamente com o do outro parâmetro.

Confira também