Share via


Implements-Struktur

QueryInterface Implementiert und GetIid für die angegebenen Schnittstellen.

Syntax

template <
    typename I0,
    typename I1 = Details::Nil,
    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 __declspec(novtable) Implements :
    Details::ImplementsHelper<
        RuntimeClassFlags<WinRt>,
        typename Details::InterfaceListHelper<
            I0, I1, I2, I3, I4, I5, I6, I7, I8, I9
        >::TypeT
    >,
    Details::ImplementsBase;

template <
    int flags,
    typename I0,
    typename I1,
    typename I2,
    typename I3,
    typename I4,
    typename I5,
    typename I6,
    typename I7,
    typename I8
>
struct __declspec(novtable) Implements<
        RuntimeClassFlags<flags>,
        I0, I1, I2, I3, I4, I5, I6, I7, I8> :
    Details::ImplementsHelper<
        RuntimeClassFlags<flags>,
        typename Details::InterfaceListHelper<
            I0, I1, I2, I3, I4, I5, I6, I7, I8
        >::TypeT
    >,
    Details::ImplementsBase;

Parameter

I0
Die nullte Schnittstellen-ID. (Erforderlich)

I1
Die erste Schnittstellen-ID. (Optional)

I2
Die zweite Schnittstellen-ID. (Optional)

I3
Die dritte Schnittstellen-ID. (Optional)

I4
Die vierte Schnittstellen-ID. (Optional)

I5
Die fünfte Schnittstellen-ID. (Optional)

I6
Die sechste Schnittstellen-ID. (Optional)

I7
Die siebte Schnittstellen-ID. (Optional)

I8
Die achte Schnittstellen-ID. (Optional)

I9
Die neunte Schnittstellen-ID. (Optional)

flags
Konfigurationskennzeichnungen für die Klasse. Eine oder mehrere RuntimeClassType-Enumerationen , die in einer RuntimeClassFlags-Struktur angegeben sind.

Hinweise

Abgeleitet von der Liste der angegebenen Schnittstellen und implementiert Hilfsvorlagen für QueryInterface und GetIid.

Jeder I0 bis I9-Schnittstellenparameter muss von der IUnknownIInspectableVorlage "ChainInterfaces" oder "ChainInterfaces" abgeleitet werden. Der Flags-Parameter bestimmt, ob unterstützung für IUnknown oder IInspectable.

Member

Öffentliche Typedefs

Name Beschreibung
ClassFlags Ein Synonym für RuntimeClassFlags<WinRt>.

Geschützte Methoden

Name Beschreibung
Implements::CanCastTo Ruft einen Zeiger auf die angegebene Schnittstelle ab.
Implements::CastToUnknown Ruft einen Zeiger auf die zugrunde liegende IUnknown Schnittstelle ab.
Implements::FillArrayWithIid Fügt die durch den aktuellen Null-Vorlagenparameter angegebene Schnittstellen-ID in das angegebene Arrayelement ein.

Geschützte Konstanten

Name Beschreibung
Implements::IidCount Enthält die Anzahl der implementierten Schnittstellen-IDs.

Vererbungshierarchie

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

Anforderungen

Header: implements.h

Namespace: Microsoft::WRL

Implements::CanCastTo

Ruft einen Zeiger auf die angegebene Schnittstelle ab.

__forceinline HRESULT CanCastTo(
   REFIID riid,
   _Deref_out_ void **ppv
);

Parameter

riid
Ein Verweis auf eine Schnittstellen-ID.

Ppv
Bei erfolgreicher Ausführung zeigt ein Zeiger auf die durch riid angegebene Schnittstelle.

Rückgabewert

bei erfolgreicher Ausführung S_OK; andernfalls ein HRESULT, das den Fehler angibt, z. B. E_NOINTERFACE.

Hinweise

Dies ist eine interne Hilfsfunktion, die einen QueryInterface-Vorgang ausführt.

Implements::CastToUnknown

Ruft einen Zeiger auf die zugrunde liegende IUnknown Schnittstelle ab.

__forceinline IUnknown* CastToUnknown();

Rückgabewert

Dieser Vorgang ist immer erfolgreich und gibt den IUnknown Zeiger zurück.

Hinweise

Interne Hilfsfunktion.

Implements::FillArrayWithIid

Fügt die durch den aktuellen Null-Vorlagenparameter angegebene Schnittstellen-ID in das angegebene Arrayelement ein.

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

Parameter

Index
Ein nullbasierter Index, der das Startarrayelement für diesen Vorgang angibt. Wenn dieser Vorgang abgeschlossen ist, wird der Index um 1 erhöht.

iids
Ein Array vom Typ IID.

Hinweise

Interne Hilfsfunktion.

Implements::IidCount

Enthält die Anzahl der implementierten Schnittstellen-IDs.

static const unsigned long IidCount;