• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >vc/mfc > 请问如何使用IDispatchImpl实现基于IDispatch连接点Sink

请问如何使用IDispatchImpl实现基于IDispatch连接点Sink

作者:佚名 字体:[增加 减小] 来源:互联网 时间:2017-06-04

佚名通过本文主要向大家介绍了idispatchimpl,sink,sink是什么意思,heat sink,sink into等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 请问如何使用IDispatchImpl实现基于IDispatch连接点Sink
描述:

通过IDispEventImpl可以实现基于IDispatch连接点Sink。
不过我想使用IDispatchImpl来做方便一些。
但是使用中发现IDispatchImpl无法接受到阿,而IDispEventImpl就可以,不知道为何,请指教。
另外要说明的是,我要实现的ISomeSink接口是来自另外一个应用程序的,比如Word。


解决方案1:

事件接收器是一个类,从IDispEventImpl继承。IDispEventImpl是ATL中的一个模板,专用于接收IDispatch接口的事件。IDispatchImpl不支持事件.你还是直接从IDispEventImpl派生把

解决方案2:

ATL的模板类IDispatchImpl只支持双接口,不支持dispinterface,源对象的出接口(outgoing interface)往往是dispinterface,所以接收器对象要通过其他的途径来实现事件接口。ATL提供了两个模板类IDispEventImpl和IDispEventSimpleImpl用于接收器对象的实现,IDispEventImpl要借助于类型库所提供的出接口类型信息,这是最简单的实现方法,而IDispEventSimpleImpl不需要类型库的支持,这是效率最高的方法。这两种方法都需要用到事件接收器映射表(event sink map)
看ATL技术内幕

解决方案3:

通过IDispEventImpl可以实现基于IDispatch连接点Sink。
不过我想使用IDispatchImpl来做方便一些。    
这样说是错误的,如果要用IDispatchImpl来做你必须手动把IDispEventImpl中的那几个方法重新包装一遍,除非你特别精通com要不然劝你放弃!


分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 请问如何使用IDispatchImpl实现基于IDispatch连接点Sink

相关文章

  • 2017-06-05 自定义的ActiveX控件中的结构体(包含绘图信息),客户使用该控件时如何操作该结构体变量?
  • 2017-06-05 谁能给个win32dll的例子急
  • 2017-06-05 这种环境下需要互斥访问吗?
  • 2017-06-05 为什么信号量不起作用呢?
  • 2017-06-04 我用MFC写了个自动化exe,但是在别的没安装VCnet的机器运行exe时注册失败。[急]
  • 2017-06-04 20分请问,有谁知道潘爱民近期翻译的COM本质论是否上市了,在那儿能买到。
  • 2017-06-04 如何用vc调用ocx?
  • 2017-06-05 有没有可能在一个进程里对两个对话框做覆盖平面显示???
  • 2017-06-05 请教个OPC客户端的问题
  • 2017-06-05 使用dll导出类可以用Loadlibrary的方法调用吗?

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • 怎样消去这个对话框?
    • 有关ADO的问题内存泄露or内存碎片
    • FindWindow返回句柄失败,GetLastError却返回0!!!!
    • 请问netuse命令对应的api函数是什么?
    • 全局线程函数中如何给CView类发送自定义消息?
    • pdfocx控件使用的疑惑?
    • 求助!!VC中调用RationalRose
    • 现用VC写DLL给DELPHI用,谁能较为详细的说明,从定义到调用等,谢
    • 求助]关于dll延迟加载问题(与SPI有关)
    • 请问如何用vcnet建立activedll呢?

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有