我正在编写一个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同步并在主计算机上下载新创建的会议项目,此事件将在辅助计算机上触发。
有没有办法以某种方式忽略用户在本地计算机上创建的会议?
非常感谢任何帮助。
答案 0 :(得分:1)
所有数据都在本地PC上创建,无论是在.pst还是.ost文件中。如果您的加载项正在创建项目,并且您想在ItemAdd事件中忽略或处理该项目,则需要管理要与之比较的项目的内存中集合。
或者,您可以将特定于机器的标记添加到项目中的自定义属性,并将其用作要比较的标志。