Implements (estructura)
Implementa QueryInterface
y GetIid
para las interfaces especificadas.
Sintaxis
template <
typename I0,
typename I1 = Details::Nil,
typename I2 = Details::Nil,
typename I3 = Details::Nil,
typename I4 = Details::Nil,
typename I5 = Details::Nil,
typename I6 = Details::Nil,
typename I7 = Details::Nil,
typename I8 = Details::Nil,
typename I9 = Details::Nil
>
struct __declspec(novtable) Implements :
Details::ImplementsHelper<
RuntimeClassFlags<WinRt>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8, I9
>::TypeT
>,
Details::ImplementsBase;
template <
int flags,
typename I0,
typename I1,
typename I2,
typename I3,
typename I4,
typename I5,
typename I6,
typename I7,
typename I8
>
struct __declspec(novtable) Implements<
RuntimeClassFlags<flags>,
I0, I1, I2, I3, I4, I5, I6, I7, I8> :
Details::ImplementsHelper<
RuntimeClassFlags<flags>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8
>::TypeT
>,
Details::ImplementsBase;
Parámetros
I0
Identificador de interfaz cero. (Obligatorio)
I1
Primer identificador de interfaz. (Opcional)
I2
Segundo identificador de interfaz. (Opcional)
I3
Tercer identificador de interfaz. (Opcional)
I4
Cuarto identificador de interfaz. (Opcional)
I5
Quinto identificador de interfaz. (Opcional)
I6
Sexto identificador de interfaz. (Opcional)
I7
Séptimo identificador de interfaz. (Opcional)
I8
Octavo identificador de interfaz. (Opcional)
I9
Noveno identificador de interfaz. (Opcional)
flags
Marcas de configuración para la clase. Una o varias enumeraciones RuntimeClassType que se especifican en una estructura RuntimeClassFlags.
Comentarios
Se deriva de la lista de interfaces especificadas e implementa plantillas auxiliares para QueryInterface
y GetIid
.
Cada parámetro de interfaz I0 a I9 debe derivarse de IUnknown
, IInspectable
o de la plantilla ChainInterfaces. El parámetro flags determina si se genera compatibilidad para IUnknown
o IInspectable
.
Miembros
Definiciones de tipos públicas
Nombre | Descripción |
---|---|
ClassFlags |
Sinónimo de RuntimeClassFlags<WinRt> . |
Métodos protegidos
Nombre | Descripción |
---|---|
Implements::CanCastTo | Obtiene un puntero a la interfaz especificada. |
Implements::CastToUnknown | Obtiene un puntero a la interfaz IUnknown subyacente. |
Implements::FillArrayWithIid | Inserta el identificador de interfaz especificado por el parámetro de plantilla cero actual en el elemento de matriz especificado. |
Constantes protegidas
Nombre | Descripción |
---|---|
Implements::IidCount | Contiene el número de identificadores de interfaz implementados. |
Jerarquía de herencia
I0
ChainInterfaces
I0
ImplementsBase
ImplementsHelper
Implements
Requisitos
Encabezado: implements.h
Espacio de nombres: Microsoft::WRL
Implements::CanCastTo
Obtiene un puntero a la interfaz especificada.
__forceinline HRESULT CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parámetros
riid
Referencia a un identificador de interfaz.
ppv
Si se ejecuta correctamente, un puntero a la interfaz especificada por riid.
Valor devuelto
S_OK si se realiza correctamente; de lo contrario, un HRESULT que indica el error, como E_NOINTERFACE.
Comentarios
Se trata de una función auxiliar interna que realiza una operación QueryInterface.
Implements::CastToUnknown
Obtiene un puntero a la interfaz IUnknown
subyacente.
__forceinline IUnknown* CastToUnknown();
Valor devuelto
Esta operación siempre se realiza correctamente y devuelve el puntero IUnknown
.
Comentarios
Función auxiliar interna.
Implements::FillArrayWithIid
Inserta el identificador de interfaz especificado por el parámetro de plantilla cero actual en el elemento de matriz especificado.
__forceinline static void FillArrayWithIid(
unsigned long &index,
_In_ IID* iids
);
Parámetros
índice
Índice de base cero que indica el elemento de matriz inicial de esta operación. Cuando se completa esta operación, index se incrementa en 1.
iids
Matriz de tipo IID.
Comentarios
Función auxiliar interna.
Implements::IidCount
Contiene el número de identificadores de interfaz implementados.
static const unsigned long IidCount;