C# 检测仅在本地计算机上创建的日历项

C# 检测仅在本地计算机上创建的日历项,c#,outlook,interop,office-interop,C#,Outlook,Interop,Office Interop,我正在写一个Outlook插件,它需要跟踪日历项的创建。我使用以下代码检测用户何时向日历中添加了内容: foreach (Account acc in _outlookApplication.Session.Accounts) { var calendar = acc.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderCalendar); var

我正在写一个Outlook插件,它需要跟踪日历项的创建。我使用以下代码检测用户何时向日历中添加了内容:

            foreach (Account acc in _outlookApplication.Session.Accounts)
        {
            var calendar = acc.DeliveryStore.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
            var itemsCalendar = calendar.Items;
            itemsCalendar.ItemAdd += new ItemsEvents_ItemAddEventHandler(OnMeetingCreated);
        }
这在本地计算机上运行良好,事件可以正常触发。但是,如果用户有两台设置了相同电子邮件帐户的计算机,则在辅助计算机上的Outlook同步并下载用户在主计算机上新创建的会议项目后,也会在辅助计算机上触发此事件

有没有一种方法可以忽略不是用户在本地计算机上创建的会议


任何帮助都将不胜感激。

所有数据都是在本地PC上创建的,无论是在.pst还是.ost文件中。如果外接程序正在创建项,并且您希望在ItemAdd事件中忽略或处理该项,则需要管理要与之进行比较的项的内存中集合


或者,您可以将特定于计算机的令牌添加到项目中的自定义属性,并将其用作比较的标志。

感谢您的回复。很遗憾,日历项是由用户手动创建的,或者是通过接受会议邀请等方式创建的。是否有办法在触发ItemAdd事件之前拦截此过程并向属性添加唯一令牌?是的,只需根据需要处理AppointmentItem对象的Application.NewInspector事件和设置事件处理程序(如物业变更、关闭等)啊,我不知道,谢谢!