atl - 关于 ATL 140 ,这是 DECLARE_REGISTRY 中的错字吗?
问题描述
我正在使用 ATL 140 编写一个 com 组件,并在我的组件主体中使用此宏
#define DECLARE_REGISTRY(class, pid, vpid, nid, flags)\
static HRESULT WINAPI UpdateRegistry(_In_ BOOL bRegister) throw()\
{\
return _Module.UpdateRegistryClass(GetObjectCLSID(), pid, vpid, nid,\
flags, bRegister);\
}
UpdateRegistry
有一个引用_Module
并且它必须是 a CComModule
,因为只有这个类有这个UpdateRegistryClass
方法。但是根据此文档,CComModule
已弃用。那么我应该声明_Module
为我的模块并复制UpdateRegistryClass
并粘贴到我的模块吗?非常感谢!
struct MyModule : CAtlExeModuleT<MyModule>
{
HRESULT WINAPI UpdateRegistryClass(...){...};
};
...
MyModule _Module;
解决方案
推荐阅读
- javascript - 如何确保只有在 async/await 数据库插入成功时才执行某些 JavaScript 代码?
- python-3.x - 为什么 wpide_save_file&filename=/ 不起作用?
- sql-server - SQL Server 2017:“VERIFY_CLONEDB”不是公认的选项
- java - 关于生日悖论的 Java 数组问题 - 帖子中的详细信息。我一直无法弄清楚我的代码出了什么问题,需要帮助
- python - python中的Hungman游戏代码显示不同的输出
- autoit - 带有 autoit 的 MsgBox
- string - 编写一个函数读取 number(s, i),它接受一个字符串 s 和一个整数 I,并返回一个由以下组成的对
- java - 在 Jackson 序列化期间更改值,例如用于 fastjson 的 ValueFileter
- javascript - Discord bot purge 命令 - 代码错误:TypeError:message.reply 不是函数
- javascript - nuxt 2.14 generate 不更新 asyncData