Informs OLE that a class object, previously registered with the CoRegisterClassObject function, is no longer available for use.

HRESULT CoRevokeClassObject(

DWORD dwRegister
//Token on class object returned from call to CoRegisterClassObject



Specifies the token previously returned from the CoRegisterClassObject function.

Return Values


Indicates the class object was successfully revoked.


Out of memory.


Indicates the dwRegister parameter does not map to a registered class object.


Indicates an unexpected error occurred.


If a call to CoRevokeClassObject is successful, it means that the class object has been removed from the global class object table. However, if other clients still have pointers to the class object and have caused the reference count to be incremented by calls to IUnknown::AddRef, the reference count will not be zero. When this occurs, applications may benefit if subsequent calls (with the obvious exceptions of IUnknown::AddRef and IUnknown::Release) to the class object fail.

The object application must call CoRevokeClassObject to revoke registered class objects before exiting the program. Class object implementors should call CoRevokeClassObject as part of the release sequence. You must specifically revoke the class object even when you have specified the flags value REGCLS_SINGLEUSE in a call to CoRegisterClassObject, indicating that only one application can connect to the class object.

See Also

CoGetClassObject, CoRegisterClassObject

Software for developers
Delphi Components
.Net Components
Software for Android Developers
More information resources
Unix Manual Pages
Delphi Examples
Databases for Amazon shops developers
Amazon Categories Database
Browse Nodes Database