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
の場合、サポートされているインターフェイスの一覧に含まれることのないインターフェイス。
解説
インターフェイスの一般的な特性を実装します。
2 番目のテンプレートは、クロークされたインターフェイスを特殊化したものです。 3 番目のテンプレートは、Nil パラメーターを特殊化したものです。
メンバー
パブリック typedef
名前 | 説明 |
---|---|
Base |
I0 テンプレート パラメーターのシノニム。 |
パブリック メソッド
名前 | 説明 |
---|---|
InterfaceTraits::CanCastTo | 指定したポインターを Base へのポインターにキャストできるかどうかを示します。 |
InterfaceTraits::CastToBase | 指定したポインターを Base へのポインターにキャストします。 |
InterfaceTraits::CastToUnknown | 指定したポインターを IUnknown へのポインターにキャストします。 |
InterfaceTraits::FillArrayWithIid | Base のインターフェイス ID を、index 引数で指定された配列要素に割り当てます。 |
InterfaceTraits::Verify | Base が正しく派生されていることを確認します。 |
パブリック定数
名前 | 説明 |
---|---|
InterfaceTraits::IidCount | 現在の InterfaceTraits オブジェクトに関連付けられているインターフェイス ID の数を保持します。 |
継承階層
InterfaceTraits
必要条件
ヘッダー: implements.h
名前空間: Microsoft::WRL::Details
InterfaceTraits::CanCastTo
WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。
template<typename T>
static __forceinline bool CanCastTo(
_In_ T* ptr,
REFIID riid,
_Deref_out_ void **ppv
);
パラメーター
ptr
型へのポインターの名前。
riid
Base
のインターフェイス ID。
ppv
この操作が成功した場合、ppv の指定先が Base
で指定されたインターフェイスになります。 それ以外の場合、ppv は nullptr
に設定されます。
戻り値
この操作が成功した場合は true
になり、ptr が Base
へのポインターにキャストされます。それ以外の場合は、false
になります。
解説
指定したポインターを Base
へのポインターにキャストできるかどうかを示します。
Base
の詳細については、「Public Typedefs」のセクションを参照してください。
InterfaceTraits::CastToBase
WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。
template<typename T>
static __forceinline Base* CastToBase(
_In_ T* ptr
);
パラメーター
T
パラメーター ptr の型。
ptr
型 T へのポインター。
戻り値
Base
を指すポインターです。
解説
指定したポインターを Base
へのポインターにキャストします。
Base
の詳細については、「Public Typedefs」のセクションを参照してください。
InterfaceTraits::CastToUnknown
WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。
template<typename T>
static __forceinline IUnknown* CastToUnknown(
_In_ T* ptr
);
パラメーター
T
パラメーター ptr の型。
ptr
型 T へのポインター。
戻り値
Base
の派生元の IUnknown へのポインター。
解説
指定したポインターを IUnknown
へのポインターにキャストします。
Base
の詳細については、「Public Typedefs」のセクションを参照してください。
InterfaceTraits::FillArrayWithIid
WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。
__forceinline static void FillArrayWithIid(
_Inout_ unsigned long &index,
_In_ IID* iids
);
パラメーター
index
0 から始まるインデックス値が含まれるフィールドへのポインター。
iids
インターフェイス ID の配列。
解説
Base
のインターフェイス ID を、index 引数で指定された配列要素に割り当てます。
この API の名前に反して、変更されるのは配列全体ではなく、1 つの配列要素のみです。
Base
の詳細については、「Public Typedefs」のセクションを参照してください。
InterfaceTraits::IidCount
WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。
static const unsigned long IidCount = 1;
解説
現在の InterfaceTraits
オブジェクトに関連付けられているインターフェイス ID の数を保持します。
InterfaceTraits::Verify
WRL インフラストラクチャをサポートします。コードから直接使用するためのものではありません。
__forceinline static void Verify();
解説
Base
が正しく派生されていることを確認します。
Base
の詳細については、「Public Typedefs」のセクションを参照してください。
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示