Как в надстройке для Outlook 2010 можно сделать операцию удаления невозможной?

Я пишу надстройку для 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 в сообщении, чтобы отменять доступ автоматически?

1 ответ

Не удаляйте MailItem; переместить его в olFolderDeletedItems папка вместо. Ты можешь использовать GetDefaultFolder() получить ссылку на эту папку; смотрите здесь.

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