次の方法で共有


CComObjectGlobal クラス

このクラスは、Base オブジェクトを含むモジュールの参照カウントを管理します。

構文

template<class Base>
class CComObjectGlobal : public Base

パラメーター

Base
CComObjectRoot または CComObjectRootEx から、およびオブジェクトでサポートするその他のインターフェイスから派生したクラス。

メンバー

パブリック コンストラクター

名前 説明
CComObjectGlobal::CComObjectGlobal コンストラクター。
CComObjectGlobal::~CComObjectGlobal デストラクター。

パブリック メソッド

名前 説明
CComObjectGlobal::AddRef グローバルな AddRef を実装します。
CComObjectGlobal::QueryInterface グローバルな QueryInterface を実装します。
CComObjectGlobal::Release グローバルな Release を実装します。

パブリック データ メンバー

名前 説明
CComObjectGlobal::m_hResFinalConstruct CComObjectGlobal オブジェクトの構築中に返される HRESULT を格納します。

解説

CComObjectGlobal は、Base オブジェクトを含むモジュールの参照カウントを管理します。 CComObjectGlobal では、モジュールが解放されない限り、オブジェクトは削除されません。 オブジェクトは、モジュール全体の参照カウントが 0 になった場合にのみ削除されます。

たとえば、CComObjectGlobal を使用すると、クラス ファクトリは、すべてのクライアントによって共有される共通のグローバル オブジェクトを保持できます。

継承階層

Base

CComObjectGlobal

要件

ヘッダー: atlcom.h

CComObjectGlobal::AddRef

オブジェクトの参照カウントを 1 ずつインクリメントします。

STDMETHOD_(ULONG, AddRef)();

戻り値

診断やテストに役立つ可能性がある値。

解説

既定では、AddRef_Module::Lock を呼び出します。ここで、_Module は、CComModule またはそれから派生したクラスのグローバル インスタンスです。

CComObjectGlobal::CComObjectGlobal

コンストラクター。 FinalConstruct を呼び出した後、m_hResFinalConstructFinalConstruct によって返された HRESULT に設定します。

CComObjectGlobal(void* = NULL));

解説

CComObjectRoot から基底クラスを派生していない場合は、独自の FinalConstruct メソッドを指定する必要があります。 このデストラクターは FinalRelease を呼び出します。

CComObjectGlobal::~CComObjectGlobal

デストラクター。

CComObjectGlobal();

解説

割り当て済みのすべてのリソースを解放し、FinalRelease を呼び出します。

CComObjectGlobal::m_hResFinalConstruct

CComObjectGlobal オブジェクトの構築中に、FinalConstruct の呼び出しから得た HRESULT を格納します。

HRESULT m_hResFinalConstruct;

CComObjectGlobal::QueryInterface

要求されたインターフェイス ポインターへのポインターを取得します。

STDMETHOD(QueryInterface)(REFIID iid, void** ppvObject);

パラメーター

iid
[入力] 要求されているインターフェイスの GUID。

ppvObject
[出力] iid で識別されるインターフェイス ポインターへのポインター。インターフェイスが見つからない場合は NULL。

戻り値

標準の HRESULT 値。

解説

QueryInterface が処理するのは、COM マップ テーブル内のインターフェイスのみです。

CComObjectGlobal::Release

オブジェクトの参照カウントを 1 ずつデクリメントします。

STDMETHOD_(ULONG, Release)();

戻り値

デバッグ ビルドでは、診断とテストに役立つ可能性のある値が、Release から返されます。 デバッグ以外のビルドでは、Release から常に 0 が返されます。

解説

既定では、Release_Module::Unlock を呼び出します。ここで、_Module は、CComModule またはそれから派生したクラスのグローバル インスタンスです。

関連項目

CComObjectStack クラス
CComAggObject クラス
CComObject クラス
クラスの概要