在Outlook 2010的加载项中,如何使删除操作可以撤消?

时间:2011-02-10 20:14:39

标签: c# outlook pia 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的用户来说,这将会让人感到困惑。屏幕左上角的箭头。

我是否有某种方法可以使用撤消机制注册此操作,或者可以调用" real"删除邮件上的Outlook功能,以便自动撤消撤消?

1 个答案:

答案 0 :(得分:1)

不要删除MailItem;将其移至olFolderDeletedItems文件夹。您可以使用GetDefaultFolder()获取对此文件夹的引用;见here