_com_ptr_t クラス
Microsoft 固有の仕様
_com_ptr_t オブジェクトは、COM インターフェイス ポインターをカプセル化し、"スマート" ポインターと呼ばれます。 このテンプレート クラスは、IUnknown
メンバー関数 (QueryInterface
、AddRef
、Release
) の関数呼び出しによってリソースの割り当てと割り当て解除を管理します。
スマート ポインターは、通常、_COM_SMARTPTR_TYPEDEF マクロによって提供される typedef 定義によって参照されます。 このマクロは、インターフェイス名と IID を受け取り、インターフェイスの名前と Ptr
のサフィックスを指定して、_com_ptr_t の特殊化を宣言します。 次に例を示します。
_COM_SMARTPTR_TYPEDEF(IMyInterface, __uuidof(IMyInterface));
_com_ptr_t の特殊化 IMyInterfacePtr
を宣言します。
一連の関数テンプレートは、このテンプレート クラスのメンバーではなく、比較演算子の右側でスマート ポインターとの比較をサポートします。
建設
名前 | 説明 |
---|---|
_com_ptr_t | _com_ptr_t オブジェクトを構築します。 |
低水準操作
名前 | 説明 |
---|---|
Addref | カプセル化されたインターフェイス ポインターで IUnknown の AddRef メンバー関数を呼び出します。 |
[アタッチ] | このスマート ポインターの型の生のインターフェイス ポインターをカプセル化します。 |
Createinstance | CLSID または ProgID の指定により、オブジェクトの新しいインスタンスを作成します。 |
[デタッチ] | カプセル化されたインターフェイス ポインターを抽出して返します。 |
GetActiveObject | CLSID または ProgID の指定により、オブジェクトの既存のインスタンスにアタッチします。 |
GetInterfacePtr | カプセル化されたインターフェイス ポインターを返します。 |
QueryInterface | カプセル化されたインターフェイス ポインターで IUnknown の QueryInterface メンバー関数を呼び出します。 |
リリース | カプセル化されたインターフェイス ポインターで IUnknown の Release メンバー関数を呼び出します。 |
演算子
名前 | 説明 |
---|---|
operator = | 既存の _com_ptr_t オブジェクトに新しい値を代入します。 |
operators ==, !=, <, >, <=, >= | スマート ポインター オブジェクトを別のスマート ポインター、生のインターフェイス ポインター、または NULL と比較します。 |
抽出 | カプセル化された COM インターフェイス ポインターを抽出します。 |
Microsoft 固有の仕様はここまで
必要条件
ヘッダー:<comip.h>
ライブラリ: comsuppw.lib または comsuppwd.lib (詳細については、「/Zc:wchar_t (wchar_t Is Native Type)」を参照してください)
関連項目
フィードバック
https://aka.ms/ContentUserFeedback」を参照してください。
以下は間もなく提供いたします。2024 年を通じて、コンテンツのフィードバック メカニズムとして GitHub の issue を段階的に廃止し、新しいフィードバック システムに置き換えます。 詳細については、「フィードバックの送信と表示