Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 admitido: SDK de Windows, versión 10.0.17134.0 (Windows 10, versión 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 una interfaz que produce si no se admite. |
| IUnknown::try_as function | Solicita una interfaz, lo que genera null si no se admite. |
| IUnknown::try_as_with_reason function | Solicita una interfaz, notificando el motivo si no se admite. |
Member operators
| Operator | Description |
|---|---|
| IUnknown::operator bool | Checks whether or not the IUnknown object is referencing an interface. |
| IUnknown::operator= (operador de asignación) | 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. Disminuye el recuento de referencias en cualquier interfaz u objeto a los que se hace referencia actualmente, copia el parámetro de puntero sin procesar y comienza a administrar la duración de la interfaz o el objeto al que apunta. |
| copy_to_abi function | Copies to another pointer from an IUnknown object. Incrementa el recuento de referencias en cualquier interfaz u objeto a los que se hace referencia actualmente y copia la dirección de memoria de esa interfaz o objeto en el 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 desigualdad) | Devuelve un valor que indica si los dos parámetros hacen referencia a destinos diferentes. |
| operador< (operador menor que) | Devuelve un valor que indica si el destino del primer parámetro se produce antes en la memoria que el del segundo parámetro. |
| operator<= (operador menor o igual a) | Devuelve un valor que indica si el destino del primer parámetro se produce antes en la memoria que, o en la misma ubicación que, del segundo parámetro. |
| operator== (operador de igualdad) | Devuelve un valor que indica si los dos parámetros hacen referencia a la misma interfaz o objeto. |
| operador> (operador mayor que) | Devuelve un valor que indica si el destino del primer parámetro se produce más adelante en la memoria que el del segundo parámetro. |
| operator>= (operador mayor o igual a) | Devuelve un valor que indica si el destino del primer parámetro se produce más adelante en la memoria que, o en la misma ubicación que, el del 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 la interfaz especificada desde .IUnknown Se produce si no se admite la interfaz. Use este método si espera que se admita la interfaz.
Syntax
template <typename To> auto as() const;
template <typename To> void as(To& to) const;
Template parameters
typename To Tipo que describe la interfaz solicitada.
Este tipo puede ser un nombre de interfaz de C++/WinRT o un nombre de clase en tiempo de ejecución de C++/WinRT.
Para la autosobrecarga de devolución, el tipo también puede ser una interfaz COM clásica.
Para la voidsobrecarga de devolución, el tipo también puede ser com_ptr<I> donde I es una interfaz COM clásica.
Parameters
to Referencia a un valor para recibir la interfaz solicitada.
Return value
La autosobrecarga -returns devuelve la interfaz solicitada, en forma de To si es una interfaz de C++/WinRT o un nombre de clase en tiempo de ejecución, o en forma de com_ptr<To> si To es una interfaz COM clásica.
Si es IUnknownnull, la autosobrecarga que devuelve devuelve nully la voidsobrecarga que devuelve establece to en null.
Si no esnull , IUnknown pero la interfaz no se puede obtener, se produce el método .
IUnknown::try_as function
Solicita la interfaz especificada desde .IUnknown Genera null si no se admite la interfaz.
Syntax
template <typename To> auto try_as() const noexcept;
template <typename To> bool try_as(To& to) const noexcept;
Template parameters
typename To Tipo que describe la interfaz solicitada.
Este tipo puede ser un nombre de interfaz de C++/WinRT o un nombre de clase en tiempo de ejecución de C++/WinRT.
Para la autosobrecarga de devolución, el tipo también puede ser una interfaz COM clásica.
Para la boolsobrecarga de devolución, el tipo también puede ser com_ptr<I> donde I es una interfaz COM clásica.
Parameters
to Referencia a un valor para recibir la interfaz solicitada.
Return value
La autosobrecarga -returns devuelve la interfaz solicitada, en forma de To si es una interfaz de C++/WinRT o un nombre de clase en tiempo de ejecución, o en forma de com_ptr<To> si To es una interfaz COM clásica.
Si es IUnknown o si la interfaz no se puede obtener, la autosobrecarga de devolución devuelve nully la boolsobrecarga que devuelve establece en tonull.null
La bool sobrecarga de devolución devuelve true si el valor devuelto en to no esnull y false si es null.
IUnknown::try_as_with_reason function
Devuelve la interfaz solicitada, si se admite, e informa del motivo si no se admite.
Syntax
template <typename To> auto try_as_with_reason(winrt::hresult& reason) const noexcept;
Template parameters
typename To Tipo que describe la interfaz solicitada.
Este tipo puede ser un nombre de interfaz de C++/WinRT, un nombre de clase en tiempo de ejecución de C++/WinRT o una interfaz COM clásica.
Parameters
reason Recibe el winrt::hresult objeto que describe el resultado de la consulta.
Return value
Devuelve la interfaz solicitada, en forma de To si es una interfaz C++/WinRT o un nombre de clase en tiempo de ejecución, o en forma de com_ptr<To> si To es una interfaz COM clásica.
Si es IUnknownnull o si la interfaz no se puede obtener, el método devuelve null.
Remarks
Este método está disponible a partir de C++/WinRT versión 2.0.250303.1.
Si es IUnknown , el método devuelve null y establece en reasonS_OK.null
Si no IUnknown esnull , el método devuelve el resultado de la consulta y reason recibe el winrt::hresult generado por la 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 asignación)
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. Si es necesario, puede usar esta función para fusionar referencias.
Syntax
void attach_abi(winrt::Windows::Foundation::IUnknown& object, void* value) noexcept;
Parameters
object An IUnknown value to operate on.
value Puntero sin formato que posee una referencia a su destino.
copy_from_abi function
Copies to an IUnknown object from another pointer. Disminuye el recuento de referencias en cualquier interfaz u objeto a los que se hace referencia actualmente, copia el parámetro de puntero sin procesar y comienza a administrar la duración de la interfaz o el objeto al que apunta.
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 el recuento de referencias en cualquier interfaz u objeto a los que se hace referencia actualmente y copia la dirección de memoria de esa interfaz o objeto en el 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.
operator!= (operador de desigualdad)
Devuelve un valor que indica si los dos parámetros hacen referencia 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 Si los dos parámetros apuntan a objetivos diferentes, de lo contrario false.
operador< (operador menor que)
Devuelve un valor que indica si el destino del primer parámetro se produce antes en la memoria que el del 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 Si la dirección de memoria del objetivo del primer parámetro es menor que la del segundo parámetro, de lo contrario false.
operator<= (operador menor o igual a)
Devuelve un valor que indica si el destino del primer parámetro se produce antes en la memoria que, o en la misma ubicación que, del 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 Si la dirección de memoria del objetivo del primer parámetro es menor o igual que la del segundo parámetro, de lo contrario false.
operator== (operador de igualdad)
Devuelve un valor que indica si los dos parámetros hacen referencia a la misma interfaz o 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 Si los dos parámetros apuntan al mismo objetivo, de lo contrario false.
operador> (operador mayor que)
Devuelve un valor que indica si el destino del primer parámetro se produce más adelante en la memoria que el del 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 Si la dirección de memoria del objetivo del primer parámetro es mayor que la del segundo parámetro, de lo contrario false.
operator>= (operador mayor o igual a)
Devuelve un valor que indica si el destino del primer parámetro se produce más adelante en la memoria que, o en la misma ubicación que, el del 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 Si la dirección de memoria del objetivo del primer parámetro es mayor o igual que la del segundo parámetro, de lo contrario 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.