Share via


服务器注册全局函数

这些函数支持在对象映射中注册和注销服务器对象。

重要

下表中列出的函数不能在 Windows 运行时执行的应用程序中使用。

名称 描述
AtlComModuleRegisterServer 调用此函数可在对象映射中注册所有对象。
AtlComModuleUnregisterServer 调用此函数可在对象映射中注销所有对象。
AtlComModuleRegisterClassObjects 调用此函数可注册类对象。
AtlComModuleRevokeClassObjects 调用此函数可从 COM 模块撤消类对象。
AtlComModuleGetClassObject 调用此函数可获取类对象。

要求

标头:atlbase.h

AtlComModuleRegisterServer

调用此函数可在对象映射中注册所有对象。

ATLINLINE ATLAPI AtlComModuleRegisterServer(
    _ATL_COM_MODULE* pComModule,
    BOOL bRegTypeLib,
    const CLSID* pCLSID);

参数

pComModule
指向 COM 模块的指针。

bRegTypeLib
如果要注册类型库,则为 TRUE。

pCLSID
指向要注册的对象的 CLSID 的指针。 如果为 NULL,则将注册对象映射中的所有对象。

返回值

如果成功,则返回 S_OK;否则返回错误 HRESULT。

备注

AtlComModuleRegisterServer 遍历 ATL 自动生成的对象映射,并注册映射中的每个对象。 如果 pCLSID 不是 NULL,则仅注册由 pCLSID 引用的对象;否则,将注册所有对象。

此函数由 CAtlComModule::RegisterServer 调用。

AtlComModuleUnregisterServer

调用此函数可在对象映射中注销所有对象。

ATLINLINE ATLAPI AtlComModuleUnregisterServer(
    _ATL_COM_MODULE* pComModule,
    BOOL bUnRegTypeLib,
    const CLSID* pCLSID);

参数

pComModule
指向 COM 模块的指针。

bUnRegTypeLib
如果要注册类型库,则为 TRUE。

pCLSID
指向要取消注册的对象的 CLSID。 如果为 NULL,则将注销对象映射中的所有对象。

返回值

如果成功,则返回 S_OK;否则返回错误 HRESULT。

备注

AtlComModuleUnregisterServer 遍历 ATL 对象映射,并在映射中注销每个对象。 如果 pCLSID 不是 NULL,则仅注销由 pCLSID 引用的对象;否则,将注销所有对象。

此函数由 CAtlComModule::UnregisterServer 调用。

AtlComModuleRegisterClassObjects

调用此函数可注册类对象。

ATLINLINE ATLAPI AtlComModuleRegisterClassObjects(
    _ATL_COM_MODULE* pComModule,
    DWORD dwClsContext,
    DWORD dwFlags);

参数

pComModule
指向 COM 模块的指针。

dwClsContext
指定要在其中运行类对象的上下文。 可能的值为 CLSCTX_INPROC_SERVER、CLSCTX_INPROC_HANDLER 或 CLSCTX_LOCAL_SERVER。 有关详细信息,请参阅 CLSCTX

dwFlags
确定类对象的连接类型。 可能的值为 REGCLS_SINGLEUSE、REGCLS_MULTIPLEUSE 或 REGCLS_MULTI_SEPARATE。 有关详细信息,请参阅 REGCLS

返回值

如果成功,则返回 S_OK;否则返回错误 HRESULT。

备注

CComModule::RegisterClassObjects(在 ATL 7.0 中已过时)和 CAtlExeModuleT::RegisterClassObjects 利用此帮助程序函数。

AtlComModuleRevokeClassObjects

调用此函数可从运行对象表中移除类工厂。

ATLINLINE ATLAPI AtlComModuleRevokeClassObjects(_ATL_COM_MODULE* pComModule);

参数

pComModule
指向 COM 模块的指针。

返回值

如果成功,则返回 S_OK;否则返回错误 HRESULT。

备注

CComModule::RevokeClassObjects(在 ATL 7.0 中已过时)和 CAtlExeModuleT::RevokeClassObjects 利用此帮助程序函数。

AtlComModuleGetClassObject

调用此函数可返回类工厂。

ATLINLINE ATLAPI AtlComModuleGetClassObject(
    _ATL_COM_MODULE* pComModule,
    REFCLSID rclsid,
    REFIID riid,
    LPVOID* ppv);

参数

pComModule
指向 COM 模块的指针。

rclsid
要创建的对象的 CLSID。

riid
请求的接口的 IID。

ppv
指向 riid 标识的接口指针的指针。 如果对象不支持此接口,则 ppv 设置为 NULL

返回值

如果成功,则返回 S_OK;否则返回错误 HRESULT。

注解

CComModule::GetClassObject(在 ATL 7.0 中已过时)和 CAtlDllModuleT::GetClassObject 利用此帮助程序函数。

另请参阅

函数