保存 MAPI 属性
适用于:Outlook 2013 | Outlook 2016
许多对象都支持事务处理模型,其中对属性的更改在以后提交之前不会永久更改。 对属性的更改由 IMAPIProp::SetProps 和 IMAPIProp::D eleteProps 方法处理,而提交步骤由 IMAPIProp::SaveChanges 处理。 直到成功调用 SaveChanges 后,才能访问对象属性的最新版本。
当 SaveChanges MAPI_E_OBJECT_CHANGED返回错误值时,这是另一个客户端同时向对象提交更改的警告。 根据实现 对象的提供程序,多个客户端可以通过调用具有MAPI_MODIFY标志集的 OpenEntry 方法成功打开对象,从而为其提供读/写访问权限。 从此类 OpenEntry 调用返回的对象是存储数据的快照。 每次后续尝试更改此数据都会覆盖上一次尝试。
从 SaveChanges 接收MAPI_E_OBJECT_CHANGED后,客户端可以选择:
创建 对象的副本以保存更改。
对 SaveChanges 进行另一次调用,指定FORCE_SAVE。
使用 FORCE_SAVE 标志调用 SaveChanges 会覆盖以前的保存,并使客户端的更改永久化。