我正在编写一个充当 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 http://blogs.msdn.com/andreww/archive/2008/11/19/implementing-imessagefilter-in-an-office-add-in.aspx and
- 为什么 COMAddIn.Object 应从 StandardOleMarshalObject 派生 http://blogs.msdn.com/andreww/archive/2008/08/11/why-your-comaddin-object-should-derive-from-standardolemarshalobject.aspx
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)