VS2010 ATL添加连接点的流程

近期需要开发一个ATL框架下的控件,按照MSDN中的向导做了个DEMO,但是在添加连接点时发生了一些意外情况,现在记录如下:

1.在类视图中 展开 XXXXLib,选择 _IXXXXXXXEvents 接口,右键菜单->添加->添加方法(M)

2.在向导界面添加函数,如果方法在标准dispatch ID中已经定义,可在完成向导后,手动编辑.idl文件,将相应的id值修改为标准dispatch ID常数。该向导的唯一工作是在idl文件对应位置添加函数声明

3.重新编译工程,或者在解决方案资源管理器中选择idl文件,右键菜单->编译

4.生成或者重新生成 _IXXXXXXXEvents 接口的实现类。因为向导工具的问题很坑,请注意以下红色标注的细节。

  • 在类视图选择控件对应类,右键菜单->添加->添加连接点(O),跳出向导界面
  • 检查 "从下列来源实现连接点" 选中的是 项目(P),"可用的类型库(T)"下拉列表中显示的是 ”XXXXLib<x.x>“ 信息,而不是 ”嵌入的IDL“,如果为后者,必须选择为前者后执行下一步
  • "双击源接口(I)" 中的 "_IXXXXXXXEvents " 将其添加到 “实现连接点”中
  • 点击 完成,生成对应的代码

特别必须注意红色标注的两步骤不能交换必须在"可用的类型库(T)"下拉列表显示为”XXXXLib<x.x>“ 信息时,双击添加"_IXXXXXXXEvents " 才能正确生成代码。否则即使在添加"_IXXXXXXXEvents " 后,将"可用的类型库(T)"下拉列表改为”XXXXLib<x.x>“ 信息,也无法生成正确的代码。你会发现生成的_IXXXXXXXEvents_CP.H文件中没有任何 "Fire_XXXXX"函数。

转载于:https://my.oschina.net/SKII/blog/734520

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值