CComContainedObject クラス
このクラスでは、所有者のプロジェクトの IUnknown
を委任することで、IUnknown を実装します。
重要
このクラスとそのメンバーは、Windows ランタイムで実行するアプリケーションで使用することはできません。
構文
template<class Base>
class CComContainedObject : public Base
パラメーター
Base
CComObjectRoot または CComObjectRootEx から派生したクラス。
メンバー
パブリック コンストラクター
名前 | 説明 |
---|---|
CComContainedObject::CComContainedObject | コンストラクター。 所有者オブジェクトの IUnknown へのメンバー ポインターを初期化します。 |
CComContainedObject::~CComContainedObject | デストラクター。 |
パブリック メソッド
名前 | 説明 |
---|---|
CComContainedObject::AddRef | 所有者オブジェクトの参照カウントをインクリメントします。 |
CComContainedObject::GetControllingUnknown | 所有者オブジェクトの IUnknown を取得します。 |
CComContainedObject::QueryInterface | 所有者オブジェクトで要求されたインターフェイスへのポインターを取得します。 |
CComContainedObject::Release | 所有者オブジェクトの参照カウントをデクリメントします。 |
解説
ATL では、クラス CComAggObject、CComPolyObject、および CComCachedTearOffObject 内の CComContainedObject
を使用します。 CComContainedObject
では、所有者のプロジェクトの IUnknown
を委任することで、IUnknown を実装します。 (所有者は、集計の外側のオブジェクト、または破棄インターフェイスが作成されているオブジェクトのいずれかです)。 CComContainedObject
は、 CComObjectRootEx
の OuterQueryInterface
、 OuterAddRef
、および OuterRelease
を呼び出し、すべて Base
を通じて継承されます。
継承階層
Base
CComContainedObject
要件
ヘッダー: atlcom.h
CComContainedObject::AddRef
所有者オブジェクトの参照カウントをインクリメントします。
STDMETHOD_(ULONG, AddRef)();
戻り値
診断またはテストに役立つ可能性がある値。
CComContainedObject::CComContainedObject
コンストラクター。
CComContainedObject(void* pv);
パラメーター
pv
[入力] 所有者のオブジェクトの IUnknown
。
解説
m_pOuterUnknown
メンバー ポインター (Base
クラスを介して継承) を pv に設定します。
CComContainedObject::~CComContainedObject
デストラクター。
~CComContainedObject();
解説
割り当てられているすべてのリソースを解放します。
CComContainedObject::GetControllingUnknown
所有者オブジェクトの IUnknown
を保持する m_pOuterUnknown
メンバー ポインター (Base クラスを介して継承) を返します。
IUnknown* GetControllingUnknown();
戻り値
所有者のオブジェクトの IUnknown
。
解説
このメソッドは、Base
によって DECLARE_GET_CONTROLLING_UNKNOWN マクロが宣言された場合は、仮想である可能性があります。
CComContainedObject::QueryInterface
所有者オブジェクトで要求されたインターフェイスへのポインターを取得します。
STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);
template <class Q>
HRESULT STDMETHODCALLTYPE QueryInterface(Q** pp);
パラメーター
iid
[入力] 要求されるインターフェイスの識別子。
ppvObject
[出力] iid によって識別されるインターフェイス ポインターへのポインター。 オブジェクトでこのインターフェイスがサポートされていない場合、ppvObject は NULL に設定されます。
pp
[出力] Q
型で識別されるインターフェイス ポインターへのポインター。 オブジェクトでこのインターフェイスがサポートされていない場合、pp は NULL に設定されます。
戻り値
標準の HRESULT 値。
CComContainedObject::Release
所有者オブジェクトの参照カウントをデクリメントします。
STDMETHOD_(ULONG, Release)();
戻り値
デバッグ ビルドでは、診断またはテストに役立つ可能性のある値が、Release
から返されます。 デバッグ以外のビルドでは、Release
から常に 0 が返されます。