次の方法で共有


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 では、クラス CComAggObjectCComPolyObject、および CComCachedTearOffObject 内の CComContainedObject を使用します。 CComContainedObject では、所有者のプロジェクトの IUnknown を委任することで、IUnknown を実装します。 (所有者は、集計の外側のオブジェクト、または破棄インターフェイスが作成されているオブジェクトのいずれかです)。 CComContainedObject は、 CComObjectRootExOuterQueryInterfaceOuterAddRef、および 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 が返されます。

関連項目

クラスの概要