CComObjectNoLock 类
此类实现非聚合对象的 IUnknown
,但不递增构造函数中的模块锁计数。
语法
template<class Base>
class CComObjectNoLock : public Base
参数
Base
类派生自 CComObjectRoot 或 CComObjectRootEx,以及要支持对象的任何其他接口。
成员
公共构造函数
名称 | 描述 |
---|---|
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。