CAtlModule 类

此类提供多个 ATL 模块类使用的方法。

语法

class ATL_NO_VTABLE CAtlModule : public _ATL_MODULE

成员

公共构造函数

名称 描述
CAtlModule::CAtlModule 构造函数。
CAtlModule::~CAtlModule 析构函数。

公共方法

名称 描述
CAtlModule::AddCommonRGSReplacements 重写此方法,将参数添加到 ATL 注册表组件(注册器)替换映射。
CAtlModule::AddTermFunc 添加在模块终止时要调用的新函数。
CAtlModule::GetGITPtr 返回全局接口指针。
CAtlModule::GetLockCount 返回锁计数。
CAtlModule::Lock 递增锁计数。
CAtlModule::Term 释放所有数据成员。
CAtlModule::Unlock 减少锁计数。
CAtlModule::UpdateRegistryFromResourceD 运行指定资源中包含的脚本以注册或取消注册对象。
CAtlModule::UpdateRegistryFromResourceDHelper 此方法由 UpdateRegistryFromResourceD 调用以执行注册表更新。
CAtlModule::UpdateRegistryFromResourceS 运行指定资源中包含的脚本以注册或取消注册对象。 此方法静态链接到 ATL 注册表组件。

公共数据成员

“属性” 描述
CAtlModule::m_libid 包含当前模块的 GUID。
CAtlModule::m_pGIT 指向全局接口表的指针。

备注

CAtlDllModuleT 类CAtlExeModuleT 类CAtlServiceModuleT 类使用此类分别支持 DLL 应用程序、EXE 应用程序和 Windows 服务。

有关 ATL 中的模块的详细信息,请参阅 ATL 模块类

此类替换在早期版本的 ATL 中使用的过时 CComModule 类

继承层次结构

_ATL_MODULE

CAtlModule

要求

标头:atlbase.h

CAtlModule::AddCommonRGSReplacements

重写此方法,将参数添加到 ATL 注册表组件(注册器)替换映射。

virtual HRESULT AddCommonRGSReplacements(IRegistrarBase* /* pRegistrar*/) throw() = 0;

参数

pRegistrar
保留。

返回值

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

注解

可替换的参数允许注册器的客户端指定运行时数据。 为此,注册器会维护替换映射,在其中输入与脚本中可替换的参数关联的值。 注册器在运行时生成这些条目。

有关更多详细信息,请参阅主题“使用可替换参数”(注册器的预处理器)

CAtlModule::AddTermFunc

添加在模块终止时要调用的新函数。

HRESULT AddTermFunc(_ATL_TERMFUNC* pFunc, DWORD_PTR dw) throw();

参数

pFunc
指向要添加的函数的指针。

dw
用户定义的数据,传递给函数。

返回值

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

CAtlModule::CAtlModule

构造函数。

CAtlModule() throw();

备注

初始化数据成员,并围绕模块的线程启动临界区。

CAtlModule::~CAtlModule

析构函数。

~CAtlModule() throw();

注解

释放所有数据成员。

CAtlModule::GetGITPtr

指向全局接口表的指针。

virtual HRESULT GetGITPtr(IGlobalInterfaceTable** ppGIT) throw();

参数

ppGIT
指向将接收指向全局接口表的指针的变量的指针。

返回值

如果成功,则返回 S_OK;如果失败,返回错误代码。 如果 ppGIT 等于 NULL,则返回 E_POINTER。

备注

如果全局接口表对象不存在,则会创建该对象,并且其地址存储在成员变量 CAtlModule::m_pGIT 中。

在调试版本中,如果 ppGIT 等于 NULL,或者无法获取全局接口表指针,则会发生断言错误。

有关全局接口表的信息,请参阅 IGlobalInterfaceTable

CAtlModule::GetLockCount

返回锁计数。

virtual LONG GetLockCount() throw();

返回值

返回锁计数。 此值对于诊断和调试可能很有用。

CAtlModule::Lock

递增锁计数。

virtual LONG Lock() throw();

返回值

递增锁计数并返回更新的值。 此值对于诊断和调试可能很有用。

CAtlModule::m_libid

包含当前模块的 GUID。

static GUID m_libid;

CAtlModule::m_pGIT

指向全局接口表的指针。

IGlobalInterfaceTable* m_pGIT;

CAtlModule::Term

释放所有数据成员。

void Term() throw();

备注

释放所有数据成员。 此方法由析构函数调用。

CAtlModule::Unlock

减少锁计数。

virtual LONG Unlock() throw();

返回值

递减锁计数并返回更新的值。 此值对于诊断和调试可能很有用。

CAtlModule::UpdateRegistryFromResourceD

运行指定资源中包含的脚本以注册或取消注册对象。

HRESULT WINAPI UpdateRegistryFromResourceD(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

HRESULT WINAPI UpdateRegistryFromResourceD(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

参数

lpszRes
资源名称。

nResID
资源 ID。

bRegister
如果应注册对象,则为 TRUE;否则为 FALSE。

pMapEntries
指向替换映射的指针,用于存储与脚本的可替换参数关联的值。 ATL 自动使用 %MODULE%。 若要使用其他可替换参数,请参阅 CAtlModule::AddCommonRGSReplacements。 否则,请使用 NULL 默认值。

返回值

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

注解

运行由 lpszRes 或 nResID 指定的资源中包含的脚本。 如果 bRegister 为 TRUE,此方法在系统注册表中注册对象;否则,它会从注册表中删除对象。

若要静态链接到 ATL 注册表组件(注册器),请参阅 CAtlModule::UpdateRegistryFromResourceS

此方法调用 CAtlModule::UpdateRegistryFromResourceDHelperIRegistrar::ResourceUnregister

CAtlModule::UpdateRegistryFromResourceDHelper

此方法由 UpdateRegistryFromResourceD 调用以执行注册表更新。

inline HRESULT WINAPI UpdateRegistryFromResourceDHelper(
    LPCOLESTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

参数

lpszRes
资源名称。

bRegister
指示是否应注册对象。

pMapEntries
指向替换映射的指针,用于存储与脚本的可替换参数关联的值。 ATL 自动使用 %MODULE%。 若要使用其他可替换参数,请参阅 CAtlModule::AddCommonRGSReplacements。 否则,请使用 NULL 默认值。

返回值

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

注解

此方法提供 CAtlModule::UpdateRegistryFromResourceD 的实现。

CAtlModule::UpdateRegistryFromResourceS

运行指定资源中包含的脚本以注册或取消注册对象。 此方法静态链接到 ATL 注册表组件。

HRESULT WINAPI UpdateRegistryFromResourceS(
    UINT nResID,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

HRESULT WINAPI UpdateRegistryFromResourceS(
    LPCTSTR lpszRes,
    BOOL bRegister,
    struct _ATL_REGMAP_ENTRY* pMapEntries = NULL) throw();

参数

nResID
资源 ID。

lpszRes
资源名称。

bRegister
指示是否应注册资源脚本。

pMapEntries
指向替换映射的指针,用于存储与脚本的可替换参数关联的值。 ATL 自动使用 %MODULE%。 若要使用其他可替换参数,请参阅 CAtlModule::AddCommonRGSReplacements。 否则,请使用 NULL 默认值。

返回值

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

注解

CAtlModule::UpdateRegistryFromResourceD 类似,除非 CAtlModule::UpdateRegistryFromResourceS 创建指向 ATL 注册表组件(注册器)的静态链接。

另请参阅

_ATL_MODULE
类概述
Module 类
注册表组件(注册器)