Outlook Interop ClearSelection方法

时间:2014-12-02 14:55:19

标签: c# wpf outlook interop

我在WPF应用程序中使用Interop时遇到了困难。 我真正想要做的是将Outlook文件拖放到我的应用程序中并提取附件并存储它们。除此之外,我想阅读主题并搜索一个4位数字,然后将其作为附件存储到的文件夹的名称。 我一直在网上搜索没有使用Interop的解决方案,但我找不到任何适合我的方法。 所以我想,让我们试一试。这听起来很简单,因为我发现了很多遵循这种模式的例子:

 if (e.Data.GetDataPresent("FileGroupDescriptor"))
        {
            Microsoft.Office.Interop.Outlook.Application app = new Microsoft.Office.Interop.Outlook.Application();
            Microsoft.Office.Interop.Outlook.Selection selection = app.ActiveExplorer().Selection;

            foreach (object mi in selection)
            {
                Microsoft.Office.Interop.Outlook.MailItem mailItem = (Microsoft.Office.Interop.Outlook.MailItem)mi;
                string subject = "Untitled";
                if (!string.IsNullOrEmpty(mailItem.Subject))
                {
                    subject = mailItem.Subject;
                    MessageBox.Show(subject);
                }
            }

        }

这有效,但我有一个问题:选择不断增长。我尝试了RemoveFromSelection和ClearSelection方法,但它们不起作用。每次我将新的Outlook项目拖到曲面时,它都会一直显示所有以前的项目。 有谁能够帮我?我完全失去了

1 个答案:

答案 0 :(得分:1)

您是否在应用程序中处理Drag事件?

如果是这样,请尝试在事件处理程序中调用以下代码:

e.Data.GetData(“RenPrivateMessages”);

有关详细信息,请参阅Outlook, custom task pane and drag-drop problem