【问题标题】:Retrieving explorer window object in Outlook Ribbon extension on startup?在启动时检索 Outlook 功能区扩展中的资源管理器窗口对象?
【发布时间】:2013-02-19 10:41:23
【问题描述】:

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

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

然而,在我这样做之前,我需要一个 MailItems 列表。当 Outlook 启动时,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:对象引用未设置为对象的实例。这是因为资源管理器窗口尚未加载,因此为空。但是,我应该如何在 Outlook 本身加载之前加载我的扩展程序(它取决于资源管理器和其中的文件夹)?我知道我在这里遗漏了一些非常基本的东西,但我们将不胜感激。

【问题讨论】:

    标签: c# outlook vsto outlook-2010


    【解决方案1】:

    你需要Application.Session.GetDefaultFolder(olFolderInbox),不管有没有活跃的资源管理器。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-23
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多