Condividi tramite


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 IInspectablee 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 IInspectablee 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.