ChainInterfaces (struttura)
Specifica le funzioni di verifica e inizializzazione che possono essere applicate a un set di ID di interfaccia.
Sintassi
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
>;
Parametri
I0
(Obbligatorio) ID interfaccia 0.
I1
(Obbligatorio) ID interfaccia 1.
I2
(Facoltativo) ID interfaccia 2.
I3
(Facoltativo) ID interfaccia 3.
I4
(Facoltativo) ID interfaccia 4.
I5
(Facoltativo) ID interfaccia 5.
I6
(Facoltativo) ID interfaccia 6.
I7
(Facoltativo) ID interfaccia 7.
I8
(Facoltativo) ID interfaccia 8.
I9
(Facoltativo) ID interfaccia 9.
DerivedType
Tipo derivato.
BaseType
Tipo di base di un tipo derivato.
hasImplements
Valore booleano che se true
, significa che non è possibile usare una struttura MixIn con una classe che non deriva dalla struttura Implements .
Membri
Metodi protetti
Nome | Descrizione |
---|---|
ChainInterfaces::CanCastTo | Indica se è possibile eseguire il cast dell'ID interfaccia specificato a ognuna delle specializzazioni definite dai parametri del ChainInterface modello. |
ChainInterfaces::CastToUnknown | Esegue il cast del puntatore di interfaccia del tipo definito dal parametro modello I0 a un puntatore a IUnknown . |
ChainInterfaces::FillArrayWithIid | Archivia l'ID interfaccia definito dal parametro modello I0 in una posizione specificata in una matrice specificata di ID interfaccia. |
ChainInterfaces::Verify | Verifica che ogni interfaccia definita dai parametri del modello da I0 a I9 eredita da IUnknown e/o IInspectable e che I0 eredita da I1 a I9. |
Costanti protette
Nome | Descrizione |
---|---|
ChainInterfaces::IidCount | Numero totale di ID di interfaccia contenuti nelle interfacce specificate dai parametri del modello da I0 a I9. |
Gerarchia di ereditarietà
I0
ChainInterfaces
Requisiti
Intestazione: implements.h
Spazio dei nomi: Microsoft::WRL
ChainInterfaces::CanCastTo
Indica se è possibile eseguire il cast dell'ID di interfaccia specificato a ognuna delle specializzazioni definite dai parametri del modello non predefiniti.
__forceinline bool CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
Parametri
riid
ID di interfaccia.
ppv
Puntatore all'ultimo ID di interfaccia di cui è stato eseguito il cast.
Valore restituito
true
se tutte le operazioni di cast sono riuscite; in caso contrario, false
.
ChainInterfaces::CastToUnknown
Esegue il cast del puntatore di interfaccia del tipo definito dal parametro modello I0 a un puntatore a IUnknown
.
__forceinline IUnknown* CastToUnknown();
Valore restituito
Puntatore a IUnknown
.
ChainInterfaces::FillArrayWithIid
Archivia l'ID interfaccia definito dal parametro modello I0 in una posizione specificata in una matrice specificata di ID interfaccia.
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
Parametri
index
Puntatore a un valore di indice nella matrice iids .
iids
Matrice di ID di interfaccia.
ChainInterfaces::IidCount
Numero totale di ID di interfaccia contenuti nelle interfacce specificate dai parametri del modello da I0 a I9.
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;
Valore restituito
Numero totale di ID di interfaccia.
Osservazioni:
I parametri del modello I0 e I1 sono obbligatori e i parametri da I2 a I9 sono facoltativi. Il numero IID di ogni interfaccia è in genere 1.
ChainInterfaces::Verify
Verifica che ogni interfaccia definita dai parametri del modello da I0 a I9 eredita da IUnknown
e/o IInspectable
e che I0 eredita da I1 a I9.
WRL_NOTHROW __forceinline static void Verify();
Osservazioni:
Se l'operazione di verifica non riesce, genera static_assert
un messaggio di errore che descrive l'errore.
I parametri del modello I0 e I1 sono obbligatori e i parametri da I2 a I9 sono facoltativi.