我有一个在 Outlook 和我的应用程序之间同步约会的应用程序。同步代码使用 Redemption 更新 Outlook 中的约会。
在 Outlook 中添加约会时,我的代码会捕获项目添加事件,在我的应用程序中生成等效约会,并将我的约会 ID 作为用户属性添加到 Outlook 约会中,然后保存它。
我遇到的奇怪问题是:
- 在月视图中单击一天
- 文本框显示在日期块中,输入主题,然后按 Enter
- 双击新约会立即打开它
- 进行一些更改,例如设置提醒
- 点击保存按钮
此时,Outlook 会显示一个消息框,提示“该项目无法保存,因为它已被另一个用户或在另一个窗口中更改”。
如果我启用了约会同步加载项,我发现这种情况经常发生,但如果我禁用它,则永远不会发生。
看起来 Outlook 几乎检测到我通过 Redemption 保存用户属性的代码更改并且不喜欢它。
这是因为 Redemption 直接访问 MAPI 表以保存数据,而 Outlook 在我打开得太快时仍然缓存约会 COM 对象。这样我打开的约会在我想再次保存时已经“过时”了?
我正在测试的 Outlook 版本是 Outlook 2016。