Teilen über


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

truewenn 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.