InterfaceTraits 結構
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
語法
template<typename I0>
struct __declspec(novtable) InterfaceTraits;
template<typename CloakedType>
struct __declspec(novtable) InterfaceTraits<
CloakedIid<CloakedType>
>;
template<>
struct __declspec(novtable) InterfaceTraits<Nil>;
參數
I0
介面的名稱。
CloakedType
針對 RuntimeClass
、 Implements
和 ChainInterfaces
,介面不會出現在支援的介面識別符清單中。
備註
實作介面的常見特性。
第二個範本是遮蓋介面的特製化。 第三個範本是 Nil 參數的特製化。
成員
公用 Typedefs
名稱 | 描述 |
---|---|
Base |
I0 樣本參數的同義字。 |
公用方法
名稱 | 描述 |
---|---|
InterfaceTraits::CanCastTo | 指出指定的指標是否可以轉換成 的 Base 指標。 |
InterfaceTraits::CastToBase | 將指定的指標轉換為 的 Base 指標。 |
InterfaceTraits::CastToUnknown | 將指定的指標轉換為 的 IUnknown 指標。 |
InterfaceTraits::FillArrayWithIid | 將的 Base 介面識別碼指派給索引自變數所指定的數位專案。 |
InterfaceTraits::Verify | 驗證是否已 Base 正確衍生。 |
公用常數
名稱 | 描述 |
---|---|
InterfaceTraits::IidCount | 保存與目前 InterfaceTraits 對象相關聯的介面標識碼數目。 |
繼承階層架構
InterfaceTraits
需求
標頭: implements.h
命名空間: Microsoft::WRL::D etails
InterfaceTraits::CanCastTo
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
template<typename T>
static __forceinline bool CanCastTo(
_In_ T* ptr,
REFIID riid,
_Deref_out_ void **ppv
);
參數
ptr
型別指標的名稱。
riid
的 Base
介面識別碼。
ppv
如果這項作業成功, ppv 會指向 所 Base
指定的介面。 否則, ppv 會設定為 nullptr
。
傳回值
true
如果此工作成功且 ptr 轉換為 的 Base
指標,則為 , false
否則為 。
備註
指出指定的指標是否可以轉換成 的 Base
指標。
如需 的詳細資訊 Base
,請參閱 公用 Typedefs 一節。
InterfaceTraits::CastToBase
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
template<typename T>
static __forceinline Base* CastToBase(
_In_ T* ptr
);
參數
T
參數 ptr 的類型。
ptr
類型 T 的指標。
傳回值
的 Base
指標。
備註
將指定的指標轉換為 的 Base
指標。
如需 的詳細資訊 Base
,請參閱 公用 Typedefs 一節。
InterfaceTraits::CastToUnknown
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
template<typename T>
static __forceinline IUnknown* CastToUnknown(
_In_ T* ptr
);
參數
T
參數 ptr 的類型。
ptr
類型 T 的指標。
傳回值
衍生來源 Base
之 IUnknown 的指標。
備註
將指定的指標轉換為 的 IUnknown
指標。
如需 的詳細資訊 Base
,請參閱 公用 Typedefs 一節。
InterfaceTraits::FillArrayWithIid
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
參數
index
包含以零起始之索引值的欄位指標。
iids
介面識別碼的陣列。
備註
將的 Base
介面識別碼指派給索引自變數所指定的數位專案。
與此 API 的名稱相反,只會修改一個數位元素;不是整個陣列。
如需 的詳細資訊 Base
,請參閱 公用 Typedefs 一節。
InterfaceTraits::IidCount
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
static const unsigned long IidCount = 1;
備註
保存與目前 InterfaceTraits
對象相關聯的介面標識碼數目。
InterfaceTraits::Verify
支援 WRL 基礎結構,並不適合直接從您的程式代碼使用。
__forceinline static void Verify();
備註
驗證是否已 Base
正確衍生。
如需 的詳細資訊 Base
,請參閱 公用 Typedefs 一節。