CoRegisterClassObject.3w

Langue: en

Version: Jun 2009 (debian - 07/07/09)

Section: 3 (Bibliothèques de fonctions)

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 dll GetClassObject 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

Defined in "objbase.h".

Implemented in "dlls/ole32/compobj.c".

Debug channel "ole".