Condividi tramite


Implementa la struttura

Implementa QueryInterface e GetIid per le interfacce specificate.

Sintassi

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;

Parametri

I0
ID interfaccia zero. Obbligatoria

I1
Primo ID di interfaccia. (Valore facoltativo)

I2
Secondo ID di interfaccia. (Valore facoltativo)

I3
Terzo ID di interfaccia. (Valore facoltativo)

I4
Quarto ID di interfaccia. (Valore facoltativo)

I5
Quinto ID di interfaccia. (Valore facoltativo)

I6
Sesto ID interfaccia. (Valore facoltativo)

I7
Il settimo ID interfaccia. (Valore facoltativo)

I8
Id dell'ottava interfaccia. (Valore facoltativo)

I9
Il nono ID interfaccia. (Valore facoltativo)

flags
Flag di configurazione per la classe . Una o più enumerazioni RuntimeClassType specificate in una struttura RuntimeClassFlags .

Osservazioni:

Deriva dall'elenco delle interfacce specificate e implementa i modelli helper per QueryInterface e GetIid.

Ogni parametro di interfaccia da I0 a I9 deve derivare da IUnknown, IInspectableo dal modello ChainInterfaces . Il parametro flags determina se viene generato il supporto per IUnknown o IInspectable.

Membri

Typedef pubblici

Nome Descrizione
ClassFlags Sinonimo di RuntimeClassFlags<WinRt>.

Metodi protetti

Nome Descrizione
Implements::CanCastTo Ottiene un puntatore all'interfaccia specificata.
Implements::CastToUnknown Ottiene un puntatore all'interfaccia sottostante IUnknown .
Implements::FillArrayWithIid Inserisce l'ID di interfaccia specificato dal parametro del modello zeroth corrente nell'elemento della matrice specificato.

Costanti protette

Nome Descrizione
Implements::IidCount Contiene il numero di ID di interfaccia implementati.

Gerarchia di ereditarietà

I0

ChainInterfaces

I0

ImplementsBase

ImplementsHelper

Implements

Requisiti

Intestazione: implements.h

Spazio dei nomi: Microsoft::WRL

Implements::CanCastTo

Ottiene un puntatore all'interfaccia specificata.

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

Parametri

riid
Riferimento a un ID di interfaccia.

Ppv
In caso di esito positivo, un puntatore all'interfaccia specificata da riid.

Valore restituito

S_OK se ha esito positivo; in caso contrario, un HRESULT che indica l'errore, ad esempio E_NOINTERFACE.

Osservazioni:

Si tratta di una funzione helper interna che esegue un'operazione QueryInterface.

Implements::CastToUnknown

Ottiene un puntatore all'interfaccia sottostante IUnknown .

__forceinline IUnknown* CastToUnknown();

Valore restituito

Questa operazione ha sempre esito positivo e restituisce il IUnknown puntatore.

Osservazioni:

Funzione helper interna.

Implements::FillArrayWithIid

Inserisce l'ID di interfaccia specificato dal parametro del modello zeroth corrente nell'elemento della matrice specificato.

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

Parametri

index
Indice in base zero che indica l'elemento matrice iniziale per questa operazione. Al termine dell'operazione, l'indice viene incrementato di 1.

iids
Matrice di tipo IID.

Osservazioni:

Funzione helper interna.

Implements::IidCount

Contiene il numero di ID di interfaccia implementati.

static const unsigned long IidCount;