次の方法で共有


CComObjectStack クラス

このクラスは、一時的な COM オブジェクトを作成し、それに IUnknown のスケルトン実装を提供します。

構文

template <class  Base>
class CComObjectStack : public Base

パラメーター

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

メンバー

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

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

パブリック メソッド

名前 説明
CComObjectStack::AddRef 0 を返します。 デバッグ モードでは、_ASSERTE を呼び出します。
CComObjectStack::QueryInterface E_NOINTERFACE を返します。 デバッグ モードでは、_ASSERTE を呼び出します。
CComObjectStack::Release 0 を返します。 デバッグ モードでは、_ASSERTE を呼び出します。 ~

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

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

解説

CComObjectStack は、一時的な COM オブジェクトを作成し、そのオブジェクトに IUnknown のスケルトン実装を提供するために使用されます。 通常、オブジェクトは 1 つの関数内のローカル変数として使用されます (つまり、スタックにプッシュされます)。 オブジェクトは関数の終了時に破棄されるので、効率向上のために参照のカウントは実行されません。

次の例では、関数内で使用される COM オブジェクトを作成する方法を示します。

void MyFunc()
{
   CComObjectStack<CMyClass2> Tempobj;
   //...
}

一時オブジェクト Tempobj はスタックにプッシュされ、関数が終了すると自動的に消えます。

継承階層

Base

CComObjectStack

要件

ヘッダー: atlcom.h

CComObjectStack::AddRef

0 を返します。

STDMETHOD_(ULONG, AddRef)();

戻り値

0 を返します。

解説

デバッグ モードでは、_ASSERTE を呼び出します。

CComObjectStack::CComObjectStack

コンストラクター。

CComObjectStack(void* = NULL);

解説

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

CComObjectStack::~CComObjectStack

デストラクター。

CComObjectStack();

解説

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

CComObjectStack::m_hResFinalConstruct

CComObjectStack オブジェクトの構築中に、FinalConstruct の呼び出しから返される HRESULT を格納します。

HRESULT    m_hResFinalConstruct;

CComObjectStack::QueryInterface

E_NOINTERFACE を返します。

HRESULT    QueryInterface(REFIID, void**);

戻り値

E_NOINTERFACE を返します。

解説

デバッグ モードでは、_ASSERTE を呼び出します。

CComObjectStack::Release

0 を返します。

STDMETHOD_(ULONG, Release)();

戻り値

0 を返します。

解説

デバッグ モードでは、_ASSERTE を呼び出します。

関連項目

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