代码之家  ›  专栏  ›  技术社区  ›  Leon Zhou

使用GetRDOObjectFromOutlookObject时,兑换邮件对象未正确链接到原始邮件项目

  •  3
  • Leon Zhou  · 技术社区  · 8 年前

    我遇到过这样的情况,如果我获得 MailItem 来自OOM且此电子邮件是新创建的电子邮件,其条目ID将为 null .如果我使用 RDOSession.GetRDOObjectFromOutlookObject 获取 RDOMail 由此 邮件 ,获得 RDOMail 将所有属性设置为空或设置为默认值,更改它们不会更改原始属性中相应属性的值 邮件 .

    使用相同的方法获得 RDOMail 从现有的 邮件 (具有有效条目ID的条目)工作正常。

    赎回文件中未记录此行为。只是想知道我是否遗漏了什么?

    1 回复  |  直到 8 年前
        1
  •  4
  •   Dmitry Streblechenko    6 年前

    这是Outlook对象模型一直做的事情(或者更确切地说,没有做)-在保存项目之前,通过UI或Outlook对象模型设置的最新更改无法通过MAPI访问。

    GetRDOObjectFromOutlookObject的主要目的不是为了方便访问未保存的更改,而是为了确保赎回和OOM最终使用从MailItem检索到的相同IMessage对象。MapObject以避免两次打开同一个IMessage对象(保存时可能会导致冲突)。