我正在使用NetOffice库开发Outlook AddIn,但我想VSTO的问题类似。
我想在Outlook中处理有关约会的以下事件:
这很简单:
var exp = App.Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
(exp.Items as Items).ItemChangeEvent += Addin_ItemChangeEvent;
所以现在我需要的每个案例,我的事件处理程序启动。 然而问题是,我需要认识到,如果约会上的更改是由于日历上的用户操作或收到的ICS文件。
我真的坚持那个,任何提示?
答案 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文件更新。