我用c#创建了Outlook会议计划。我已经将全球资源保存到数据库。现在,我需要再次使用c#更新我创建的会议计划。你能帮我解决一下吗?
祝你好运 的Firat
答案 0 :(得分:0)
答案 1 :(得分:0)
哪个身份证? GlobalAppointmentID
或EntryID
?如果是EntryID
,您可以使用Namespace.GetItemFromID
,但由于Outlook在处理会议更新时会重新创建约会,因此其条目ID会更改,GetItemFromID
将失败。
GlobalAppointmentID
是要走的路(这是Outlook本身在处理更新/取消时使用的方式),但遗憾的是Outlook对象模型不允许您搜索二进制(PT_BINARY)属性,所以你可以做到最好do循环遍历Calendar文件夹中的所有项目。您需要使用扩展MAPI(C ++或Delphi)或Redemption(任何语言) - (RDOtems。Redemption中的Find / FindNext / Restrict允许搜索二进制属性)。
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+ "'");