3

我有一个用户在或Outlook 2010 Add-In上拖放电子邮件的地方。要获取这些电子邮件,我使用以下代码:TreeViewListView

Outlook._Application myOlApp = new Outlook.ApplicationClass();
Outlook.Selection droppedMails = myOlApp.ActiveExplorer().Selection;

问题是,例如,如果用户选择三封电子邮件,dropMails 将有三封电子邮件,但在第一次选择之后,如果他选择一个,则 dropMails 将是四封。

我的问题是为什么 myOlApp.ActiveExplorer().Selection 第二次没有被清除?我必须释放 Outlook 对象吗?

编辑:

Outlook 中的电子邮件预览也停止工作。因此,拖放后每个选定的电子邮件都不会更改预览。

当用户单击 Outlook 中的另一个文件夹时,该问题将得到解决。

感谢您的时间。

4

1 回答 1

5

经过一些研究,我发现问题在于丢弃的电子邮件COM对象没有被释放。释放它们最简单的方法是e.Data.GetData("RenPrivateMessages");DragDrop Event Handler.

于 2012-05-28T12:34:18.290 回答