CoRevokeClassObject 函数 (combaseapi.h)
通知 OLE 以前使用 CoRegisterClassObject 函数注册的类对象不再可供使用。
语法
HRESULT CoRevokeClassObject(
[in] DWORD dwRegister
);
参数
[in] dwRegister
以前从 CoRegisterClassObject 函数返回的令牌。
返回值
此函数可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。
返回代码 | 说明 |
---|---|
|
已成功撤消类对象。 |
备注
成功调用 CoRevokeClassObject 意味着类对象已被从全局类对象表中删除 (尽管它不会释放类对象) 。 如果其他客户端仍具有指向类对象的指针,并且导致引用计数通过调用 IUnknown::AddRef 递增,则引用计数不会为零。 发生这种情况时,如果对类对象的后续调用 (出现明显异常(AddRef 和 IUnknown::Release) )失败,应用程序可能会受益。 请注意, CoRegisterClassObject 调用 AddRef , CoRevokeClassObject 调用 Release,因此这两个函数构成了 AddRef/Release 对。
在退出程序之前,对象应用程序必须调用 CoRevokeClassObject 来撤销已注册的类对象。 类对象实现者应调用 CoRevokeClassObject 作为发布序列的一部分。 即使已在调用 CoRegisterClassObject 时指定标志值REGCLS_SINGLEUSE,也必须专门撤消类对象,指示只有一个应用程序可以连接到类对象。
要求
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | combaseapi.h (包括 Objbase.h) |
Library | Ole32.lib |
DLL | Ole32.dll |