• 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 > 在COM用中连接点的方式实现事件,客户端一定要用IDispatch接口吗?

在COM用中连接点的方式实现事件,客户端一定要用IDispatch接口吗?

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

佚名通过本文主要向大家介绍了idispatch,idispatch error 3092,idispatch error 3149,idispatch error 3088,idispatch error 3127等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 在COM用中连接点的方式实现事件,客户端一定要用IDispatch接口吗?
描述:

我在VC6 中生成的ATL simple object ,不管其接口是否为dual.
vc为我生成的调度代码总是这么一段:
IDispatch* pDispatch = reinterpret_cast<IDispatch*>(sp.p);
而且总是调用pDispatch->Invoke
请问这样说是不是只能用IDispatch 相关的接口 做为客户接口的基类?
我想用自已的接口行不行?
而VC为我在IDL中自动生成的代码,是以dispinterface 而不是以interface关键字生成的,那么
我在服务端还能改吗?
至少我在<COM原理及应用>一书中看到是可以用普通的interface实现的啊,难道那只是原理性的说明?如果真的要做,在VC6中还要自已改很多代码?


解决方案1:

你在新建一个ATL简单对象的时候
在ATL Object Wizard属性对话框中 不是两个Tab页吗?
一个是Names 就是接口的名字什么的,一个是Attributes页 你在这一页的Interface框框中选择Custom单选按钮,那它就是自定义接口了,而是dual属性了。
另外你直接在你的接口定义寓言中吧dual关键字删掉页可以的啊。不过建议采用前面那种方法。
不用dispinterface是一样的可以作为事件接口的。
你可以在你接口类上点击右键,在弹出的右键菜单中点击Implement Connection Point...然后选择你要实现的事件接口,这样VC就把连接点的相关代码给你加上去了。


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

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

  • 实现了IDispatch接口的组件和ActiveX控件用起来有什么不同呢?我觉得一样可以用在Web页面上,为什么ActiveX控件还要多实现那么多各种各样
  • 实现了IDispatch接口的组建,用vbscript怎么调用?
  • IDispatch::Invoke如何通过dispid调用方法?
  • 关于idispatch和typelib
  • 问个弱弱的问题:得到一个ActiveX控件的IDispatch指针后,如何使用?有没有与CListCtrl相同的ActiveX控件?
  • MSFlexGrid有一个Picture属性,是一个IDispatch接口指针,请问如何操作?
  • 请教COM,IDispatch相关问题!
  • 制作弹出广告拦截器时碰到问题,关于OnNewWindow2IDispatchppDisp,BOOLCancel的
  • [关于IDispatch问题]:如何将tlb文件编译进dll中?高分求救
  • 请问一下:COM组件(TLB)中使用IDispatch和CoInitialize两种方法有何不同?谢谢啦

相关文章

  • 2017-06-04 客户端如何获得服务端定义的对象
  • 2017-06-04 求vsprinter和vsreport完全的安装文件(特别是说明文档和配套设计器)
  • 2017-06-05 开发视频监控的请进
  • 2017-06-05 如何获得窗口的句柄?
  • 2017-06-04 BHOinvoke参数中pdispparams->rgvarg为什么在挂装HTML元素事件时为空呢?
  • 2017-06-05 很简单的问题?控件消息!
  • 2017-06-04 切换摄像头分辨率系统崩溃?怎么回事?
  • 2017-06-05 使用boundchecker检查程序发现一下问题,比较郁闷!
  • 2017-06-05 在1个程序中用多线程调用dll中的一个接口函数,比不用多线程能提高效率吗
  • 2017-06-04 非常奇怪的问题关于activex的WM_KEYDOWN,WM_CHAR

文章分类

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

最近更新的内容

    • 悬赏100分:Vista下IShellIconOverlayIdentifier接口的使用问题
    • 已知一个进程的ID如何获得他的句柄?
    • 有谁用线程编过winsock的接收文件和发送文件
    • [★{☆求救☆}★]热切希望有DLL注入编程经验的朋友帮我解决这个难题。。
    • WTL的问题
    • 请问在windows下如何发信号量让signal函数捕获
    • CShockwaveFlash怎么知道FLASH播放完毕了啊。。
    • 江湖救急,如何在Def文件中导出一个类
    • 我给activex控件加了一个方法,参数为空,返回值为BSTR,应用程序调用这个方法出错
    • 急救。com问题,请高手指教!!!!!!

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

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