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

时间:2017-02-01 05:04:45

标签: c# outlook outlook-addin outlook-redemption

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

使用相同的方法从现有RDOMail获取MailItem(具有有效条目ID的方法)可以正常工作。

Redemption文档中未记录此行为。只是想知道我在这里错过了什么吗?

1 个答案:

答案 0 :(得分:4)

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

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