CComObjectStack 类

此类创建一个临时 COM 对象,并为其提供 IUnknown 的框架实现。

语法

template <class  Base>
class CComObjectStack : public Base

参数

Base
类派生自 CComObjectRootCComObjectRootEx,以及要支持对象的任何其他接口。

成员

公共构造函数

名称 描述
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

包含在构造 CComObjectStack 对象期间通过调用 FinalConstruct 返回的 HRESULT。

HRESULT    m_hResFinalConstruct;

CComObjectStack::QueryInterface

返回 E_NOINTERFACE。

HRESULT    QueryInterface(REFIID, void**);

返回值

返回 E_NOINTERFACE。

备注

在调试模式下,调用 _ASSERTE

CComObjectStack::Release

返回零。

STDMETHOD_(ULONG, Release)();

返回值

返回零。

备注

在调试模式下,调用 _ASSERTE

另请参阅

CComAggObject 类
CComObject 类
CComObjectGlobal 类
类概述