在我们的 MAPI 消息存储提供程序中,我们提供电子邮件和非 Outlook 项目(办公文档等)。从技术上讲,我们将这些文档作为 IMessage 对象提供,带有单个附件和特定的PR_MESSAGE_CLASS
(例如IPM.Document.txtfile)。然后 Outlook 将此对象视为 a DocumentItem
,而不是MailItem
。
正如您在下面的屏幕截图中看到的那样,这很好用。预览器按预期工作,双击该项目将在相应的应用程序(例如记事本)中打开该项目。
但是,在打开项目后,一旦外部应用程序关闭,就会出现问题。预览中断,并且在先选择另一个项目之前无法再次打开该项目。
根据 Outlook Spy,我们的IMessage
对象仍然非常好。现在不知何故缺少附件的是 OOMDocumentItem
包装器:
什么可能导致这种行为?我们缺少更新吗?Outlook 项目是否显示已损坏的旧 IMessage 对象?我们已经对这个主题进行了相当多的研究,欢迎所有的指点!
[编辑 1]
这是 Outlook 间谍,说明我们的IMessage
对象仍然可以:
[编辑 2]
只要外部应用程序没有关闭,一切都很好。我可以根据需要多次打开文档,但只要我关闭外部查看器的单个实例,Outlook 项目就会“损坏”。