代码之家  ›  专栏  ›  技术社区  ›  Paul-Jan

DocumentItem(IMessage)打开后丢失附件

  •  1
  • Paul-Jan  · 技术社区  · 13 年前

    在我们的MAPI邮件存储提供商中,我们提供电子邮件和非outlook项目(办公文档等)。从技术上讲,我们将这些文档作为一个带有单个附件和特定 PR_MESSAGE_CLASS (例如。 IPM.Document.txt文件 ) . Outlook随后将此对象视为 DocumentItem ,不是 MailItem .

    正如您在下面的屏幕截图中看到的那样,这很好用。预览程序按预期工作,双击项目将在适当的应用程序中打开项目(例如。 便条簿 ).

    Before opening - preview works fine

    但是在物品被打开之后, 一旦外部应用程序关闭 ,出了问题。预览会中断,在首先选择另一个项目之前,无法再次打开该项目。

    After opening - preview breaks, opening breaks

    根据Outlook Spy,我们 IMessage 物体仍然完好无损。这是OOM 文档项 包装物 现在不知怎么地失去了它的附件 :

    DocumentItem Missing attachment

    是什么导致了这种行为?我们缺少刷新吗?Outlook项目是否显示已损坏的旧IMessage对象?我们已经在这个话题上花费了相当多的研究,欢迎所有的建议!

    [编辑1]

    这是Outlook间谍声明我们 I消息 对象仍然正常:

    IMessage still fine

    [编辑2]

    只要外部应用程序没有关闭,一切都很好。我可以随心所欲地多次打开文档,但一旦关闭外部查看器的单个实例,Outlook项目就会“损坏”。

    1 回复  |  直到 13 年前
        1
  •  0
  •   Paul-Jan    13 年前

    答案很简单,

    这个 PR_消息标记 物业需要包括 消息标志_哈希

    添加此标志立即解决了这个问题,并且非常合理。只是Outlook的最终行为(先访问,然后断开)让我们失望了。

    推荐文章