gefenggd 2017-06-14 09:44 采纳率: 0%
浏览 1388

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() 
  • 写回答

1条回答 默认 最新

  • oyljerry 2017-06-14 13:34
    关注

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

    评论

报告相同问题?

悬赏问题

  • ¥15 js调用html页面需要隐藏某个按钮
  • ¥15 ads仿真结果在圆图上是怎么读数的
  • ¥20 Cotex M3的调试和程序执行方式是什么样的?
  • ¥15 一道python难题3
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试