InterfaceTraits (estructura)
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
Sintaxis
template<typename I0>
struct __declspec(novtable) InterfaceTraits;
template<typename CloakedType>
struct __declspec(novtable) InterfaceTraits<
CloakedIid<CloakedType>
>;
template<>
struct __declspec(novtable) InterfaceTraits<Nil>;
Parámetros
I0
Nombre de una interfaz.
CloakedType
Para RuntimeClass
, Implements
y ChainInterfaces
, una interfaz que no estará en la lista de identificadores de interfaz admitidos.
Comentarios
Implementa características comunes de una interfaz.
La segunda plantilla es una especialización para las interfaces ocultas. La tercera plantilla es una especialización para los parámetros Nil.
Miembros
Definiciones de tipos públicas
Nombre | Descripción |
---|---|
Base |
Sinónimo del parámetro de plantilla I0. |
Métodos públicos
Nombre | Descripción |
---|---|
InterfaceTraits::CanCastTo | Indica si el puntero especificado se puede convertir en un puntero a Base . |
InterfaceTraits::CastToBase | Convierte el puntero especificado en un puntero a Base . |
InterfaceTraits::CastToUnknown | Convierte el puntero especificado en un puntero a IUnknown . |
InterfaceTraits::FillArrayWithIid | Asigna el identificador de interfaz de Base al elemento de matriz especificado por el argumento index. |
InterfaceTraits::Verify | Verifica que Base está correctamente derivado. |
Constantes públicas
Nombre | Descripción |
---|---|
InterfaceTraits::IidCount | Contiene el número de identificadores de interfaz asociados al objeto InterfaceTraits actual. |
Jerarquía de herencia
InterfaceTraits
Requisitos
Encabezado: implements.h
Espacio de nombres:Microsoft::WRL::Details
InterfaceTraits::CanCastTo
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
template<typename T>
static __forceinline bool CanCastTo(
_In_ T* ptr,
REFIID riid,
_Deref_out_ void **ppv
);
Parámetros
ptr
Nombre de un puntero a un tipo.
riid
Identificador de interfaz de Base
.
ppv
Si esta operación se realiza correctamente, ppv apunta a la interfaz especificada por Base
. De lo contrario, ppv se establece en nullptr
.
Valor devuelto
true
si esta operación se completa correctamente y ptr se convierte en un puntero a Base
; en caso contrario, false
.
Comentarios
Indica si el puntero especificado se puede convertir en un puntero a Base
.
Para obtener más información sobre Base
, vea la sección Definiciones de tipo públicas.
InterfaceTraits::CastToBase
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
template<typename T>
static __forceinline Base* CastToBase(
_In_ T* ptr
);
Parámetros
T
Tipo de parámetro ptr.
ptr
Puntero a un tipo T.
Valor devuelto
Puntero a Base
.
Comentarios
Convierte el puntero especificado en un puntero a Base
.
Para obtener más información sobre Base
, vea la sección Definiciones de tipo públicas.
InterfaceTraits::CastToUnknown
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
template<typename T>
static __forceinline IUnknown* CastToUnknown(
_In_ T* ptr
);
Parámetros
T
Tipo de parámetro ptr.
ptr
Puntero al tipo T.
Valor devuelto
Puntero al IUnknown del que se deriva Base
.
Comentarios
Convierte el puntero especificado en un puntero a IUnknown
.
Para obtener más información sobre Base
, vea la sección Definiciones de tipo públicas.
InterfaceTraits::FillArrayWithIid
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
Parámetros
índice
Puntero a un campo que contiene un valor de índice de base cero.
iids
Matriz de identificadores de interfaz.
Comentarios
Asigna el identificador de interfaz de Base
al elemento de matriz especificado por el argumento index.
Al contrario que el nombre de esta API, solo se modifica un elemento de matriz; no toda la matriz.
Para obtener más información sobre Base
, vea la sección Definiciones de tipo públicas.
InterfaceTraits::IidCount
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
static const unsigned long IidCount = 1;
Comentarios
Contiene el número de identificadores de interfaz asociados al objeto InterfaceTraits
actual.
InterfaceTraits::Verify
Admite la infraestructura WRL y no está diseñada para usarse directamente desde el código.
__forceinline static void Verify();
Comentarios
Verifica que Base
está correctamente derivado.
Para obtener más información sobre Base
, vea la sección Definiciones de tipo públicas.