我正在为我的公司开发一个与 Outlook 日历同步的日历。
自动取款机我可以:
- 从 Outlook 导入约会并在我的日历中显示
- 在 Outlook 约会更新时更新我的约会
- 在我的日历中创建约会时创建 Outlook 约会
我遇到的唯一问题是在我的约会更新/删除时更新/删除 Outlook 约会。
我有相应约会的 GlobalAppointmentID,但我似乎无法搜索该 ID。
我试过:
using Microsoft.Office.Interop;
private void GetAppointment(string myGlobalAppointmentID)
{
Outlook.Application oApp = new Outlook.Application();
Outlook.NameSpace mapiNamespace = oApp.GetNamespace("MAPI");
Outlook.MAPIFolder calendarFolder = mapiNamespace.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar);
Outlook.Items outlookCalendarItems = calendarFolder.Items;
Outlook.AppointmentItem appointmentItem = (Outlook.AppointmentItem)outlookCalendarItems.Find("[GlobalAppointmentID] = '{0}'", myGlobalAppointmentID));
//update or delete appointmentItem here (which I know how to do)
}
我不断收到“条件无效”异常。显然 Outlook 不允许搜索二进制属性(例如 GlobalAppointmentID)。
我使用相同的 outlookCalendarItems.Find() 和 calendarFolder.Items.Restrict() 在其他情况下没有问题。
我尝试使用 Redemption,但我也无法让它工作。有没有人有经验或建议?