Как в надстройке для Outlook 2010 можно сделать операцию удаления невозможной? - PullRequest
3 голосов
/ 10 февраля 2011

Я пишу надстройку для 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 Ответ

1 голос
/ 11 февраля 2011

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

...