如何用c#更新Outlook预约?

问题描述:

我已经用c#创建了outlook会议计划。我已经将globalid保存到数据库了。现在,我需要再次更新我用c#创建的会议计划。你能帮我解决吗?如何用c#更新Outlook预约?

问候 的Firat

哪个ID? GlobalAppointmentIDEntryID?在EntryID的情况下,您可以使用Namespace.GetItemFromID,但由于约会在Outlook处理会议更新时由其重新创建,因此其条目ID更改,并且GetItemFromID将失败。

GlobalAppointmentID是去(这是什么展望自身处理更新/取消指令时使用)的方式,但不幸的是Outlook对象模型不会让你搜索二进制(PT_BINARY)的属性,所以你能做的最好的是环通过日历文件夹中的所有项目。您需要使用扩展MAPI(C++或Delphi)或Redemption(任何语言) - (RDOtems。查找/查找下一个/ Restrictmption允许搜索二进制属性)。

Redemption.RDOSession session = new Redemption.RDOSession(); 
session.MAPIOBJECT = outlookApp.Session.MAPIOBJECT; //share the Outlook session 
RDOFolder calendarFolder = session.GetDefaultFolder(Outlook.OlDefaultFolders.olFolderCalendar); 
Redemption.RDOAppointmentItem appointmentItem = calendarFolder.Items.Find("GlobalAppointmentID = '"+TheGlobalAppointmentId+ "'"); 

您可以使用GetItemFromId 另外,还要确保你了解whole concept of Outlook EntryId vs. StoreId and GlobalId