Scroll to navigation

CoRegisterClassObject(3w) Wine API CoRegisterClassObject(3w)

NAME

CoRegisterClassObject (OLE32.@)

SYNOPSIS

HRESULT CoRegisterClassObject
(
REFCLSID rclsid,
LPUNKNOWN pUnk,
DWORD dwClsContext,
DWORD flags,
LPDWORD lpdwRegister
)
 

DESCRIPTION

Registers the class object for a given class ID. Servers housed in EXE files use this method instead of exporting DllGetClassObject to allow other code to connect to their objects.
 

PARAMS

rclsid [In] CLSID of the object to register.
pUnk [In] IUnknown of the object.
dwClsContext [In] CLSCTX flags indicating the context in which to run the executable.
flags [In] REGCLS flags indicating how connections are made.
lpdwRegister [In] A unique cookie that can be passed to CoRevokeClassObject.
 

RETURNS

S_OK on success, E_INVALIDARG if lpdwRegister or pUnk are NULL, CO_E_OBJISREG if the object is already registered. We should not return this.
 

SEE ALSO

CoRevokeClassObject, CoGetClassObject.
 

NOTES

In-process objects are only registered for the current apartment. CoGetClassObject() and CoCreateInstance(3w) will not return objects registered in other apartments.
 

BUGS

MSDN claims that multiple interface registrations are legal, but we can't do that with our current implementation.
 

IMPLEMENTATION

Declared in "objbase.h".
Implemented in "dlls/ole32/compobj.c".
Debug channel "ole".
Oct 2012 Wine API