_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)」を参照してください)