CComObjectStack 類別
這個類別會建立暫存 COM 物件,並提供的基本架構實作 IUnknown
。
語法
template <class Base>
class CComObjectStack : public Base
參數
Base
您的類別衍生自 CComObjectRoot 或 CComObjectRootEx,以及您想要在 物件上支援的任何其他介面。
成員
公用建構函式
名稱 | 描述 |
---|---|
CComObjectStack::CComObjectStack | 建構函式。 |
CComObjectStack::~CComObjectStack | 解構函式。 |
公用方法
名稱 | 描述 |
---|---|
CComObjectStack::AddRef | 傳回零。 在偵錯模式中,呼叫 _ASSERTE 。 |
CComObjectStack::QueryInterface | 傳回E_NOINTERFACE。 在偵錯模式中,呼叫 _ASSERTE 。 |
CComObjectStack::Release | 傳回零。 在偵錯模式中,呼叫 _ASSERTE 。 ~ |
公用資料成員
名稱 | 描述 |
---|---|
CComObjectStack::m_hResFinalConstruct | 包含建構對象期間傳回的 CComObjectStack HRESULT。 |
備註
CComObjectStack
是用來建立暫存 COM 物件,並提供 物件的基本架構實作 IUnknown
。 一般而言,物件會當做一個函式內的局部變數使用(也就是推送至堆棧)。 由於物件會在函式完成時終結,因此不會執行參考計數以提高效率。
下列範例示範如何建立函數內使用的 COM 物件:
void MyFunc()
{
CComObjectStack<CMyClass2> Tempobj;
//...
}
暫存物件 Tempobj
會推送至堆疊,並在函式完成時自動消失。
繼承階層架構
Base
CComObjectStack
需求
標頭: atlcom.h
CComObjectStack::AddRef
傳回零。
STDMETHOD_(ULONG, AddRef)();
傳回值
傳回零。
備註
在偵錯模式中,呼叫 _ASSERTE
。
CComObjectStack::CComObjectStack
建構函式。
CComObjectStack(void* = NULL);
備註
呼叫 FinalConstruct
,然後將m_hResFinalConstruct設定為 所FinalConstruct
傳回的 HRESULT。 如果您尚未從 CComObjectRoot 衍生基類,則必須提供自己的 FinalConstruct
方法。 此解構函式會呼叫 FinalRelease
。
CComObjectStack::~CComObjectStack
解構函式。
CComObjectStack();
備註
釋放所有已配置的資源,並呼叫 FinalRelease。
CComObjectStack::m_hResFinalConstruct
包含從物件建構期間呼叫 FinalConstruct
所傳回的 CComObjectStack
HRESULT。
HRESULT m_hResFinalConstruct;
CComObjectStack::QueryInterface
傳回E_NOINTERFACE。
HRESULT QueryInterface(REFIID, void**);
傳回值
傳回E_NOINTERFACE。
備註
在偵錯模式中,呼叫 _ASSERTE
。
CComObjectStack::Release
傳回零。
STDMETHOD_(ULONG, Release)();
傳回值
傳回零。
備註
在偵錯模式中,呼叫 _ASSERTE
。