我有一个同步Outlook和我的应用程序之间约会的应用程序。同步代码使用Redemption更新Outlook中的约会。
在Outlook中添加约会时,我的代码会捕获项目添加事件,在我的应用程序中生成等效约会,并在Outlook约会中将我的约会ID添加为用户属性,然后保存它。
我遇到的一个奇怪问题是:
此时,Outlook会显示一个消息框,提示“该项目无法保存,因为它已被其他用户或其他窗口更改。”
如果我启用了同步加载项,我会发现这种情况经常发生,但如果我禁用加载项,则不会发生。
它几乎看起来Outlook检测到我的代码更改通过Redemption保存用户属性并且不喜欢它。
这是因为Redemption直接访问MAPI表以保存数据,而Outlook在我太快打开时仍然会缓存约会COM对象。所以我打开的约会在我想再次保存时已经“过时了”?
我正在测试的Outlook版本是Outlook 2016。
答案 0 :(得分:1)
如果发生以下情况,则会返回此错误:
您可以确保Outlook不会打开#1中的项目或(如果它已经打开)您可以搭载Outlook项目并在步骤#2使用RDOSession.GetRDOObjectfromOutlookObject打开它。