CComObjectNoLock 类

此类实现非聚合对象的 IUnknown,但不递增构造函数中的模块锁计数。

语法

template<class Base>
class CComObjectNoLock : public Base

参数

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

成员

公共构造函数

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

公共方法

名称 描述
CComObjectNoLock::AddRef 递增对象的引用计数。
CComObjectNoLock::QueryInterface 返回指向所请求的接口的指针。
CComObjectNoLock::Release 递减对象的引用计数。

备注

CComObjectNoLock 类似于 CComObject,因为它为非聚合对象实现 IUnknown;但是,CComObjectNoLock 不会递增构造函数中的模块锁计数。

ATL 在内部为类工厂使用 CComObjectNoLock。 一般情况下,不会直接使用此类。

继承层次结构

Base

CComObjectNoLock

要求

标头:atlcom.h

CComObjectNoLock::AddRef

递增对象的引用计数。

STDMETHOD_(ULONG, AddRef)();

返回值

可用于诊断或测试的值。

CComObjectNoLock::CComObjectNoLock

构造函数。 与 CComObject 不同,不递增模块锁计数。

CComObjectNoLock(void* = NULL);

参数

void*
[in] 不使用此未命名参数。 它的存在是为了与其他 CComXXXObjectXXX 构造函数保持对称。

CComObjectNoLock::~CComObjectNoLock

析构函数。

~CComObjectNoLock();

注解

释放所有已分配的资源并调用 FinalRelease

CComObjectNoLock::QueryInterface

检索指向所请求的接口的指针。

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

参数

iid
[in] 请求的接口的标识符。

ppvObject
[out] 一个指向 iid 所标识的接口指针的指针。 如果对象不支持此接口,则 ppvObject 设置为 NULL。

返回值

标准 HRESULT 值。

CComObjectNoLock::Release

递减对象的引用计数。

STDMETHOD_(ULONG, Release)();

返回值

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

另请参阅

类概述