★★★ATL COM工程中创建多个ATL Object对象,为什么只有第一个创建的对象可用?

步履人生 步履人生 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
我创建了一个ATL COM工程,然后创建了一个ATL Object的对象,Object选择的是Simple Object,在Attributes页面中的设置如下:
Threading Model:Apartment
Interface:Custom
Aggregation:No

如下是接口定义:
class ATL_NO_VTABLE CFTProp : 
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CFTProp, &CLSID_FTProp>,
// public IFTProp
public IShellExtInit,
public IShellPropSheetExt
{
public:
CFTProp()
{
}

DECLARE_REGISTRY_RESOURCEID(IDR_FTPROP)
DECLARE_NOT_AGGREGATABLE(CFTProp)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CFTProp)
// COM_INTERFACE_ENTRY(IFTProp)
COM_INTERFACE_ENTRY(IShellExtInit)
COM_INTERFACE_ENTRY(IShellPropSheetExt)
END_COM_MAP()

// IFTProp
public:
// IShellExtInit
STDMETHODIMP Initialize(LPCITEMIDLIST, LPDATAOBJECT, HKEY);

// IShellPropSheetExt
STDMETHODIMP AddPages(LPFNADDPROPSHEETPAGE, LPARAM);
STDMETHODIMP ReplacePage(UINT, LPFNADDPROPSHEETPAGE, LPARAM) { return E_NOTIMPL; }
};


上面的ATL 对象能正常运行。
我想在这个一个ATL COM工程中再创建一个ATL Object,所以按照上面的创建步骤再创建了一个,如下是接口:
class ATL_NO_VTABLE CFTComment : 
public CComObjectRootEx<CComSingleThreadModel>,
public CComCoClass<CFTComment, &CLSID_FTComment>,
// public IFTComment
public IShellExtInit, // 使用Shell接口的初始化;
public IContextMenu // 使用Shell中菜单接口;
{
public:
CFTComment()
{
}

DECLARE_REGISTRY_RESOURCEID(IDR_FTCOMMENT)

DECLARE_PROTECT_FINAL_CONSTRUCT()

BEGIN_COM_MAP(CFTComment)
// COM_INTERFACE_ENTRY(IFTComment)
COM_INTERFACE_ENTRY(IShellExtInit) // IShellExtInit接口映射;
COM_INTERFACE_ENTRY(IContextMenu) // IContextMenu接口映射;
END_COM_MAP()

// IFTComment
public:
STDMETHOD(Initialize)(LPCITEMIDLIST pidlFolder, LPDATAOBJECT pDataObj, HKEY hkeyProgID); // 接口初始化方法;

STDMETHOD(QueryContextMenu)(HMENU hmenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
STDMETHOD(GetCommandString)(UINT idCmd, UINT uFlags, UINT *pwReserved, LPSTR pszName, UINT cchMax);
STDMETHOD(InvokeCommand)(LPCMINVOKECOMMANDINFO pici);
};



但是只有第一个创建的FTProp对象可以能正常运行,而第二个创建的则无法运行,是什么原因呢?

如果我把第二创建的ATL对象FTComment放在另一个工程(ATL COM工程)中,就能正常运行,搞不懂是什么原因,是对象创建的时候“Attributes”的设置原因吗?如果是,我该怎么设置才能在一个工程中使用两个ATL Object对象呢?
...全文

相关推荐

梦想划词翻译—聚合词典搜索-crx插件

语言:中文 (简体) 梦想划词翻译是为阅读和学习外语而开发的一款翻译和查词工具,聚合数十款在线词典和在线翻译。 ★★★ 历经三个多月,终于发布了第一个版本 ★★★ 这是一款精心雕琢并免费开源的划词翻译扩展「 https://github.com/ryanker/dream_translate 」,也是一款致力于改善「中国式哑巴英语」而设计的一款英语发音练习扩展程序。 语言本身是一项技能,需要像游泳和骑自行车一样,通过实战练习才能掌握;应让「听说」变成身体的一种条件反射,而不是依靠死记硬背单词和语法规则来学习。如果有人说背诵「游泳说明书」就能学会游泳,那不是在开玩笑,就是在害人。 ★ 学习深坑 ★ 在中国式「填鸭式教育」体系下,使用着西方国家已淘汰几十年的「语法翻译法」教学英语,把英语这样的技能当成知识学习,已经把全民带入到一个错误的深渊。学生们为应付考试,学习英语时往往注重「背单词学语法」,而忽略了最重要的「听说」运用能力,很容易造成考完试不用,就忘光的现象。这样的错误学习方法造就了 90% 以上的学习失败率,大量的学生因为学不好英语,在高考前已经放弃了学习,从而人生轨迹也发生改

weixin_38610513

mobx-logger:Log Mobx动作,React,事务和计算

MobX记录器 通过仅记录正确的信息,始终了解MobX应用程序中的实际情况。 ★★★喜欢这个项目吗? ,或以支持我的工作! 谢谢。 ★★★ 安装 NPM: npm install mobx-logger CDN: https://unpkg.com/mobx-logger/mobx-logger.umd.js : https://unpkg.com/mobx-logger/mobx-logger.umd.js 用法 import { enableLogging } from 'mobx-logger' ; // optional const config = { ... } ; enableLogging ( config ) ; 要获得Mobx 3支持,请使用Mobx Logger 0.6.0。 选项 与MobX DevTools不同,您可以简单地配置应将哪些特定信息记录到控制台。

沈临白

电子工程师必须知道的10个网站

电子工程师必须知道的10个网站.解决你想不到的问题。

a1975654714

蓝梦分页控件 1.0.7.420

注意:★★★控件请到论坛下载,此处附件只有说明<br/><br/>蓝梦的分页控件 Ver 1.0.7.420<br/><br/><br/>下载地址<br/><br/>http://www.xgamesdev.com/bbs/showtopic-339.aspx<br/><br/><br/>特点:<br/><br/>1.分页逻辑全部封装内部完成。<br/><br/>2.您可以使用控件提供的数据获取方式获取数据,也可以仅仅利用控件UI。<br/><br/>3.支持SQL2005,SQL2000,ACCESS,您可以通过重写GetData方法扩充数据库支持。<br/><br/>4.你可以启用URL参数传递页码模式。<br/><br/>5.支持缓存数据,你可以自由设置缓存大小。<br/><br/>6.可以选择使用数字,下拉列表,上下翻页按钮后者它们的任意组合进行翻页。<br/><br/>7.数字支持多种样式(数字,中文,大写)页码呈现方式,你甚至可以修改数字页码的每个数字字符。<br/><br/>8.可以通过修改CSS样式表自由修改UI呈现的样式。<br/><br/>9.分页显示信息可以定制模板。<br/><br/>10.同时支持 .Net 1.1 和 .Net 2.0<br/><br/><br/>更多特性未能详列。<br/><br/><br/>未来版本:<br/><br/>1.增加数字按钮图片模式。<br/><br/>2.增加Ajax支持。<br/><br/>3.增加oracle, MySql支持。<br/><br/><br/><br/>其它说明:<br/><br/>1.简单的使用方法参考例子里面的代码。<br/><br/>2.zWebControlLibrary目录下为附带的css文件和一个图片按钮。<br/><br/>3.zWebControlLibrary03.dll: .Net 1.1适用<br/><br/>4.zWebControlLibrary05.dll: .Net 2.0适用<br/><br/><br/><br/>注意:<br/><br/>你可以免费使用此控件用于学习研究,如需商用,请联系蓝梦。<br/><br/><br/><br/><br/><br/>蓝梦联系方式:<br/><br/>QQ:81513697<br/><br/><br/><br/>发布日期:2007-4-20<br/>

gg_zg

常见ASPCMS系统综合人气排名

常见ASPCMS系统综合人气排名

weixin_38640794
评论 25
收藏 已收藏
分享
返回顶部
步履人生
VC/MFC 16,550 成员 421,606 内容