Я пишу надстройку для Outlook 2010. В какой-то момент ей нужно удалить элементы Почты, выбранные в данный момент пользователем. Я использую следующий код, который работает довольно хорошо:
Selection selectedMessages = Globals.ThisAddIn.Application.ActiveExplorer().Selection;
// It is possible for a non-mail item to be part of this collection. (One example is when a calendar
// item is in the deleted items folder. Select it and hit this delete button.)
System.Collections.IEnumerator enumerator = selectedMessages.GetEnumerator();
while(enumerator.MoveNext())
{
if (enumerator.Current is MailItem)
{
((MailItem)(enumerator.Current)).Delete();
}
}
Моя проблема в том, что когда я удаляю сообщения таким образом, обычная операция отмены недоступна для пользователя. Пользователь может перейти в папку «Удаленные» и переместить сообщения обратно в папку «Входящие». Но это будет сбивать с толку пользователей, которые привыкли просто нажимать Ctrl-Z или маленькую стрелку «Отменить» в верхнем левом углу экрана.
Есть ли какой-нибудь способ, которым я могу зарегистрировать это действие с помощью механизма отмены, или, возможно, вызвать «реальную» функцию удаления Outlook в сообщении, чтобы отменять доступ автоматически?