ChainInterfaces (estructura)
Especifica las funciones de comprobación e inicialización que se pueden aplicar a un conjunto de identificadores de interfaz.
Sintaxis
template <
typename I0,
typename I1,
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 ChainInterfaces : I0;
template <
typename DerivedType,
typename BaseType,
bool hasImplements,
typename I1,
typename I2,
typename I3,
typename I4,
typename I5,
typename I6,
typename I7,
typename I8,
typename I9
>
struct ChainInterfaces<
MixIn<
DerivedType,
BaseType,
hasImplements
>, I1, I2, I3, I4, I5, I6, I7, I8, I9
>;
Parámetros
I0
(Obligatorio) Identificador de interfaz 0.
I1
(Obligatorio) Identificador de interfaz 1.
I2
(Opcional) Identificador de interfaz 2.
I3
(Opcional) Identificador de interfaz 3.
I4
(Opcional) Identificador de interfaz 4.
I5
(Opcional) Identificador de interfaz 5.
I6
(Opcional) Identificador de interfaz 6.
I7
(Opcional) Identificador de interfaz 7.
I8
(Opcional) Identificador de interfaz 8.
I9
(Opcional) Identificador de interfaz 9.
DerivedType
Tipo derivado.
BaseType
Tipo base de un tipo derivado.
hasImplements
Valor booleano que, si true
, significa que no se puede usar una estructura MixIn con una clase que no deriva de la estructura Implements .
Miembros
Métodos protegidos
Nombre | Descripción |
---|---|
ChainInterfaces::CanCastTo | Indica si el identificador de interfaz especificado se puede convertir a cada una de las especializaciones definidas por los parámetros de plantilla ChainInterface . |
ChainInterfaces::CastToUnknown | Convierte el puntero de interfaz del tipo definido por el parámetro de plantilla I0 en un puntero a IUnknown . |
ChainInterfaces::FillArrayWithIid | Almacena el identificador de interfaz definido por el parámetro de plantilla I0 en una ubicación especificada en una matriz especificada de identificadores de interfaz. |
ChainInterfaces::Verify | Comprueba que cada interfaz definida por los parámetros de plantilla I0 a I9 hereda de IUnknown o IInspectable , y que I0 hereda de I1 a I9. |
Constantes protegidas
Nombre | Descripción |
---|---|
ChainInterfaces::IidCount | Número total de identificadores de interfaz contenidos en las interfaces especificadas por los parámetros de plantilla I0 a I9. |
Jerarquía de herencia
I0
ChainInterfaces
Requisitos
Encabezado: implements.h
Espacio de nombres: Microsoft::WRL
ChainInterfaces::CanCastTo
Indica si el identificador de interfaz especificado se puede convertir a cada una de las especializaciones definidas por los parámetros de plantilla no predeterminados.
__forceinline bool CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parámetros
riid
Id. de interfaz.
ppv
Puntero al último identificador de interfaz que se ha convertido correctamente.
Valor devuelto
true
si todas las operaciones de conversión se realizaron correctamente; de lo contrario, false
.
ChainInterfaces::CastToUnknown
Convierte el puntero de interfaz del tipo definido por el parámetro de plantilla I0 en un puntero a IUnknown
.
__forceinline IUnknown* CastToUnknown();
Valor devuelto
Puntero a IUnknown
.
ChainInterfaces::FillArrayWithIid
Almacena el identificador de interfaz definido por el parámetro de plantilla I0 en una ubicación especificada en una matriz especificada de identificadores de interfaz.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
Parámetros
índice
Puntero a un valor de índice en la matriz iids.
iids
Matriz de identificadores de interfaz.
ChainInterfaces::IidCount
Número total de identificadores de interfaz contenidos en las interfaces especificadas por los parámetros de plantilla I0 a I9.
static const unsigned long IidCount = Details::InterfaceTraits<I0>::IidCount + Details::InterfaceTraits<I1>::IidCount + Details::InterfaceTraits<I2>::IidCount + Details::InterfaceTraits<I3>::IidCount + Details::InterfaceTraits<I4>::IidCount + Details::InterfaceTraits<I5>::IidCount + Details::InterfaceTraits<I6>::IidCount + Details::InterfaceTraits<I7>::IidCount + Details::InterfaceTraits<I8>::IidCount + Details::InterfaceTraits<I9>::IidCount;
Valor devuelto
Número total de identificadores de interfaz.
Comentarios
Los parámetros de plantilla I0 y I1 son obligatorios, y los parámetros I2 a I9 son opcionales. El recuento de IID de cada interfaz suele ser 1.
ChainInterfaces::Verify
Comprueba que cada interfaz definida por los parámetros de plantilla I0 a I9 hereda de IUnknown
o IInspectable
, y que I0 hereda de I1 a I9.
WRL_NOTHROW __forceinline static void Verify();
Comentarios
Si se produce un error en la operación de comprobación, static_assert
emite un mensaje de error que describe el error.
Los parámetros de plantilla I0 y I1 son obligatorios, y los parámetros I2 a I9 son opcionales.