Outlook.Items 来自 Outlook 2013 插件 C# 中的所有日历
Outlook.Items from all calendars in Outlook 2013 addin C#
我在 Outlook 2013 中注册了 2 个帐户,所以问题是当我尝试将 ItemAdd 和 ItemChange 事件附加到日历帐户时,在主帐户中它运行良好,但在第二个帐户中无法处理事件,我的代码是这样的:
Outlook.MAPIFolder calendarFolder = null;
Outlook.Items calendarItems = null;
private void AddinModule_AddinInitialize(object sender, EventArgs e)
{
calendarFolder = this.OutlookApp.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
calendarItems = calendarFolder.Items;
calendarItems.ItemAdd += this.ItemAdd;
calendarItems.ItemChange += this.ItemChange;
}
我认为问题是 calendarItems 不显示二级帐户的项目,因此不处理事件,但我需要处理两个或更多日历帐户的事件。
calendarItems 变量必须在全局 (class) 级别上声明,以防止它被垃圾收集器销毁。
我只看到订阅默认配送店铺事件的代码:
calendarFolder = this.OutlookApp.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
calendarItems = calendarFolder.Items;
相反,您需要遍历配置文件中的所有商店(在您的情况下为 2 个)并使用商店 class 的 GetDefaultFolder 方法获取日历文件夹,其中 returns一个 Folder 对象,它表示存储中的默认文件夹,并且是 FolderType 参数指定的类型。此方法类似于 NameSpace 对象的 GetDefaultFolder 方法。不同之处在于此方法获取与帐户关联的交付商店中的默认文件夹,而 NameSpace.GetDefaultFolder returns 当前配置文件的默认商店中的默认文件夹。
Namespace Stores 属性 class returns 代表当前配置文件中所有 Store 对象的 Stores 集合对象。
P.S。我看到你使用 ADX。在这种情况下,您可以使用 ADXOutlookItemsEvents 轻松处理 Items 事件。查看面向开发人员的入门指南以获取更多信息。
我在 Outlook 2013 中注册了 2 个帐户,所以问题是当我尝试将 ItemAdd 和 ItemChange 事件附加到日历帐户时,在主帐户中它运行良好,但在第二个帐户中无法处理事件,我的代码是这样的:
Outlook.MAPIFolder calendarFolder = null;
Outlook.Items calendarItems = null;
private void AddinModule_AddinInitialize(object sender, EventArgs e)
{
calendarFolder = this.OutlookApp.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
calendarItems = calendarFolder.Items;
calendarItems.ItemAdd += this.ItemAdd;
calendarItems.ItemChange += this.ItemChange;
}
我认为问题是 calendarItems 不显示二级帐户的项目,因此不处理事件,但我需要处理两个或更多日历帐户的事件。
calendarItems 变量必须在全局 (class) 级别上声明,以防止它被垃圾收集器销毁。
我只看到订阅默认配送店铺事件的代码:
calendarFolder = this.OutlookApp.Session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
calendarItems = calendarFolder.Items;
相反,您需要遍历配置文件中的所有商店(在您的情况下为 2 个)并使用商店 class 的 GetDefaultFolder 方法获取日历文件夹,其中 returns一个 Folder 对象,它表示存储中的默认文件夹,并且是 FolderType 参数指定的类型。此方法类似于 NameSpace 对象的 GetDefaultFolder 方法。不同之处在于此方法获取与帐户关联的交付商店中的默认文件夹,而 NameSpace.GetDefaultFolder returns 当前配置文件的默认商店中的默认文件夹。
Namespace Stores 属性 class returns 代表当前配置文件中所有 Store 对象的 Stores 集合对象。
P.S。我看到你使用 ADX。在这种情况下,您可以使用 ADXOutlookItemsEvents 轻松处理 Items 事件。查看面向开发人员的入门指南以获取更多信息。