Обработайте встречу 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.

Другие вопросы по тегам