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