CoRegisterClassObject 函数是 COM (Component Object Model) 的 API 之一,而不是 Win32 API 的一部分。它用于在当前进程中向系统注册类工厂对象,使得其他进程可以通过调用 CoGetClassObject 来获取该类工厂的指针,从而创建 COM 对象。

以下是 CoRegisterClassObject 函数的声明:
HRESULT CoRegisterClassObject(
  REFCLSID    rclsid,
  IUnknown    *pUnk,
  DWORD       dwClsContext,
  DWORD       flags,
  LPDWORD     lpdwRegister
);

  •  rclsid: 要注册的类对象的 CLSID。

  •  pUnk: 实现类对象的 IUnknown 接口的指针。

  •  dwClsContext: 指定类对象在其上下文中运行的上下文。常见的值包括 CLSCTX_INPROC_SERVER 和 CLSCTX_LOCAL_SERVER。

  •  flags: 控制类工厂的注册标志,例如 REGCLS_SINGLEUSE 或 REGCLS_MULTIPLEUSE。

  •  lpdwRegister: 指向一个 DWORD 变量的指针,用于接收注册的类工厂的标识符。


函数返回 HRESULT 类型的错误代码。如果函数成功执行,返回 S_OK。

CoRegisterClassObject 允许开发者在进程中注册类工厂,以便其他进程可以通过 CoGetClassObject 来获取该类工厂的指针,从而创建对象实例。这是 COM 中用于对象创建和生命周期管理的重要函数之一。


转载请注明出处:http://www.zyzy.cn/article/detail/24580/Win32 API/Combaseapi.h/CoRegisterClassObject