Надстройка Outlook — изменение GlobalAppointmentId

Есть ли способ изменить 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, я получаю новый идентификатор, но Item.GlobalAppointmentId по-прежнему остается исходным.

Мне это нужно, чтобы моя надстройка могла синхронизировать встречи с использованием файлов ICS, наша система отправляет файлы ICS с суффиксом в поле UID iCalendar. Но можно создавать встречи для нашей системы через надстройку Outlook, тогда отправляемый файл ICS использует GlobalAppointmentID в качестве поля UID в файле ICS. Мы сохраняем его, но он должен иметь наш суффикс. Какие-нибудь советы?


person alek kowalczyk    schedule 21.04.2016    source источник


Ответы (1)


Вам нужно будет полностью освободить встречу, чтобы Outlook перезагрузил ее в следующий раз.

Видите ли вы изменения после перезапуска Outlook?

person Dmitry Streblechenko    schedule 21.04.2016
comment
Я не вижу изменений после перезапуска Outlook, похоже, что Item.GlobalAppointmentId где-то кэшируется, есть ли программный способ освободить объект? - person alek kowalczyk; 21.04.2016
comment
Вы уверены, что для идентификатора установлено правильно построенное значение? Видите ли вы изменения в OutlookSpy (щелкните IMessage) после вызова AppointmentItem.Save? - person Dmitry Streblechenko; 21.04.2016
comment
Я забыл позвонить Appointment.Save после SetProperty, спасибо, что указали мне правильное направление! - person alek kowalczyk; 21.04.2016
comment
Быстрый вопрос @dmitry-streblechenko SetProperty вызывает исключение The operation failed. в Outlook 2010, какие-нибудь советы, как изменить глобальный идентификатор в этой версии? - person alek kowalczyk; 04.05.2016
comment
на Outlook 2010 всегда, на более новых никогда. - person alek kowalczyk; 04.05.2016
comment
Я могу только предложить попробовать использовать Extended MAPI (++ или Delphi) или Redemption. - person Dmitry Streblechenko; 04.05.2016
comment
Я использую библиотеку netoffice, есть ли у упомянутых способов больше возможностей? - person alek kowalczyk; 05.05.2016
comment
Я не знаком с netoffice, извините. - person Dmitry Streblechenko; 05.05.2016
comment
Таким образом, с настройкой расширенного MAPI или Redemption глобальный идентификатор не должен быть проблемой в Outlook 2010? - person alek kowalczyk; 05.05.2016
comment
Да, это сработает — OOM пытается быть Большим Братом и пытается защитить разработчика за то, что тот выстрелил себе в ногу. - person Dmitry Streblechenko; 05.05.2016