Partager via


Implements (structure)

Implémente QueryInterface et GetIid pour les interfaces spécifiées.

Syntaxe

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;

Paramètres

I0
ID d’interface zéro. (obligatoire)

I1
Premier ID d’interface. (Facultatif)

I2
Deuxième ID d’interface. (Facultatif)

I3
Troisième ID d’interface. (Facultatif)

I4
Quatrième ID d’interface. (Facultatif)

I5
Cinquième ID d’interface. (Facultatif)

I6
Sixième ID d’interface. (Facultatif)

I7
Septième ID d’interface. (Facultatif)

I8
Huitième ID d’interface. (Facultatif)

I9
Neuvième ID d’interface. (Facultatif)

flags
Indicateurs de configuration pour la classe. Une ou plusieurs énumérations RuntimeClassType spécifiées dans une structure RuntimeClassFlags .

Notes

Dérive de la liste des interfaces spécifiées et implémente des modèles d’assistance pour QueryInterface et GetIid.

Chaque paramètre d’interface I0 à I9 doit dériver de l’un IInspectableou l’autre IUnknowndu modèle ChainInterfaces. Le paramètre d’indicateurs détermine si la prise en charge est générée pour IUnknown ou IInspectable.

Membres

Typedefs publics

Nom Description
ClassFlags Synonyme de RuntimeClassFlags<WinRt>.

Méthodes protégées

Nom Description
Implémente ::CanCastTo Obtient un pointeur vers l’interface spécifiée.
Implements ::CastToUnknown Obtient un pointeur vers l’interface sous-jacente IUnknown .
Implémente ::FillArrayWithIid Insère l’ID d’interface spécifié par le paramètre de modèle zéroth actuel dans l’élément de tableau spécifié.

Constantes protégées

Nom Description
Implements ::IidCount Contient le nombre d’ID d’interface implémentés.

Hiérarchie d'héritage

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

Spécifications

En-tête : implements.h

Espace de noms : Microsoft::WRL

Implémente ::CanCastTo

Obtient un pointeur vers l’interface spécifiée.

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

Paramètres

riid
Référence à un ID d’interface.

ppv
Si elle réussit, un pointeur vers l’interface spécifiée par riid.

Valeur de retour

S_OK en cas de réussite ; sinon, HRESULT qui indique l’erreur, telle que E_NOINTERFACE.

Notes

Il s’agit d’une fonction d’assistance interne qui effectue une opération QueryInterface.

Implements ::CastToUnknown

Obtient un pointeur vers l’interface sous-jacente IUnknown .

__forceinline IUnknown* CastToUnknown();

Valeur de retour

Cette opération réussit toujours et retourne le IUnknown pointeur.

Notes

Fonction d’assistance interne.

Implémente ::FillArrayWithIid

Insère l’ID d’interface spécifié par le paramètre de modèle zéroth actuel dans l’élément de tableau spécifié.

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

Paramètres

index
Index de base zéro qui indique l’élément de tableau de départ pour cette opération. Une fois cette opération terminée, l’index est incrémenté de 1.

iids
Tableau de type IID.

Notes

Fonction d’assistance interne.

Implements ::IidCount

Contient le nombre d’ID d’interface implémentés.

static const unsigned long IidCount;