Sdílet prostřednictvím


ChainInterfaces – struktura

Určuje ověřovací a inicializační funkce, které lze použít na sadu ID rozhraní.

Syntaxe

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
>;

Parametry

I0
(Povinné) ID rozhraní 0.

I1
(Povinné) ID rozhraní 1.

I2
(Volitelné) ID rozhraní 2.

I3
(Volitelné) ID rozhraní 3.

I4
(Volitelné) ID rozhraní 4.

I5
(Volitelné) ID rozhraní 5.

I6
(Volitelné) ID rozhraní 6.

I7
(Volitelné) ID rozhraní 7.

I8
(Volitelné) ID rozhraní 8.

I9
(Volitelné) ID rozhraní 9.

Odvozený typ
Odvozený typ.

BaseType
Základní typ odvozeného typu.

hasImplements
Logická hodnota, že pokud true, znamená, že nemůžete použít MixIn struktury s třídou, která není odvozena ze struktury Implements .

Členové

Chráněné metody

Název Popis
ChainInterfaces::CanCastTo Určuje, zda zadané ID rozhraní lze přetypovat na každou z specializace definovaných ChainInterface parametry šablony.
ChainInterfaces::CastToUnknown Přetypuje ukazatel rozhraní typu definovaného parametrem šablony I0 na ukazatel na IUnknown.
ChainInterfaces::FillArrayWithIid Uloží ID rozhraní definované parametrem šablony I0 do zadaného umístění v zadaném poli ID rozhraní.
ChainInterfaces::Verify Ověřuje, že každé rozhraní definované parametry šablony I0I9 dědí z IUnknown a/nebo IInspectablea že I0 dědí z I1I9.

Chráněné konstanty

Název Popis
ChainInterfaces::IidCount Celkový počet ID rozhraní obsažených v rozhraních určených parametry šablony I0I9.

Hierarchie dědičnosti

I0

ChainInterfaces

Požadavky

Hlavička: implements.h

Obor názvů: Microsoft::WRL

ChainInterfaces::CanCastTo

Určuje, zda zadané ID rozhraní lze přetypovat na každou z specializace definovaných ne-výchozími parametry šablony.

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

Parametry

riid
ID rozhraní.

ppv
Ukazatel na poslední ID rozhraní, které bylo úspěšně přetypován.

Návratová hodnota

truepokud byly všechny operace přetypování úspěšné; v opačném případě . false

ChainInterfaces::CastToUnknown

Přetypuje ukazatel rozhraní typu definovaného parametrem šablony I0 na ukazatel na IUnknown.

__forceinline IUnknown* CastToUnknown();

Návratová hodnota

Ukazatel na IUnknown.

ChainInterfaces::FillArrayWithIid

Uloží ID rozhraní definované parametrem šablony I0 do zadaného umístění v zadaném poli ID rozhraní.

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

Parametry

index
Ukazatel na hodnotu indexu do pole iids .

iids
Pole ID rozhraní.

ChainInterfaces::IidCount

Celkový počet ID rozhraní obsažených v rozhraních určených parametry šablony I0I9.

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;

Návratová hodnota

Celkový počet ID rozhraní.

Poznámky

Parametry šablony I0 a I1 jsou povinné a parametry I2I9 jsou volitelné. Počet IID každého rozhraní je obvykle 1.

ChainInterfaces::Verify

Ověřuje, že každé rozhraní definované parametry šablony I0I9 dědí z IUnknown a/nebo IInspectablea že I0 dědí z I1I9.

WRL_NOTHROW __forceinline static void Verify();

Poznámky

Pokud se operace ověření nezdaří, static_assert vygeneruje chybovou zprávu popisující selhání.

Parametry šablony I0 a I1 jsou povinné a parametry I2I9 jsou volitelné.