服务器注册全局函数
这些函数支持在对象映射中注册和注销服务器对象。
重要
下表中列出的函数不能在 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 利用此帮助程序函数。