调用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()