Partager via


ChainInterfaces (structure)

Spécifie les fonctions de vérification et d'initialisation pouvant être appliquées à un ensemble d'ID d'interface.

Syntaxe

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
>;

Paramètres

I0
(Obligatoire) ID d’interface 0.

I1
(Obligatoire) ID d’interface 1.

I2
(Facultatif) ID d’interface 2.

I3
(Facultatif) ID d’interface 3.

I4
(Facultatif) ID d’interface 4.

I5
(Facultatif) ID d’interface 5.

I6
(Facultatif) ID d’interface 6.

I7
(Facultatif) ID d’interface 7.

I8
(Facultatif) ID d’interface 8.

I9
(Facultatif) ID d’interface 9.

DerivedType
Type dérivé.

BaseType
Type de base d’un type dérivé.

hasImplements
Valeur booléenne qui, si true, signifie que vous ne pouvez pas utiliser une structure MixIn avec une classe qui ne dérive pas de la structure Implements .

Membres

Méthodes protégées

Nom Description
ChainInterfaces ::CanCastTo Indique si l’ID d’interface spécifié peut être converti en chacune des spécialisations définies par les paramètres de ChainInterface modèle.
ChainInterfaces ::CastToUnknown Convertit le pointeur d’interface du type défini par le paramètre de modèle I0 en pointeur vers IUnknown.
ChainInterfaces ::FillArrayWithIid Stocke l’ID d’interface défini par le paramètre de modèle I0 dans un emplacement spécifié dans un tableau d’ID d’interface spécifié.
ChainInterfaces ::Verify Vérifie que chaque interface définie par les paramètres de modèle I0 à I9 hérite de IUnknown et/ou IInspectable, et que I0 hérite de I1 à I9.

Constantes protégées

Nom Description
ChainInterfaces ::IidCount Nombre total d’ID d’interface contenus dans les interfaces spécifiées par les paramètres de modèle I0 à I9.

Hiérarchie d'héritage

I0

ChainInterfaces

Spécifications

En-tête : implements.h

Espace de noms : Microsoft::WRL

ChainInterfaces ::CanCastTo

Indique si l’ID d’interface spécifié peut être converti en chacune des spécialisations définies par les paramètres de modèle non par défaut.

__forceinline bool CanCastTo(
   REFIID riid,
   _Deref_out_ void **ppv
);

Paramètres

riid
ID d’interface.

ppv
Pointeur vers le dernier ID d’interface qui a été casté avec succès.

Valeur de retour

true si toutes les opérations de cast ont réussi ; sinon, false.

ChainInterfaces ::CastToUnknown

Convertit le pointeur d’interface du type défini par le paramètre de modèle I0 en pointeur vers IUnknown.

__forceinline IUnknown* CastToUnknown();

Valeur de retour

Pointeur vers IUnknown.

ChainInterfaces ::FillArrayWithIid

Stocke l’ID d’interface défini par le paramètre de modèle I0 dans un emplacement spécifié dans un tableau d’ID d’interface spécifié.

__forceinline static void FillArrayWithIid(
   _Inout_ unsigned long &index,
   _In_ IID* iids
);

Paramètres

index
Pointeur vers une valeur d’index dans le tableau iids .

iids
Tableau d’ID d’interface.

ChainInterfaces ::IidCount

Nombre total d’ID d’interface contenus dans les interfaces spécifiées par les paramètres de modèle I0 à 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;

Valeur de retour

Nombre total d’ID d’interface.

Notes

Les paramètres de modèle I0 et I1 sont obligatoires, et les paramètres I2 à I9 sont facultatifs. Le nombre IID de chaque interface est généralement 1.

ChainInterfaces ::Verify

Vérifie que chaque interface définie par les paramètres de modèle I0 à I9 hérite de IUnknown et/ou IInspectable, et que I0 hérite de I1 à I9.

WRL_NOTHROW __forceinline static void Verify();

Notes

Si l’opération de vérification échoue, un static_assert message d’erreur indique l’échec.

Les paramètres de modèle I0 et I1 sont obligatoires, et les paramètres I2 à I9 sont facultatifs.