C#Outlook加载项获取选定的电子邮件

时间:2013-02-11 13:53:07

标签: c# outlook-addin

我希望在Outlook 2010加载项中获取所有选定的电子邮件。我找到了这个MSDN tutorial,但我是C#的初学者,我不太明白这行代码:Object selObject = this.Application.ActiveExplorer().Selection[3];

我相信Selection[]类似于被覆盖的运算符,C#中的索引器。但是,有没有办法看到它的实现?如果我浏览代码,我只看到接口但不看实现。所以我不知道Selection对象的结构。 operator []背后的真正含义。

另外,为什么所选项目从索引1开始而不是0?

2 个答案:

答案 0 :(得分:5)

该行检索第三个选定的消息 Selection []等同于Selection.Item() - Item函数被标记为索引属性访问器 您无法看到实现 - 它都在Outlook对象模型中 所有Outlook集合都以1开头,而不是0.这就是它以前的用法,因此Outlook对象模型使用相同的约定。

答案 1 :(得分:4)

我知道它有点晚了,但这个问题在搜索引擎中排名很高。以下是我用于在Outlook Interop中选择电子邮件的解决方案:

internal static IEnumerable<MailItem> GetSelectedEmails()
        {
            foreach (MailItem email in new Microsoft.Office.Interop.Outlook.Application().ActiveExplorer().Selection)
            {
                yield return email;
            }
        }