CComObjectGlobal 类

此类管理包含 Base 对象的模块的引用计数。

语法

template<class Base>
class CComObjectGlobal : public Base

参数

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

成员

公共构造函数

名称 描述
CComObjectGlobal::CComObjectGlobal 构造函数。
CComObjectGlobal::~CComObjectGlobal 析构函数。

公共方法

名称 描述
CComObjectGlobal::AddRef 实现全局 AddRef
CComObjectGlobal::QueryInterface 实现全局 QueryInterface
CComObjectGlobal::Release 实现全局 Release

公共数据成员

“属性” 描述
CComObjectGlobal::m_hResFinalConstruct 包含在构造 CComObjectGlobal 对象期间返回的 HRESULT。

备注

CComObjectGlobal 管理包含 Base 对象的模块的引用计数。 CComObjectGlobal 确保只要未释放模块,就不会删除对象。 仅当整个模块上的引用计数变为零时,才会删除对象。

例如,使用 CComObjectGlobal 时,类工厂可以保存由其所有客户端共享的通用全局对象。

继承层次结构

Base

CComObjectGlobal

要求

标头:atlcom.h

CComObjectGlobal::AddRef

按 1 递增 对象的引用计数。

STDMETHOD_(ULONG, AddRef)();

返回值

可用于诊断或测试的值。

备注

默认情况下,AddRef 调用 _Module::Lock,其中 _ModuleCComModule 的全局实例或派生自它的类。

CComObjectGlobal::CComObjectGlobal

构造函数。 调用 FinalConstruct,然后将 m_hResFinalConstruct 设置为 FinalConstruct 返回的 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
[in] 要请求的接口的 GUID。

ppvObject
[out] 指向 iid 标识的接口指针的指针;如果未找到接口,则为 NULL。

返回值

标准 HRESULT 值。

注解

QueryInterface 仅处理 COM 映射表中的接口。

CComObjectGlobal::Release

按 1 递减对象的引用计数。

STDMETHOD_(ULONG, Release)();

返回值

在调试生成中,Release 返回可用于诊断或测试的值。 在非调试生成中,Release 始终返回 0。

备注

默认情况下,Release 调用 _Module::Unlock,其中 _ModuleCComModule 的全局实例或派生自它的类。

另请参阅

CComObjectStack 类
CComAggObject 类
CComObject 类
类概述