CoRevokeClassObject 函数 (combaseapi.h)

通知 OLE 以前使用 CoRegisterClassObject 函数注册的类对象不再可供使用。

语法

HRESULT CoRevokeClassObject(
  [in] DWORD dwRegister
);

参数

[in] dwRegister

以前从 CoRegisterClassObject 函数返回的令牌。

返回值

此函数可以返回标准返回值E_INVALIDARG、E_OUTOFMEMORY和E_UNEXPECTED,以及以下值。

返回代码 说明
S_OK
已成功撤消类对象。

备注

成功调用 CoRevokeClassObject 意味着类对象已被从全局类对象表中删除 (尽管它不会释放类对象) 。 如果其他客户端仍具有指向类对象的指针,并且导致引用计数通过调用 IUnknown::AddRef 递增,则引用计数不会为零。 发生这种情况时,如果对类对象的后续调用 (出现明显异常(AddRefIUnknown::Release) )失败,应用程序可能会受益。 请注意, CoRegisterClassObject 调用 AddRefCoRevokeClassObject 调用 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

另请参阅

CoGetClassObject

CoRegisterClassObject