处理约会拖动,删除日历上的主题更改,以及通过Outlook中的ICS文件进行更改

时间:2016-04-20 15:35:06

标签: outlook vsto outlook-addin netoffice

我正在使用NetOffice库开发Outlook AddIn,但我想VSTO的问题类似。

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

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

这很简单:

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

所以现在我需要的每个案例,我的事件处理程序启动。 然而问题是,我需要认识到,如果约会上的更改是由于日历上的用户操作收到的ICS文件。

我真的坚持那个,任何提示?

1 个答案:

答案 0 :(得分:1)

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