MailItem.GetInspector.WordEditor 在 Outlook 2013 AddIn 中始终为 NULL

MailItem.GetInspector.WordEditor is NULL on Outlook 2013 AddIn all the time

我们有一个 C# Outlook 加载项,它允许最终用户单击功能区中的一个按钮以在新电子邮件中插入一些内容。我们正在使用 MailItem.GetInspector.WordEditor 来这样做。然而奇怪的是,我们的程序无法一直获取 WordEditor。到目前为止,它只在我的机器上。

我们会得到这样的异常

System.Runtime.InteropServices.COMException (0x9CD04005): The operation failed.
   at Microsoft.Office.Interop.Outlook._Inspector.get_WordEditor()

最后 4 位始终为 4005,而前 4 位可能会发生变化。前 4 个应该是指发生错误的组件。

我在我的机器上安装了 outlookspy,它也无法获取 WordEditor。

我在互联网上做了一些搜索,发现了这个 link:system.Runtime.InteropServices.COMException (0xB5904005): The operation failed,所以它建议我们在激活事件上获取 WordEditor,以确保 WordEditor 已完全初始化,但是在新的电子邮件,根据我们的理解,它应该已经被激活,除非我们在这里遗漏了什么。另外,我在一封新电子邮件上多次使用 运行 OUtlookSpy,每次 WordEditor 都为空。所以它似乎不应该是初始化问题。

有人可以阐明我们应该在这里调查的内容吗?

您可能会觉得我的解决方案有点奇怪,但它确实有效。

"Microsoft VBA for Outlook Addin" 似乎由于某种原因被禁用。我启用了它,问题就消失了。

老实说,我找不到这种行为的合乎逻辑的解释。

我在使用我们的插件时遇到了同样的问题:“安全环境”中的一位客户制作了一些 restrictions。我们的插件做了 运行,但每次访问 WordEditor 都会导致 System.Runtime.InteropServices.COMException (0x80004005)。这是一个非常奇怪的行为,我无法解释。

在我们还启用“Microsoft VBA for Outlook Addin”(ProgId Microsoft.VbaAddinForOutlook.1) 之后,它起作用了(就像 Dobry 所建议的那样)。