Compartir a través de


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.