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 I0 až I9 dědí z IUnknown a/nebo IInspectable a že I0 dědí z I1 až I9. |
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 I0 až I9. |
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
true
pokud 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 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;
Návratová hodnota
Celkový počet ID rozhraní.
Poznámky
Parametry šablony I0 a I1 jsou povinné a parametry I2 až I9 jsou volitelné. Počet IID každého rozhraní je obvykle 1.
ChainInterfaces::Verify
Ověřuje, že každé rozhraní definované parametry šablony I0 až I9 dědí z IUnknown
a/nebo IInspectable
a že I0 dědí z I1 až I9.
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 I2 až I9 jsou volitelné.