2016-04-21 102 views
0

有没有办法更改约会的GlobalAppointmentId。Outlook AddIn - 更改GlobalAppointmentId

我发现这个属性架构:

var globalIdPropertySchema = @"http://schemas.microsoft.com/mapi/id/{6ED8DA90-450B-101B-98DA-00AA003F1305}/00030102"; 

,我设置一个新的值给它:

Item.PropertyAccessor.SetProperty(globalIdPropertySchema, MY_NEW_ID); 

然后当我得到它使用Item.PropertyAccessor.GetProperty我得到了新的ID,但Item.GlobalAppointmentId仍然是原来的。

我需要这个以便我的插件可以使用ICS文件同步约会,我们的系统会在iCalendar UID字段中发送带有后缀的ICS文件。 但是可以通过Outlook AddIn为我们的系统创建约会,然后发送的ICS文件使用GlobalAppointmentID作为ICS文件中的UID字段。我们存储它,但它需要有我们的后缀。有小费吗?

回答

1

您需要完全发布预约才能确保Outlook在下次重新加载该预约。

重新启动Outlook后,您是否看到更改?

+0

在Outlook重新启动后,我看不到更改,它看起来像'Item.GlobalAppointmentId'在某处缓存,是否有程序化的方式释放该对象? –

+0

你确定id被设置为正确构造的值吗?在调用AppointmentItem.Save之后,您能否看到OutlookSpy中的更改(单击IMessage)? –

+1

我忘了在'SetProperty'后面调用'Appointment.Save',谢谢你指点我正确的方向! –