Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Every C++/WinRT runtime class (whether a Windows or a third party runtime class) derives from winrt::Windows::Foundation::IUnknown. It represents the COM IUnknown interface, and it provides facilities such as querying for a different interface, abi functions, and comparison operators.
Syntax
struct IUnknown
Requirements
SDK mínimo suportado: Windows SDK versão 10.0.17134.0 (Windows 10, versão 1803)
Namespace: winrt
Header: %WindowsSdkDir%Include<WindowsTargetPlatformVersion>\cppwinrt\winrt\base.h (included by default)
Constructors
| Constructor | Description |
|---|---|
| IUnknown::IUnknown constructor | Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data. |
Member functions
| Function | Description |
|---|---|
| IUnknown::as function | Solicita uma interface, lançando se não for suportado. |
| IUnknown::try_as function | Solicita uma interface, produzindo null se não for suportada. |
| IUnknown::try_as_with_reason function | Solicita uma interface, relatando o motivo se ela não for suportada. |
Member operators
| Operator | Description |
|---|---|
| IUnknown::operator bool | Checks whether or not the IUnknown object is referencing an interface. |
| IUnknown::operator= (operador de atribuição) | Assigns a value to the IUnknown object. |
Free functions
| Function | Description |
|---|---|
| attach_abi function | Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added. |
| copy_from_abi function | Copies to an IUnknown object from another pointer. Diminui a contagem de referência em qualquer interface ou objeto atualmente referenciado, copia o parâmetro de ponteiro bruto e começa a gerenciar o tempo de vida da interface ou objeto apontado por ele. |
| copy_to_abi function | Copies to another pointer from an IUnknown object. Incrementa a contagem de referência em qualquer interface ou objeto atualmente referenciado e copia o endereço de memória dessa interface ou objeto para o parâmetro. |
| detach_abi function | Detaches from the raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller. |
| get_abi function | Returns the underlying raw IUnknown interface pointer should you need to pass it to a function. |
| get_unknown function | A helper function that returns the address of the underlying raw IUnknown interface of an object of a projected type. |
| put_abi function | Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void. |
| swap function | Swaps the contents of the two IUnknown parameters so that they point at one another's target. |
Free operators
| Function | Description |
|---|---|
| operador!= (operador de desigualdade) | Retorna um valor que indica se os dois parâmetros se referem a destinos diferentes. |
| operador< (menos que operador) | Retorna um valor que indica se o destino do primeiro parâmetro ocorre mais cedo na memória do que o do segundo parâmetro. |
| operador<= (operador menor que ou igual a) | Retorna um valor que indica se o destino do primeiro parâmetro ocorre mais cedo na memória do que o do segundo parâmetro ou no mesmo local que o do segundo parâmetro. |
| operador== (operador de igualdade) | Retorna um valor que indica se os dois parâmetros se referem à mesma interface e/ou objeto. |
| operador> (maior que operador) | 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>= (maior que ou igual a operador) | 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 ou no mesmo local que o do segundo parâmetro. |
IUnknown::IUnknown constructor
Initializes a new instance of the IUnknown struct, optionally with a copy or move of the input data.
Syntax
IUnknown() noexcept;
IUnknown(std::nullptr_t) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown const& other) noexcept;
IUnknown(winrt::Windows::Foundation::IUnknown&& other) noexcept;
Parameters
other Another IUnknown that initializes the IUnknown object.
IUnknown::as function
Solicita a interface especificada do IUnknown. Lança se a interface não for suportada. Use esse método se você espera que a interface seja suportada.
Syntax
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Template parameters
typename To Um tipo que descreve a interface solicitada.
Esse tipo pode ser um nome de interface C++/WinRT ou um nome de classe de tempo de execução C++/WinRT.
Para a autosobrecarga -return, o tipo também pode ser uma interface COM clássica.
Para a voidsobrecarga -return, o tipo também pode ser com_ptr<I> onde I é uma interface COM clássica.
Parameters
to Uma referência a um valor para receber a interface solicitada.
Return value
A autosobrecarga -return retorna a interface solicitada, na forma de se é uma interface C++/WinRT ou nome de To classe de tempo de execução, ou na forma de com_ptr<To> if To é uma interface COM clássica.
Se for IUnknownnull, a autosobrecarga -return retornará e a voidsobrecarga -return será nulldefinida to como null.
Se o IUnknown é não-null mas a interface não pode ser obtida, o método lança.
IUnknown::try_as function
Solicita a interface especificada do IUnknown. Produz null se a interface não for suportada.
Syntax
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Template parameters
typename To Um tipo que descreve a interface solicitada.
Esse tipo pode ser um nome de interface C++/WinRT ou um nome de classe de tempo de execução C++/WinRT.
Para a autosobrecarga -return, o tipo também pode ser uma interface COM clássica.
Para a boolsobrecarga -return, o tipo também pode ser com_ptr<I> onde I é uma interface COM clássica.
Parameters
to Uma referência a um valor para receber a interface solicitada.
Return value
A autosobrecarga -return retorna a interface solicitada, na forma de se é uma interface C++/WinRT ou nome de To classe de tempo de execução, ou na forma de com_ptr<To> if To é uma interface COM clássica.
Se o IUnknown for null ou se a interface não puder ser obtida, a autosobrecarga -return retornará e a boolsobrecarga -return será nulldefinida to como null.
A bool sobrecarga de retorno retorna true se o valor retornado for to não-null e false se for null.
IUnknown::try_as_with_reason function
Retorna a interface solicitada, se ela for suportada, e relata o motivo se ela não for suportada.
Syntax
template <typename To> auto try_as_with_reason(winrt::hresult& reason) const noexcept;
Template parameters
typename To Um tipo que descreve a interface solicitada.
Esse tipo pode ser um nome de interface C++/WinRT, um nome de classe de tempo de execução C++/WinRT ou uma interface COM clássica.
Parameters
reason Recebe o winrt::hresult que descreve o resultado da consulta.
Return value
Retorna a interface solicitada, na forma de se é uma interface C++/WinRT ou nome de To classe de tempo de execução, ou na forma de com_ptr<To> se To é uma interface COM clássica.
Se o IUnknown é null ou se a interface não pode ser obtida, então o método retorna null.
Remarks
Este método está disponível a partir do C++/WinRT versão 2.0.250303.1.
Se for IUnknownnull, então o método retorna null e define o reason como S_OK.
Se o IUnknown for não-null, o método retornará o resultado da consulta e o reason receberá o winrt::hresult produzido pela consulta.
IUnknown::operator bool
Checks whether or not the IUnknown object is referencing an interface. If the IUnknown object is not referencing an interface, then it is logically null; otherwise it is logically not null.
Syntax
explicit operator bool() const noexcept;
Return value
true if the IUnknown object is referencing an interface (logically not null), otherwise false (logically null).
IUnknown::operator= (operador de atribuição)
Assigns a value to the IUnknown object.
Syntax
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;
Parameters
other An IUnknown value to assign to the IUnknown object, either by copy or by move.
Return value
A reference to the IUnknown object.
attach_abi function
Attaches an IUnknown object to a raw pointer that owns a reference to its target; an additional reference is not added. Se necessário, você pode usar essa função para aglutinar referências.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value Um ponteiro bruto que possui uma referência ao seu destino.
copy_from_abi function
Copies to an IUnknown object from another pointer. Diminui a contagem de referência em qualquer interface ou objeto atualmente referenciado, copia o parâmetro de ponteiro bruto e começa a gerenciar o tempo de vida da interface ou objeto apontado por ele.
Syntax
void copy_from_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value A raw pointer to a target whose lifetime should be managed by the IUnknown object.
copy_to_abi function
Copies to another pointer from an IUnknown object. Incrementa a contagem de referência em qualquer interface ou objeto atualmente referenciado e copia o endereço de memória dessa interface ou objeto para o parâmetro. This function lets you hand out a reference to the same interface without calling QueryInterface.
Syntax
void copy_to_abi(winrt::Windows::Foundation::IUnknown const& object, void*& value) noexcept;
Parameters
object An IUnknown value to operate on.
value A raw pointer reference; via which to copy the pointer to the IUnknown object's target.
detach_abi function
Detaches an IUnknown object from its raw IUnknown interface without decrementing the reference count, perhaps to return it to a caller.
Syntax
void* detach_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
void* detach_abi(winrt::Windows::Foundation::IUnknown&& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
A pointer to the raw IUnknown interface referenced by the IUnknown object.
get_abi function
Returns the underlying raw IUnknown interface pointer should you need to pass it to a function. You may call AddRef, Release, or QueryInterface on the returned pointer.
Syntax
void* get_abi(winrt::Windows::Foundation::IUnknown const& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
A pointer to the raw IUnknown interface referenced by the IUnknown object.
operador!= (operador de desigualdade)
Retorna um valor que indica se os dois parâmetros se referem a destinos diferentes.
Syntax
bool operator!=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true se os dois parâmetros apontarem para alvos diferentes, caso contrário false.
operador< (menos que operador)
Retorna um valor que indica se o destino do primeiro parâmetro ocorre mais cedo na memória do que o do segundo parâmetro.
Syntax
bool operator<(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true se o endereço de memória do destino do primeiro parâmetro for menor do 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 mais cedo na memória do que o do segundo parâmetro ou no mesmo local que o do segundo parâmetro.
Syntax
bool operator<=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
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.
operador== (operador de igualdade)
Retorna um valor que indica se os dois parâmetros se referem à mesma interface e/ou objeto.
Syntax
bool operator==(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true se os dois parâmetros apontarem para o mesmo alvo, caso contrário false.
operador> (maior que operador)
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.
Syntax
bool operator>(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
true se o endereço de memória do destino do primeiro parâmetro for maior do que o do segundo parâmetro, caso contrário false.
operador>= (maior que ou igual a operador)
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 ou no mesmo local que o do segundo parâmetro.
Syntax
bool operator>=(winrt::Windows::Foundation::IUnknown const& left, winrt::Windows::Foundation::IUnknown const& right) noexcept;
Parameters
left
right An IUnknown value whose target's memory address to compare with that of the other parameter.
Return value
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.
put_abi function
Returns the address of the underlying raw IUnknown interface pointer as a pointer to a pointer to void; this function helps you call methods (such as COM methods) that return references as out parameters via a pointer to a pointer to void.
Syntax
void** put_abi(winrt::Windows::Foundation::IUnknown& object) noexcept;
Parameters
object An IUnknown value to operate on.
Return value
The address of the underlying raw IUnknown interface pointer.
swap function
Swaps the contents of the two IUnknown parameters so that they point at one another's target.
Syntax
void swap(winrt::Windows::Foundation::IUnknown& left, winrt::Windows::Foundation::IUnknown& right) noexcept;
Parameters
left
right An IUnknown value whose pointer to mutually swap with that of the other parameter.