Partager via


InterfaceTraits (structure)

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

Syntaxe

template<typename I0>
struct __declspec(novtable) InterfaceTraits;

template<typename CloakedType>
struct __declspec(novtable) InterfaceTraits<
    CloakedIid<CloakedType>
>;

template<>
struct __declspec(novtable) InterfaceTraits<Nil>;

Paramètres

I0
Nom d’une interface.

CloakedType
Pour RuntimeClass, Implements et ChainInterfaces, une interface qui ne sera pas dans la liste des ID d’interface pris en charge.

Notes

Implémente les caractéristiques courantes d’une interface.

Le deuxième modèle est une spécialisation pour les interfaces masquées. Le troisième modèle est une spécialisation pour les paramètres Nil.

Membres

Typedefs publics

Nom Description
Base Synonyme du paramètre de modèle I0 .

Méthodes publiques

Nom Description
InterfaceTraits ::CanCastTo Indique si le pointeur spécifié peut être converti en pointeur vers Base.
InterfaceTraits ::CastToBase Convertit le pointeur spécifié en pointeur vers Base.
InterfaceTraits ::CastToUnknown Convertit le pointeur spécifié en pointeur vers IUnknown.
InterfaceTraits ::FillArrayWithIid Affecte l’ID d’interface de Base l’élément de tableau spécifié par l’argument d’index.
InterfaceTraits ::Verify Vérifie qu’il Base est correctement dérivé.

Constantes publiques

Nom Description
InterfaceTraits ::IidCount Contient le nombre d’ID d’interface associés à l’objet actuel InterfaceTraits .

Hiérarchie d'héritage

InterfaceTraits

Spécifications

En-tête : implements.h

Espace de noms : Microsoft ::WRL ::D etails

InterfaceTraits ::CanCastTo

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

template<typename T>
static __forceinline bool CanCastTo(
   _In_ T* ptr,
   REFIID riid,
   _Deref_out_ void **ppv
);

Paramètres

ptr
Nom d’un pointeur vers un type.

riid
ID d’interface de Base.

Ppv
Si cette opération réussit, ppv pointe vers l’interface spécifiée par Base. Sinon, ppv est défini sur nullptr.

Valeur de retour

true si cette opération réussit et que ptr est converti en pointeur vers Base; sinon, false.

Notes

Indique si le pointeur spécifié peut être converti en pointeur vers Base.

Pour plus d’informations sur Base, consultez la section Public Typedefs .

InterfaceTraits ::CastToBase

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

template<typename T>
static __forceinline Base* CastToBase(
   _In_ T* ptr
);

Paramètres

T
Type de paramètre ptr.

ptr
Pointeur vers un type T.

Valeur de retour

Pointeur vers Base.

Notes

Convertit le pointeur spécifié en pointeur vers Base.

Pour plus d’informations sur Base, consultez la section Public Typedefs .

InterfaceTraits ::CastToUnknown

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

template<typename T>
static __forceinline IUnknown* CastToUnknown(
   _In_ T* ptr
);

Paramètres

T
Type de paramètre ptr.

ptr
Pointeur vers le type T.

Valeur de retour

Pointeur vers l’IUnknown à partir duquel Base est dérivé.

Notes

Convertit le pointeur spécifié en pointeur vers IUnknown.

Pour plus d’informations sur Base, consultez la section Public Typedefs .

InterfaceTraits ::FillArrayWithIid

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

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

Paramètres

index
Pointeur vers un champ qui contient une valeur d’index de base zéro.

iids
Tableau d’ID d’interface.

Notes

Affecte l’ID d’interface de Base l’élément de tableau spécifié par l’argument d’index.

Contrairement au nom de cette API, un seul élément de tableau est modifié ; pas l’ensemble du tableau.

Pour plus d’informations sur Base, consultez la section Public Typedefs .

InterfaceTraits ::IidCount

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

static const unsigned long IidCount = 1;

Notes

Contient le nombre d’ID d’interface associés à l’objet actuel InterfaceTraits .

InterfaceTraits ::Verify

Prend en charge l’infrastructure WRL et n’est pas destinée à être utilisée directement à partir de votre code.

__forceinline static void Verify();

Notes

Vérifie qu’il Base est correctement dérivé.

Pour plus d’informations sur Base, consultez la section Public Typedefs .