共用方式為


ChainInterfaces 結構

指定可以套用至一組介面 ID 的驗證和初始化函式。

語法

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

參數

I0
(必要)介面識別碼 0。

I1
(必要)介面識別碼 1。

I2
(選擇性)介面識別碼 2。

I3
(選擇性)介面識別碼 3。

I4
(選擇性)介面識別碼 4。

I5
(選擇性)介面識別碼 5。

I6
(選擇性)介面識別碼 6。

I7
(選擇性)介面識別碼 7。

I8
(選擇性)介面識別碼 8。

I9
(選擇性)介面識別碼 9。

DerivedType
衍生型別。

BaseType
衍生型別的基底型別。

hasImplements
布爾值,如果true為 ,表示您無法將MixIn結構與未衍生自Implements結構的類別搭配使用。

成員

受保護的方法

名稱 描述
ChainInterfaces::CanCastTo 指出指定的介面識別碼是否可以轉換成範本參數所 ChainInterface 定義的每個特製化。
ChainInterfaces::CastToUnknown 將I0 樣板參數所定義的型別介面指標轉換為的IUnknown指標。
ChainInterfaces::FillArrayWithIid 將I0 範本參數所定義的介面識別元儲存在指定介面標識子陣列中的指定位置。
ChainInterfaces::Verify 確認樣本參數 I0 到 I9 定義的每個介面都繼承自 IUnknown 和/或 IInspectable,而且 I0 繼承自 I1I9。

受保護的常數

名稱 描述
ChainInterfaces::IidCount 範本參數 I0I9所指定介面中包含的介面標識碼總數。

繼承階層架構

I0

ChainInterfaces

需求

標頭: implements.h

命名空間: Microsoft::WRL

ChainInterfaces::CanCastTo

指出指定的介面識別碼是否可以轉換成非預設範本參數所定義的每個特製化。

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

參數

riid
介面識別碼。

Ppv
成功轉換之最後一個介面標識碼的指標。

傳回值

true 如果所有轉換作業都成功,則為 ;否則為 false

ChainInterfaces::CastToUnknown

將I0 樣板參數所定義的型別介面指標轉換為的IUnknown指標。

__forceinline IUnknown* CastToUnknown();

傳回值

IUnknown指標。

ChainInterfaces::FillArrayWithIid

將I0 範本參數所定義的介面識別元儲存在指定介面標識子陣列中的指定位置。

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

參數

index
指向 iids 陣列中索引值的指標。

iids
介面識別碼的陣列。

ChainInterfaces::IidCount

範本參數 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;

傳回值

介面標識碼的總數。

備註

需要範本參數 I0I1 ,而參數 I2I9 是選擇性的。 每個介面的 IID 計數通常是 1。

ChainInterfaces::Verify

確認樣本參數 I0 到 I9 定義的每個介面都繼承自 IUnknown 和/或 IInspectable,而且 I0 繼承自 I1I9。

WRL_NOTHROW __forceinline static void Verify();

備註

如果驗證作業失敗,就會 static_assert 發出描述失敗的錯誤訊息。

需要範本參數 I0I1 ,而參數 I2I9 是選擇性的。