如果进程被终止,保存约会的MAPI API不会保存更改

时间:2012-08-06 15:35:32

标签: outlook-addin mapi

我正在尝试使用vc ++ for outlook开发一个COM插件,它从非交换服务器接收数据并将它们保存到Outlook PST文件中。

我使用Outlook对象模型和MAPI API在邮件存储中保存约会对象。我使用Outlook :: _ AppointmentItem :: save()方法保存项目。在此之后,我通过IMessage接口为此设置了一些属性,并在其上调用savechanges()。

在正常情况下工作正常。但是,如果在添加事件后立即终止Outlook进程,则重新启动时更改将丢失。看起来outlook需要一些时间来保存对磁盘的更改。这种行为造成了一些其他问题。

有什么办法可以在保存后立即将更改刷新到磁盘。需要帮助

1 个答案:

答案 0 :(得分:0)

PST提供商按其认为合适的方式刷新chnages。 强制刷新的唯一方法是使用IMAPIClientShutdown接口,但是在执行此操作后,整个MAPI系统将关闭,因此在重新启动进程之前不会执行任何操作。