• 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组件事件/通知的问题

关于COM组件事件/通知的问题

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

佚名通过本文主要向大家介绍了com组件,com组件是什么,com组件下载,com组件注册,com组件编程等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于COM组件事件/通知的问题
描述:

参考杨老师的资料和代码重新写了个关于COM组件事件/通知的示例程序,编译通过,但是运行报错!搞了一天没有解决!希望高手们指点下:
HRESULT hr = m_spCom.CreateInstance(__uuidof(EventAdvise));
if(FAILED(hr))
{
AfxMessageBox(_T("注册了吗?COM初始化了吗?"));
CDialog::OnCancel();
}
m_dwCookie = 0;
m_Sink.SetResultWnd(&m_Edit);
// 把接收器接口指针,传递到组件中。实现“连接”
hr = m_spCom->Advise(&m_Sink, (long*)&m_dwCookie);
运行到实现连接就报错!
Unhandled exception in UseEvent.exe(KERNEL32.DLL):0XE06D7363 :Microsoft c++ Exception


解决方案1:

在服务器端使用ICallBack接口写回调函数,添加回调方法 Fire_OnXX开头的,还有回调计数器Advise() UnAdvise()
然后在客户端写接收器类 Sink_ 继承ICallBack
再在实现回调处理函数raw_Fire_OnXX
调用的时候 首先在客户端程序中调用Advise,设置回调接口类Sink_ 的ICallBack指针
然后 在服务器端需要的时候调用Fire_On就OK了

解决方案2:


hResult = CoCreateInstance(sourceobjCLSID, NULL, 
CLSCTX_INPROC_SERVER, IID_IDispatch, (void **)&m_pDispatch);
if (FAILED(hResult)) 
{
return FALSE;
}
BOOL RetValue = 0;
if (m_dwCookie != 0) {
return 2;
}
LPCONNECTIONPOINTCONTAINER pConnPtCont;
if ((m_pDispatch != NULL) &&
SUCCEEDED(m_pDispatch->QueryInterface(IID_IConnectionPointContainer,
(LPVOID*)&pConnPtCont)))
{
ASSERT(pConnPtCont != NULL);
LPCONNECTIONPOINT pConnPt = NULL;
DWORD dwCookie = 0;
if (SUCCEEDED(pConnPtCont->FindConnectionPoint(IID_IEventSet, &pConnPt)))
{
ASSERT(pConnPt != NULL);
pConnPt->Advise(&m_xEventSink, &dwCookie);
m_dwCookie = dwCookie;
RetValue = 1;
pConnPt->Release();
}
pConnPtCont->Release();
m_dwCookie = dwCookie;
}


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

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

  • COM组件的变量问题?
  • DLL中对进程外的ActiveX/COM组件(EXE形式)的对象实例化问题,DLL内不支持调进程外COM??
  • 怎样将原来不支持COM的mfc类,成为com类
  • MFC实现COM的接口映射的问题。请教高手。急。。
  • COM+组件的注册问题?
  • 关于COM组件的问题
  • com组件全局变量问题
  • COM组件和主程序之间的数据传输问题??
  • MFC中添加服务器组件的注册问题。
  • Com组件使用Recordset的游标问题

相关文章

  • 2017-06-05 菜问题:什么叫线程池?
  • 2017-06-04 关于用odbc加ado控件远程访问数据库的问题
  • 2017-06-05 用VC+MAPX开发显示ActiveX控件不能初始化?我安装的MAPX控件怎样注册?
  • 2017-06-05 如果两个线程同时对一个地址读,会怎么样?
  • 2017-06-04 activeX在服务器端注册,下载到本地后,怎样打开(http://wwwtestcom/image/123tif的图像文件?散分!!!
  • 2017-06-04 在未安装vc的机器上无法显示activex的问题
  • 2017-06-04 如何将RichEditCtrl中的Ole对象保存到文件
  • 2017-06-05 runtimelibrary的差别
  • 2017-06-04 推荐git访问新方法,不看后悔
  • 2017-06-04 请问组件和控件有什么区别吗?

文章分类

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

最近更新的内容

    • 菜鸟的问题,请赐教
    • 引入word宏功能
    • 如何在vc中将文本文件的内容输出到excel图表显示!3x
    • 在ATL进程外组件中使用wininet库的问题
    • sdk怎么插入activex控件啊
    • ATL编写的ActiveX问题,添加属性在使用中无法显示调用方法?
    • 请教一个多线程程序执行顺序的问题!(我是刚学多线程编程的)
    • atl中如何创建window?
    • 怎么把后台运行的控制台程序调到前台?
    • 我现在想在vc下编写一个组件,然后在html中调用!

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

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