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 类。
继承层次结构
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::UpdateRegistryFromResourceDHelper 和 IRegistrar::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 注册表组件(注册器)的静态链接。