Обработайте встречу drag'n'drop, тему изменения в календаре и изменения через файл ICS в Outlook
Я разрабатываю надстройку Outlook с использованием библиотеки NetOffice, но я думаю, что проблема схожа с VSTO.
Я хочу обрабатывать следующие события в Outlook, касающиеся встреч:
- Пользователь drag'n'drops назначений, чтобы изменить дату назначения
- Пользователь дважды щелкает тему встречи и редактирует ее прямо в календаре.
- Пользователь получает файл ICS по электронной почте, который обновляет некоторые данные о встрече
Так что это довольно просто:
var exp = App.Session.GetDefaultFolder(OlDefaultFolders.olFolderCalendar);
(exp.Items as Items).ItemChangeEvent += Addin_ItemChangeEvent;
Так что теперь в каждом необходимом случае мой обработчик событий запускается. Однако проблема заключается в том, что мне нужно распознать, если изменение в назначении происходит из-за действий пользователя в календаре или полученного файла ICS.
Я действительно застрял на этом, какие-нибудь советы?
1 ответ
Вы можете использовать знаки для этого. Я пытаюсь объяснить свое решение. В каждом элементе внешнего вида (это может быть AppointmentItem и MailItem) у вас есть свойство UserProperties
, вы можете создать переменную марки как string public const string ICSMark = "ICSMark"
и добавьте новое свойство пользователя с этим знаком appointmentItem.UserProperties.Add(ICSMark, OlUserPropertyType.olText);
, Когда ваше событие происходит, вы можете проверить свой товар на эту отметку UserProperty mark = appointmentItem.UserProperties.Find(ICSMark);
, если метка не нулевая, она была обновлена из файла ICS.