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

时间:2017-03-22 14:44:51

标签: c# outlook interop office-interop

我正在编写一个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同步并在主计算机上下载新创建的会议项目,此事件将在辅助计算机上触发。

有没有办法以某种方式忽略用户在本地计算机上创建的会议?

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:1)

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

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