C++ COM组件Event派发

调用IDispEventImpl和SINK_ENTRY_EX进行事件接受的时候,为什么一直都收不到0x60020002的消息?
tli文件是有如下的
inline HRESULT ISchedulerEvents::OnTestMessage ( long messageType, struct ITestMessage * messageData ) {
return _com_dispatch_method(this, 0x60020002, DISPATCH_METHOD, VT_EMPTY, NULL,
L"\x0003\x0009", messageType, messageData);
事件代码如下
#import .....tlb no_namespace named_guids
class EventReceiver :

public IDispEventImpl EventReceiver,
&DIID_ISchedulerEvents,
&LIBID_RScheduler,
5, 600>
{

public:

STDMETHOD (OnDebugMessage)(BSTR strWin, BSTR strText, int traceLevel, bool NoEndOfLine);
STDMETHOD (OnTestMessage)(long messageType, struct ITestMessage * messageData);

BEGIN_SINK_MAP(EventReceiver)  
      SINK_ENTRY_EX(0, DIID_ISchedulerEvents, 0x60020000, OnDebugMessage) 
      SINK_ENTRY_EX(0, DIID_ISchedulerEvents, 0x60020002, OnTestMessage)
END_SINK_MAP() 
0

1个回答

有没有地方对应的触发事件,fire_event

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Com 组件的Event问题
哪位大虾了解在C#中如何响应ATL写的COM组件触发的事件?谢谢
COM组件的接口类添加Event
自己获取有无event的区别是,在向导中是否勾选:连接点。 红色为添加部分: import "oaidl.idl"; import "ocidl.idl";   [      object,      uuid(C74F7F62-D315-4BF6-9422-9B80D68DB4FA),      dual,      nonextensibl
VC 响应COM组件的 Event事件
rnCOM组件中的方法 long BeginVideo ( _bstr_t CamGUID, long hWnd, long nUserLevel, _bstr_t UserInfo )rn调用该方法失败引发EventOpenCameraError (String CamGUID,long ErrorCode)事件。rnrn请问:VC中调用BeginVideo 方法后如何响应 EventOpenCameraError 事件?rnrn
C#中如何响应Com组件的Event?
我在.NET compact framework 1.0下编程,需要响应Com组件的Event。我利用windows自带的IWebBrowser2,以实现Web浏览功能,同时需要响应DWebBrowserEvents2(如何响应??555,我不会)的BeforeNavigate2事件。rn我在EVC和VC6下已经测试没问题~~rn可是如何在C#中使用呢?rn我的关键疑惑在于这段代码在C#里咋写?rnBEGIN_DISPATCH_MAP(CIEComCtrlSink, CCmdTarget)rn DISP_FUNCTION_ID(CIEComCtrlSink, "OnQuit",DISPID_ONQUIT,OnQuit,VT_EMPTY, VTS_NONE)rn DISP_FUNCTION_ID(CIEComCtrlSink, "BeforeNavigate2",DISPID_BEFORENAVIGATE2,BeforeNavigate2,rn VT_EMPTY, VTS_DISPATCH VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PVARIANT VTS_PBOOL)rn DISP_FUNCTION_ID(CIEComCtrlSink, "DocumentComplete",DISPID_DOCUMENTCOMPLETE,DocumentComplete,rn VT_EMPTY, VTS_DISPATCH VTS_PVARIANT) rn DISP_FUNCTION_ID(CIEComCtrlSink, "DownloadBegin",DISPID_DOWNLOADBEGIN,DownloadBegin,VT_EMPTY, VTS_NONE)rn DISP_FUNCTION_ID(CIEComCtrlSink, "DownloadEnd",DISPID_DOWNLOADCOMPLETE,DownloadEnd,VT_EMPTY, VTS_NONE)rn DISP_FUNCTION_ID(CIEComCtrlSink, "OnNewWindow2",DISPID_NEWWINDOW,OnNewWindow2,VT_EMPTY, VTS_DISPATCH VTS_PVARIANT)rnEND_DISPATCH_MAP()rn就是如何把一个事件的响应映射到一个自定义函数。rnrn还望大侠们不吝赐教,小弟在此感激不尽。不知为啥只能最多给40分。。。
组件 --->父控件 (事件派发 ) 生命周期
vuejs 5.6- 4:001.scroll组件methods:{ if(this.listenScroll){ let me = this; this.scroll.on('scroll',(pos)=>{ //派发事件出去,外部可监听到scroll事件,得到position me.$emit('scroll',pos)
COM连接点事件event
COM 中的典型方案是让客户端对象实例化服务器对象,然后调用这些对象。然而,没有一种特殊机制的话,这些服务器对象将很难转向并回调到客户端对象。COM 连接点便提供了这种特殊机制,实现了服务器和客户端之间的双向通信。使用连接点,服务器能够在服务器上发生某些事件时调用客户端。 有了连接点,服务器可通过定义一个接口来指定它能够引发的事件。服务器上引发事件时,要采取操作的客户端会向服务器
COM中Event的响应?
在一个COM接口的dll中定义了一个事件,在客户端应该怎么去响应这个事件呢?rn例如:rnidl中定义如下事件void popMessage();rn在一个method中调用Fire_popMessage();rn在客户端import这个dllrn初始化以后,怎么在客户端响应这个事件?rn有没有这样的例子或者参考资料
如何做COM event的 sink?
我在做一个控制VC IDE的程序,让VC编译很多工程。msdn里面有一个例子autobld,它里面使用的应用程序接口是rnrnDECLARE_INTERFACE_(IApplication, IDispatch)rnrn然后他是这样sink的rnAtlAdvise(pUnk, this, *piidEvents, &m_dwAdvise)rnrn它的pUnk参数是IApplication,addin程序会直接得到。rnrn我用的application接口是rnclass IDispApplication : public COleDispatchDriverrnrn我是这样得到应用程序接口的rnrnIUnknown *pUnk;rn::GetActiveObject(clsid,NULL,&pUnk);rnrn然后rnpUnk->QueryInterface(IID_IDispatch,(void**)&lpDispatch);rnapp.AttachDispatch(lpDispatch);rnrn这两个接口不一样。如何才能得到一个application接口,用于autobld那种方法的sink呢?
C语言调用COM组件
2019独角兽企业重金招聘Python工程师标准>>> ...
C语言实现COM组件
简单使用纯C语言实现COM组件,帮助理解COM实现机制
C语言如何写COM组件?
以前用C++写过COM,接口用虚函数实现。C语言中没有虚函数的概念,如何写COM接口呢?
COM以及COM组件
[b]什么是COM?[/b] COM(Component Object Model,组件对象模型),是关于如何建立组件以及如何通过组件建立应用程序的一个规范,说明了如何可动态交替更新组件。 COM组件由以Win 32动态连接库(DLL)或可执行文件(EXE)形式发布的可执行代码所组成。 [b]优点[/b] 1. 可以随时间的流逝而发展进化。    2. ...
组件技术com组件
创建com组件的方法,创建mfc项目和atl项目
Flex组件的event问题
Flex组件RadioButton和RadioButtonGroup中的change,itemClick事件有什么区别?还有,group和groupName呢?
COM组件
COM组件   COM component(COM组件)是微软公司为了计算机工业的软件生产更加符合人类的行为方式开发的一种新的软件开发技术。在COM构架下,人们可以开发出各种各样的功能专一的组件,然后将它们按照需要组合起来,构成复杂的应用系统。由此带来的好处是多方面的:可以将系统中的组件用新的替换掉,以便随时进行系统的升级和定制;可以在多个应用系统中重复利用同一个组件;可以方便的将...
com组件
Com组件总结 对于com对象来说,com接口能实现与外部联系的唯一途径,com组件可以提供多个com接口,所以在编写com组件时,无论com对象功能如何设计,只要com组件的接口的GUID不变化,那么就能在com客户端通过接口调用com对象。 当我...
组件和COM
 一个应用程序通常是由一个二进制文件组成的。当编译器生成此应用程序后,在对下一个版本的源代码编译并发行新生成的版本之前,应用程序一般不会有所变化。显然,人们不愿意看到这种应用程序在发行之后处于静止状态。开发人员因此想出一种方法,让发行后的软件不断注入新的活力。这种方法就是组件技术。组件技术有别于传统的模块、类等面向对象中的概念,以往的程序当编译之后在文件中是静止不可变的。一个组件同一个微型
COM 组件
最近学习了一些有关com组件的知识。具体什么是comzuji
Event组件接口说明
组件接口说明 10.5.1监听器接口 组件接口 com.chinacreator.event.Listener 方法: public void handle(Event e);    说明:事件监听器通过本方法来处理监听到的事件消息。由具体的监听器实现类来实现这个方法。   使用实例:   public void handle(Event e) {        Objec...
javascript之event组件封装
__klogger.event = (function(){ // http://dean.edwards.name/weblog/2005/10/add-event/ // a counter used to create unique IDs var guid = 1; function _addEvent(element, type, handler) {
com组件介绍(com组件包含ADO)
ADO一直就是一个COM组件。 因为ADO是COM的,所以C++用的ADO和VB用的ADO是一个东西,不会说这个ADO的版本是C++的那个ADO是VB的这类。 采用面向对象的设计方法我们可以很容易的把要解决的问题事物抽象成各种类,并将内部动作封装隐藏起来,只提供一些接口。但这并没有完全解决我们的问题。昨天我在《程序员》杂志上看到,现在是后OO时代,那OO以后是什么呢?应该是面向组件吧。 O
COM组件调用COM组件的问题
我现在有A组件和B组件,均是在VC6中创建的,A、B各有若干个接口。rn现在我想B中的调用A中的接口,我在B的idl文件中import了A的idl文件,以前是调用正常的,在vs2005中用C#写的demo调用也正常。rn最近我修改了A组件中某个接口的方法,增加了2个参数,然后重新编译A和B,在demo中调用时,只引用B组件,可是通过B组件查看A组件中的这个接口的方法,参数数量还是原来的数目,而不是增加了2个参数后的数量。rn可是如果我在demo中直接引用A组件,查看其接口时,发现是正确的,也就是参数数量是添加了2个之后的数量。rn还有,我在2005中创建组件,2005中调用,修改接口方法后,在demo中查看却是正常的。rnrn大家帮忙看下,我的问题在哪里?谢谢啦!
Com组件调用Com组件的问题
现在有个 A.dll 这个Com组件已经注册, 现在我自己写了一个Com组件B.dll,用ATL向导做的, 现在我要在B里面写代码调用A里面的接口 请问怎么做?rnrn很着急啊! 最近老和COM组件打交道 快崩溃了!! 大家帮忙想想办法! 谢谢了
com组件学习com组件学习
com组件学习com组件学习
COM组件学习笔记--COM组件示例
COM组件示例
相关热词 c#串口测试应用程序 c# 匹配 正则表达式 c#防止窗体重绘 c#读写txt文件 c#挖地雷源代码 c#弹框选项 c# 移除 队列 c# 密码写入配置文件 c# 获取可用内存大小 c# 嵌入excel编辑