在启动时在Outlook功能区扩展中检索资源管理器窗口对象?

时间:2013-02-19 00:45:40

标签: c# outlook vsto outlook-2010

我在尝试检索默认的收件箱文件夹时遇到问题,因为我没有要从中检索它的实例。

最终,我正在尝试检索一年或更久的邮件列表,以便我可以在表单中显示这些邮件并让用户知道这些邮件即将过期,因此要么移动它们,保存它们,否则它将被删除。有一项新的企业电子邮件转储政策,可在一年后删除电子邮件,但不会让用户知道。

然而,在我能做到这一点之前,我需要一个MailItems列表。展望开始时,outlook会调用以下代码:

/// <summary>
/// Overridden method to allow Outlook to look for and load extensions.
/// </summary>
/// <returns>A <see cref="MailExpiryAlert"/> class containing the extension logic</returns>
protected override Office.IRibbonExtensibility CreateRibbonExtensibilityObject()
{
    if (Application.Explorers.Count > 0)
    {
        string breakPoint = "this break point will never be reached on initial startup";
    }
    return new MailExpiryAlert();
}

但是,我收到以下错误:NullReferenceExceptoin:对象引用未设置为对象的实例。这是因为Explorer窗口尚未加载,因此为null。但是,在Outlook本身加载之前,我应该如何加载我的扩展(它取决于浏览器和文件夹)?我知道我在这里缺少一些非常基本的东西,但任何帮助都会非常感激。

1 个答案:

答案 0 :(得分:1)

您需要Application.Session.GetDefaultFolder(olFolderInbox),是否有活动的资源管理器并不重要。