ChainInterfaces-Struktur
Gibt Überprüfungs- und Initialisierungsfunktionen an, die auf einen Satz von Schnittstellen-IDs angewendet werden können.
Syntax
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
>;
Parameter
I0
(Erforderlich) Schnittstellen-ID 0.
I1
(Erforderlich) Schnittstellen-ID 1.
I2
(Optional) Schnittstellen-ID 2.
I3
(Optional) Schnittstellen-ID 3.
I4
(Optional) Schnittstellen-ID 4.
I5
(Optional) Schnittstellen-ID 5.
I6
(Optional) Schnittstellen-ID 6.
I7
(Optional) Schnittstellen-ID 7.
I8
(Optional) Schnittstellen-ID 8.
I9
(Optional) Schnittstellen-ID 9.
DerivedType
Ein abgeleiteter Typ.
BaseType
Der Basistyp eines abgeleiteten Typs.
hasImplements
Ein boolescher Wert, der bedeutet, dass true
Sie eine MixIn-Struktur nicht mit einer Klasse verwenden können, die nicht von der Implements-Struktur abgeleitet ist.
Member
Geschützte Methoden
Name | Beschreibung |
---|---|
ChainInterfaces::CanCastTo | Gibt an, ob die angegebene Schnittstellen-ID in jede der spezialisierungen, die durch die ChainInterface Vorlagenparameter definiert werden können. |
ChainInterfaces::CastToUnknown | Wandelt den Schnittstellenzeiger des Typs, der durch den I0-Vorlagenparameter definiert wird, in einen Zeiger um IUnknown . |
ChainInterfaces::FillArrayWithIid | Speichert die vom I0-Vorlagenparameter definierte Schnittstellen-ID an einer angegebenen Position in einem angegebenen Array von Schnittstellen-IDs. |
ChainInterfaces::Verify | Überprüft, ob jede Schnittstelle, die durch Vorlagenparameter I0 bis I9 definiert ist, erbt von IUnknown und/oder IInspectable , und dass I0 von I1 bis I9 erbt. |
Geschützte Konstanten
Name | Beschreibung |
---|---|
ChainInterfaces::IidCount | Die Gesamtanzahl der Schnittstellen-IDs, die in den Schnittstellen enthalten sind, die durch Vorlagenparameter I0 bis I9 angegeben wurden. |
Vererbungshierarchie
I0
ChainInterfaces
Anforderungen
Header: implements.h
Namespace: Microsoft::WRL
ChainInterfaces::CanCastTo
Gibt an, ob die angegebene Schnittstellen-ID in jede der spezialisierungen, die durch die nicht standardmäßigen Vorlagenparameter definiert werden können.
__forceinline bool CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parameter
riid
Eine Schnittstellen-ID.
ppv
Ein Zeiger auf die letzte Schnittstellen-ID, die erfolgreich umgerechnet wurde.
Rückgabewert
true
wenn alle Umwandlungsvorgänge erfolgreich waren; andernfalls . false
ChainInterfaces::CastToUnknown
Wandelt den Schnittstellenzeiger des Typs, der durch den I0-Vorlagenparameter definiert wird, in einen Zeiger um IUnknown
.
__forceinline IUnknown* CastToUnknown();
Rückgabewert
Ein Zeiger auf IUnknown
.
ChainInterfaces::FillArrayWithIid
Speichert die vom I0-Vorlagenparameter definierte Schnittstellen-ID an einer angegebenen Position in einem angegebenen Array von Schnittstellen-IDs.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
Parameter
Index
Zeigen Sie auf einen Indexwert in das iids-Array .
iids
Ein Array von Schnittstellen-IDs.
ChainInterfaces::IidCount
Die Gesamtanzahl der Schnittstellen-IDs, die in den Schnittstellen enthalten sind, die durch Vorlagenparameter I0 bis I9 angegeben wurden.
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;
Rückgabewert
Die Gesamtanzahl der Schnittstellen-IDs.
Hinweise
Vorlagenparameter I0 und I1 sind erforderlich, und Parameter I2 bis I9 sind optional. Die IID-Anzahl jeder Schnittstelle ist in der Regel 1.
ChainInterfaces::Verify
Überprüft, ob jede Schnittstelle, die durch Vorlagenparameter I0 bis I9 definiert ist, erbt von IUnknown
und/oder IInspectable
, und dass I0 von I1 bis I9 erbt.
WRL_NOTHROW __forceinline static void Verify();
Hinweise
Wenn der Überprüfungsvorgang fehlschlägt, wird eine Fehlermeldung ausgegeben, static_assert
die den Fehler beschreibt.
Vorlagenparameter I0 und I1 sind erforderlich, und Parameter I2 bis I9 sind optional.