Outlook API的问题 - 拖放

时间:2015-07-13 20:41:40

标签: c# outlook

我有一个带有TreeView的Outlook插件。

我知道当用户拖动电子邮件但我不知道如何识别用户何时拖动文件夹

识别拖动的对象后,如果是文件夹,将按以下代码的步骤获取CurrentFolder,传递并发布文件夹的所有电子邮件

Outlook.Application outlookApplication = Globals.ThisAddIn.Application;
Outlook.Explorer outlookExplorer = (Outlook.Explorer)outlookApplication.ActiveExplorer();
Outlook.Selection selection = outlookExplorer.Selection;
Outlook.Folder folder = (Outlook.Folder)outlookExplorer.CurrentFolder;
Outlook.Items items = folder.Items;
Outlook.MailItem mail = null;

for (int i = 1; i <= items.Count; i++) 
{
    if (items[i] is Outlook.MailItem)
    {
        mail = (Outlook.MailItem)items[i]; 
        // Here I have all the mails and the plugin works to publish one or more mails like a Outlook.MailItems
    }
}

有人知道我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

每个人,我都找到了解决问题的非常丑陋的方法,但这正是我所需要的。

如果args存在很多属性,只有当我拖动文件夹时才会出现这些属性之一。查看代码。

if (e.Data.GetDataPresent("UniformResourceLocator"))
{
    // This step it's true only with a folder 
}
else
{
    // This step it's to others items like MailItem, ContactItem...
}

总有一天,它会为某人使用。

问候!!!