实现Com连接点产生异常(0x80020010 无效的被呼叫方)解决办法
来源:互联网 发布:加工中心半圆编程范例 编辑:程序博客网 时间:2024/05/17 01:28
今天用IDispEventSimpleImpl(IDispEventImpl)在客户代码中实现了一个回调接口类,但是在运行时造成异常,提示0x80020010 无效的被呼叫方,应google,发现接口类中函数没有使用__stdcall声明,造成了这种异常,随笔记一下,写了下实现代码,供查阅
//Sink.hextern const IID DIID__IShopStaObjEvents;extern _ATL_FUNC_INFO ResultInfo;class CSink : public CComObjectRootEx<CComSingleThreadModel>,public CComCoClass<CSink>,public IDispEvent(Simple)Impl<1, CSink, &DIID__IShopStaObjEvents>,public IUnknown{public:typedef IDispEvent(Simple)Impl<1, CSink, &DIID__IShopStaObjEvents> _baseCls;BEGIN_COM_MAP(CSink)COM_INTERFACE_ENTRY_IID(IID_IDispatch, _baseCls)END_COM_MAP()BEGIN_SINK_MAP(CSink)SINK_ENTRY_INFO(1, DIID__IShopStaObjEvents, 1, Pay, &ResultInfo)END_SINK_MAP()void __stdcall Pay(LONG lResult){int i=lResult;i++;}};
// Sink.cppconst IID DIID__IShopStaObjEvents = __uuidof(_IShopStaObjEvents);_ATL_FUNC_INFO ResultInfo = { CC_STDCALL, VT_EMPTY, 1, {VT_I4}};
//main.cppCAppModule _Module;CComObject<CSink> sink;int _tmain(int argc, _TCHAR* argv[]){_Module.Init(NULL,NULL);CoInitializeEx(NULL,COINIT_APARTMENTTHREADED);IShopStaObjPtr spObj;HRESULT hr;sink.AddRef();hr = spObj.CreateInstance(__uuidof(ShopStaObj));sink.DispEventAdvise(spObj);spObj->Buy(4);sink.DispEventUnadvise(spObj);spObj.Release();return 0;}
0 0
- 实现Com连接点产生异常(0x80020010 无效的被呼叫方)解决办法
- VC开发的ocx调用dll中报错“0x80010012 被呼叫方(服务器 [不是服务器应用程序])不可用并已消失。所有连接均无效。没有执行呼叫。”
- 解决Com调用AutoCAD"被呼叫方拒绝接收呼叫"
- IDE问题 "被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))"
- Excel导出 被呼叫方拒绝接收呼叫。异常来自HRESULT:0x80010001(RPC_E_CALL_REJECTED)
- 被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))
- ie7文档模式下:被呼叫方(服务器[不是服务器应用程序])不可用并已消失。所有连接均无效。没有执行呼叫。
- com连接点方式的向导实现
- 错误处理(一)—— 被呼叫方拒绝接收呼叫。 (异常来自 HRESULT:0x80010001 (RPC_E_CALL_REJECTED))
- COM 使用多线程发送连接点事件的实现
- C# 调用office com组件时报“呼叫由被调用方被拒绝”错误
- 体会COM连接点与实现接收器!
- 利用Asterisk产生呼叫的脚本
- NET操作word问题,被呼叫方拒绝接收呼叫
- COM连接点 - 一个COM接口实现多个连接点(3)
- COM连接点 - Part III - 一个COM接口实现多个连接点
- 也谈“指定的 SOAPAction 无效”异常的解决办法 ”
- StreamCorruptedException异常的产生和应注意的点
- LeetCode LRU 缓存 LRU Cache
- Query$命名冲突问题解决方法
- 模板方法模式----C++实现
- jquery each 跳出问题与解决方法
- Codeforces 382 C. Arithmetic Progression
- 实现Com连接点产生异常(0x80020010 无效的被呼叫方)解决办法
- W3A SCAN 开发过程记录
- Websocket On Bash
- 搜索引擎网页快照工作原理
- LeetCode - Swap Nodes in Pairs
- 网站投票是什么
- LeetCode(108)Convert Sorted Array to Binary Search Tree
- [Tips:2]Chrome浏览器不支持小于12px的字体
- ubuntu12 安装Pig version 0.12.0