Compartir a través de


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.