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.