Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/329.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用c#更新outlook约会?_C#_Outlook_Appointment - Fatal编程技术网

如何使用c#更新outlook约会?

如何使用c#更新outlook约会?,c#,outlook,appointment,C#,Outlook,Appointment,我已使用c#创建了outlook会议计划。我已经把globalid保存到database了。现在,我需要再次更新我用c#创建的会议计划。你能帮我解决这个问题吗 致意 Fırat您可以使用 还要确保您了解哪个idGlobalAppointmentID或EntryID?对于EntryID,您可以使用名称空间.GetItemFromID,但由于Outlook在处理会议更新时会重新创建约会,因此其条目id会发生更改,GetItemFromID将失败 GlobalAppointmentID是一种方法(这是

我已使用c#创建了outlook会议计划。我已经把globalid保存到database了。现在,我需要再次更新我用c#创建的会议计划。你能帮我解决这个问题吗

致意 Fırat

您可以使用
还要确保您了解

哪个id
GlobalAppointmentID
EntryID
?对于
EntryID
,您可以使用
名称空间.GetItemFromID
,但由于Outlook在处理会议更新时会重新创建约会,因此其条目id会发生更改,
GetItemFromID
将失败

GlobalAppointmentID
是一种方法(这是Outlook本身在处理更新/取消时使用的方法),但不幸的是,Outlook对象模型不允许您搜索二进制(PT_binary)属性,因此您可以做的最好的方法是循环遍历日历文件夹中的所有项目。您需要使用扩展MAPI(C++或Delphi)或(任何语言)-(.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+ "'");