如果MAPI会话没有正常关闭,如何确保Outlook实际保存了我刚刚创建的文件夹?

时间:2018-02-09 15:19:44

标签: outlook vsto outlook-addin

我使用OOM使用parentFolder.Folders.Add调用创建文件夹(parentFolderOutlook.Folder实例)。文件夹创建得很好。但是,在Outlook崩溃后不久(例如,其他一些代码导致致命错误)或者只是计算机的电源丢失。无论如何,MAPI会话意外终止。在这种情况下,下次启动Outlook时,我经常看不到创建的文件夹。看起来我使用OOM所做的更改有时不会传播到基础.PST文件。即使使用普通的非Exchange帐户也会出现这种情况(因此Exchange缓存模式不是问题)。

对我而言,了解文件夹是否实际已保存至关重要(因为如果我下次没有看到它,代码会认为此文件夹被故意删除并从中删除了远程服务器)。

可能有一些属性或方法调用来检查使用OOM进行的更改是否实际上已传播到持久存储?

2 个答案:

答案 0 :(得分:1)

不,除非您使用连接到Exchange邮箱的在线(而不是缓存)配置文件,否则不能这样做。

如果对PST存储或缓存的Exchange邮箱(OST)进行更改,则无法确保提交更改 - Outlook会定期或在关闭时刷新对本地PST / OST文件的更改。如果Outlook处理崩溃,则所有投注均已关闭。

答案 1 :(得分:1)

正如德米特里所说,没有具体的方法或属性。

要确保有意删除文件夹,您可以处理从指定的Folders集合中删除文件夹时触发的Folders.FolderRemove事件。在所有其他情况下,如果文件夹尚未存在,您可以在启动时重新创建该文件夹。