Outlook VSTO-AddIn: запретить Outlook удалять встречу - PullRequest
0 голосов
/ 07 мая 2020

В некоторых случаях я пытаюсь запретить, чтобы пользователь удалял встречу. Примерно так:

  1. Пользователь нажимает на встречу в календаре
  2. Пользователь выбирает удаление
  3. VSTO-Addin проверяет, разрешено ли это, и отображает диалоговое окно с предупреждением в случае, если не. Outlook НЕ удаляет встречу!

В настоящее время я привязан к Item_Delete_Add () и думаю, что можно только обработать удаление, но вы не можете предотвратить фактическое удаление встречи Outlook. Верно?

1 Ответ

0 голосов
/ 07 мая 2020

Вы находитесь на правильном пути ... Событие Items.ItemRemove запускается, когда элемент удаляется из указанной коллекции. Это событие не запускается при удалении последнего элемента в файле личных папок (.pst) или при одновременном удалении 16 или более элементов из файла PST, почтового ящика Microsoft Exchange или папки publi c Exchange. Более того, вы должны сохранить ссылку на исходный объект, чтобы знать, какой элемент удаляется из папки. Чтобы это работало, вы должны подписаться на событие SelectionChange класса Explorer. Он запускается, когда пользователь программно или посредством взаимодействия с пользовательским интерфейсом выбирает другой или дополнительный элемент Microsoft Outlook. Таким образом, вы можете подписаться на каждый выбранный элемент и знать, какой именно элемент будет удален.

Другой возможный способ - обработать событие AppointmentItem.BeforeDelete , которое запускается перед элементом (который является экземпляр родительского объекта) удаляется. Экземпляр удаляемого элемента передается в качестве параметра. Чтобы это событие запускалось при удалении сообщения электронной почты, списка рассылки, записи журнала, задачи, контакта или публикации посредством действия, должен быть открыт инспектор. Событие происходит каждый раз при удалении элемента. Это также позволяет отменить действия, установив второй параметр - если процедура события устанавливает этот аргумент в true, операция не завершается и элемент не удаляется.

Еще один подход - перепрофилировать ленту Дополнительные сведения см. в разделе Команды временного изменения назначения на ленте Office Fluent .

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