Implements 結構
針對指定的介面實作 QueryInterface
和 GetIid
。
語法
template <
typename I0,
typename I1 = Details::Nil,
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 __declspec(novtable) Implements :
Details::ImplementsHelper<
RuntimeClassFlags<WinRt>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8, I9
>::TypeT
>,
Details::ImplementsBase;
template <
int flags,
typename I0,
typename I1,
typename I2,
typename I3,
typename I4,
typename I5,
typename I6,
typename I7,
typename I8
>
struct __declspec(novtable) Implements<
RuntimeClassFlags<flags>,
I0, I1, I2, I3, I4, I5, I6, I7, I8> :
Details::ImplementsHelper<
RuntimeClassFlags<flags>,
typename Details::InterfaceListHelper<
I0, I1, I2, I3, I4, I5, I6, I7, I8
>::TypeT
>,
Details::ImplementsBase;
參數
I0
第零個介面標識碼。 (強制性)
I1
第一個介面標識碼。 (選擇性)
I2
第二個介面標識碼。 (選擇性)
I3
第三個介面標識碼。 (選擇性)
I4
第四個介面標識碼。 (選擇性)
I5
第五個介面標識碼。 (選擇性)
I6
第六個介面標識碼。 (選擇性)
I7
第七個介面標識碼。 (選擇性)
I8
第八個介面標識碼。 (選擇性)
I9
第九個介面標識碼。 (選擇性)
flags
類別的組態旗標。 RuntimeClassFlags 結構中指定的一或多個 RuntimeClassType 列舉。
備註
衍生自指定的介面清單,並實作 和GetIid
的QueryInterface
協助程序範本。
每個 I0 到 I9 介面參數都必須衍生自 IUnknown
、 IInspectable
或 ChainInterfaces 範本。 flags 參數會決定是否為 或 IInspectable
產生IUnknown
支援。
成員
公用 Typedefs
名稱 | 描述 |
---|---|
ClassFlags |
RuntimeClassFlags<WinRt> 的同義字。 |
受保護的方法
名稱 | 描述 |
---|---|
Implements::CanCastTo | 取得指定介面的指標。 |
Implements::CastToUnknown | 取得基礎 IUnknown 介面的指標。 |
Implements::FillArrayWithIid | 將目前第零個樣板參數指定的介面識別碼插入指定的陣列元素中。 |
受保護的常數
名稱 | 描述 |
---|---|
Implements::IidCount | 保存已實作介面標識碼的數目。 |
繼承階層架構
I0
ChainInterfaces
I0
ImplementsBase
ImplementsHelper
Implements
需求
標頭: implements.h
命名空間: Microsoft::WRL
Implements::CanCastTo
取得指定介面的指標。
__forceinline HRESULT CanCastTo(
REFIID riid,
_Deref_out_ void **ppv
);
參數
riid
介面識別碼的參考。
ppv
如果成功,則為riid所指定介面的指標。
傳回值
如果成功,S_OK;否則,表示錯誤的 HRESULT,例如E_NOINTERFACE。
備註
這是執行 QueryInterface 作業的內部協助程式函式。
Implements::CastToUnknown
取得基礎 IUnknown
介面的指標。
__forceinline IUnknown* CastToUnknown();
傳回值
這項作業一律會成功並傳 IUnknown
回指標。
備註
內部協助程式函式。
Implements::FillArrayWithIid
將目前第零個樣板參數指定的介面識別碼插入指定的陣列元素中。
__forceinline static void FillArrayWithIid(
unsigned long &index,
_In_ IID* iids
);
參數
index
以零起始的索引,表示這項作業的起始數位專案。 當此作業完成時, 索引 會遞增 1。
iids
IID 類型的陣列。
備註
內部協助程式函式。
Implements::IidCount
保存已實作介面標識碼的數目。
static const unsigned long IidCount;