0

我正在使用 NetOffice 库开发 Outlook 插件,但我猜 VSTO 的问题类似。

我想在 Outlook 中处理有关约会的以下事件:

  • 用户拖放约会以更改约会日期
  • 用户双击约会主题,直接在日历上编辑
  • 用户通过电子邮件获取 ICS 文件,其中更新了约会的一些数据

所以这很容易:

        var exp = App.Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
        (exp.Items as Items).ItemChangeEvent += Addin_ItemChangeEvent;

所以现在在我需要的每种情况下,我的事件处理程序都会启动。但是问题是,我需要认识到,如果约会的更改是由于用户对日历的操作收到的 ICS 文件造成的。

我真的坚持那个,有什么建议吗?

4

1 回答 1

1

您可以为此使用标记。我试图解释我的解决方案。在每个 Outlook 项目(可以是 AppointmentItem 和 MailItem)中,您都有一个属性UserProperties,您可以像 a 一样创建标记变量,string public const string ICSMark = "ICSMark"并使用此标记添加新的用户属性appointmentItem.UserProperties.Add(ICSMark, OlUserPropertyType.olText);。当您的事件发生时,您可以检查您的项目是否有此标记UserProperty mark = appointmentItem.UserProperties.Find(ICSMark);,如果标记不为空,则它是从 ICS 文件更新的。

于 2016-04-21T10:18:00.240 回答