我分别对ITryMsg调用Msg,对ITryMsgEx调用MsgEx,结果都是Msg的执行结果
我该如何解决使它们都各自调用自己的函数?
class TryMsg :
public IDispatchImpl<ITryMsg, &IID_ITryMsg, &LIBID_ADVCOUNTLib>,
public IDispatchImpl<ITryMsgEx, &IID_ITryMsgEx, &LIBID_ADVCOUNTLib>,......
{........
BEGIN_COM_MAP(TryMsg)
COM_INTERFACE_ENTRY2(IDispatch, ITryMsg)//只有ITryMsg管用
COM_INTERFACE_ENTRY(ITryMsg)
COM_INTERFACE_ENTRY(ITryMsgEx)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
...........
public:
STDMETHOD(MsgEx)();//MessageBox("MsgEx")
STDMETHOD(Msg)();//MessageBox("Msg")
};
我该如何解决使它们都各自调用自己的函数?
class TryMsg :
public IDispatchImpl<ITryMsg, &IID_ITryMsg, &LIBID_ADVCOUNTLib>,
public IDispatchImpl<ITryMsgEx, &IID_ITryMsgEx, &LIBID_ADVCOUNTLib>,......
{........
BEGIN_COM_MAP(TryMsg)
COM_INTERFACE_ENTRY2(IDispatch, ITryMsg)//只有ITryMsg管用
COM_INTERFACE_ENTRY(ITryMsg)
COM_INTERFACE_ENTRY(ITryMsgEx)
COM_INTERFACE_ENTRY(ISupportErrorInfo)
END_COM_MAP()
...........
public:
STDMETHOD(MsgEx)();//MessageBox("MsgEx")
STDMETHOD(Msg)();//MessageBox("Msg")
};
解决方案 »
- ListCtrl SetItemData 排序 GetItemData之后 报错
- WTL中的这个类声明这段代码代表什么意思?
- 大侠看看这段代码哪里错了??关于图片闪烁的
- ndis中间层驱动的问题。
- 现在我有一个程序里,都需要访问一个资源. 如何做到读 可以多个线程同时读.
- 初学activex 类,不明白IDispatch在一个activex中扮演什么脚色..
- 这几个函数是什么意思?
- 关于静态图像控件的问题!!!
- 急...请问:怎么让一个非模式对话框不显示任务栏中的按钮,
- CRecordset::GetRecordCount怎么用啊 我不管怎么用得到的老是1 虽然记录数不止那么点
- How to split a string into segments
- 多线程的问题:如何从窗口进程给多个线程传递消息。或者指定传给某个线程如何实现?
看看IDL文件中ITryMsg和ITryMsg的IID定义是否相同?
我的调用方法如下:仍然有问题,不行,根本是MsgEx当Msg了
ITryMsg* pTry;
......
pTry->CreateDispatch
pTry->Msg()
ITryEx* pTryEx;
pTryEx->CreateDispath
pTryEx->MsgEx()
只有Msg,MsgEx为自定义的
你不要用包装类,直接调用即可。
ITryMsg* pTry;
ITryEx* pTryEx;
CoCreateInstance(...,(void**)&pTry);
pTry->Msg();
pTry->QueryInterface(IID,(void**)&pTryEx);
pTryEx->MsgEx();