我正在编写一个充当PowerPoint 2007插件的C#程序.在某些机器上,对PowerPoint对象模型的一些调用会抛出一条COMException
消息RPC_E_SYS_CALL_FAILED
.关于如何处理此错误或如何避免错误,我找不到任何具体建议.从谷歌搜索它看起来与消息队列或单线程公寓有关.还是我离开了?
错误消息的示例是:
系统调用失败.(来自HRESULT的异常:0x80010100(RPC_E_SYS_CALL_FAILED))
在Microsoft.Office.Interop.PowerPoint._Presentation.get_FullName()
不幸的是,问题出现在客户端的机器上,所以我没有简单的方法来调试它!我是否应该在收到此错误时重试呼叫?
任何建议,以帮助我解决这个问题将不胜感激!
我不知道它与您的问题有关,但您的所有COM调用必须来自您创建加载项的同一个线程.如果您创建了新线程,则必须特别小心.这两篇文章描述了详细信息:
在Office加载项和中实现IMessageFilter
为什么COMAddIn.Object应该从StandardOleMarshalObject派生