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
Namespace : 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 .