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. (opzionale)
I2
Secondo ID di interfaccia. (opzionale)
I3
Terzo ID di interfaccia. (opzionale)
I4
Quarto ID di interfaccia. (opzionale)
I5
Quinto ID di interfaccia. (opzionale)
I6
Sesto ID interfaccia. (opzionale)
I7
Il settimo ID interfaccia. (opzionale)
I8
Id dell'ottava interfaccia. (opzionale)
I9
Il nono ID interfaccia. (opzionale)
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
, IInspectable
o 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;