我遇到过这种情况,如果我从OOM获得MailItem
并且此电子邮件是新创建的,则其条目ID将为null
。如果我使用RDOSession.GetRDOObjectFromOutlookObject
方法从此RDOMail
获取MailItem
,则获取的RDOMail
将使所有属性为null或设置为其默认值并更改它们不要更改原始MailItem
中相应属性的值。
使用相同的方法从现有RDOMail
获取MailItem
(具有有效条目ID的方法)可以正常工作。
Redemption文档中未记录此行为。只是想知道我在这里错过了什么吗?
答案 0 :(得分:4)
这是Outlook对象模型总是这样做(或者更确切地说没有做到) - 在保存项目之前,通过MAPI或Outlook对象模型设置的最新更改无法通过MAPI访问。
GetRDOObjectFromOutlookObject的主要目的不是为了便于访问未保存的更改,而是确保Redemption和OOM最终都使用从MailItem.MAPIOBJECT检索的相同IMessage对象,以避免两次打开相同的IMessage对象(保存时可能会导致冲突。