Как в надстройке для 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()
получить ссылку на эту папку; смотрите здесь.