如何用c#更新Outlook预约?
问题描述:
我已经用c#创建了outlook会议计划。我已经将globalid保存到数据库了。现在,我需要再次更新我用c#创建的会议计划。你能帮我解决吗?如何用c#更新Outlook预约?
问候 的Firat
答
哪个ID? GlobalAppointmentID
或EntryID
?在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+ "'");