• 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 > 关于连接点实现的问题(IDispEventImpl),大虾帮忙啊

关于连接点实现的问题(IDispEventImpl),大虾帮忙啊

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

佚名通过本文主要向大家介绍了油焖大虾,油焖大虾做法,红烧大虾,大虾的做法大全,大虾等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 关于连接点实现的问题(IDispEventImpl),大虾帮忙啊
描述:

我写的连接点实现的客户端程序,下面是接收器类的.h和.cpp。编译运行,跟踪发现
// EventSink.h : Declaration of the CEventSink
/////////////////////////////////////////////////////////////////////////////
// CEventSink
class ATL_NO_VTABLE CEventSink : 
public IDispEventImpl<1, CEventSink,&DIID__ISpeakEvents,&LIBID_MY050104ATLLib, 1, 0>
{
public:
CEventSink()
{
}
public:
public:
BEGIN_SINK_MAP(CEventSink)
SINK_ENTRY_EX(1, DIID__ISpeakEvents, 1, OnSay)
END_SINK_MAP()
void __stdcall OnSay(long aVal); //没有参数的情况
// IEventSink
};
// EventSink.cpp : Implementation of CEventSink
#include "stdafx.h"
#include "050104MFCwithATL.h"
#include "EventSink.h"
/////////////////////////////////////////////////////////////////////////////
// CEventSink
void __stdcall CEventSink::OnSay(long aVal)
{
AfxMessageBox("called by Event from dll Server !");
}
客户端调用代码:
IUnknown *pUnk;  
LRESULT hResult = m_Dispatch->QueryInterface(IID_ISpeak,(void**)&pUnk);
if (hResult == S_OK) 
{
pEventSink->DispEventAdvise(pUnk);
}
m_Dispatch是对话用来保存服务器自动化接口指针的,这个指针有效,调用该接口的方法都没问体。不过DispEventAdvise(pUnk)出现问题,跟踪发现,代码执行到服务器端的Advise时,它要调用pEventSink->QueryInterface(..),就是检查接收器的IUnknown指针是否有效,发现pEventSink(就是传到服务器端的pUnk)它的虚表时空的,就是说没有QueryInterce的实现,怎么回事?不是派生自
public IDispEventImpl<1, CEventSink,&DIID__ISpeakEvents,&LIBID_MY050104ATLLib, 1, 0>,这个基类已经实现了基本的com接口麽?或者是其他方面的问题?


解决方案1:

加入
BEGIN_COM_MAP(CEventSink )
COM_INTERFACE_ENTRY(IID_ISpeakEvents)
END_COM_MAP()


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

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

  • 各位大虾!!怎么把Windows的某个服务手动删除。。。。
  • 请问哪位大虾有实现IInternetProtocolRoot接口的完整例子?
  • 请问各位大虾,如何实现IInternetProtocolRoot接口?
  • 哪位大虾帮帮小弟啊在一个MFC控件中怎么使用定时器啊
  • 各位大虾,一个关于COM的问题
  • [急]大虾帮忙,这段代码什么意思呀,帮忙分析一下
  • 大虾说下OLE,ActiveX,COM,ATL这四者是什么关系?
  • atlhost出问题,大虾帮忙
  • 打开word文档提示类型不匹配,大虾们看看
  • ##################有经验的大虾,请进~~小弟求教Word

相关文章

  • 2017-06-05 如何在DLL中给工程,EXE传递一个全路径?
  • 2017-06-05 类中的静态函数能直接访问类中的私有成员变量吗?
  • 2017-06-04 学习COM技术内幕时想弄清COM内的执行顺序,请大家帮忙解答,一部分自己已经弄清,大家也可以来学习指正
  • 2017-06-05 关于ActiveX在runtimemode的模式下如何改变大小。急!!!
  • 2017-06-05 VS2008,在哪可以找到ComponentGallery?
  • 2017-06-05 请问如何将一个网址如:wwwsinacom传给一个已经运行的IE窗口,让此窗口访问wwwsinacom
  • 2017-06-05 unicode編程問題急救!!!!!!!
  • 2017-06-05 请问我怎么知道某个DLL中的函数和参数列表?
  • 2017-06-04 关于散集与列集的问题
  • 2017-06-05 简单的dll隐式加载问题,非常急,在线等!

文章分类

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

最近更新的内容

    • 关于COM+连接与杀毒软件的问题
    • 在VB中如何调用VC++做的COM组件参数类型才不会出错
    • ActiveX,头文件中声明数组变量,构造函数中赋值,成员函数使用时内存报错
    • 关于线程等待的问题,急
    • 关于保存ActiveX控件数据的问题
    • 关于串行化问题
    • 在DLL中用AfxOleInit;的问题?
    • 这段代码是什么意思
    • 各位高手,请教请教?为什么VC中作一个W32DLL时会这样,为什么呢???
    • 请各位帮帮看'AfxBeginThread'的问题

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

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