【问题标题】:Printing an email打印电子邮件
【发布时间】:2014-07-02 10:45:23
【问题描述】:

我正在尝试使用 vs2013 c# 创建一个 VSTO Outlook 2010 插件。

到目前为止,我有一个带有按钮的功能区栏,该按钮出现在 Outlook 功能区上。当我单击该按钮时,它只会显示一个消息框。

如何获得打印所选电子邮件的按钮?

【问题讨论】:

    标签: c# .net-4.0 visual-studio-2013 vsto office-2010


    【解决方案1】:

    使用MailItem 对象上的PrintOut 方法打印出一封电子邮件。

    资源管理器窗口代码

    如果您的功能区按钮显示在 Outlook Explorer 窗口中,您可以使用以下代码打印出所有选定的电子邮件:

    Explorer explorer = Globals.ThisAddIn.Application.ActiveWindow() as Explorer;
    Selection selection = explorer.Selection;
    
    for (int i = 1; i <= selection.Count; i++)
    {
        var selectedItem = selection[i];
    
        if (selectedItem is MailItem)
        {
            MailItem mailItem = selectedItem as MailItem;
            mailItem.PrintOut();
        }
    
        Marshal.ReleaseComObject(selectedItem);
    }
    
    Marshal.ReleaseComObject(selection);
    

    检查器窗口代码

    如果您的按钮显示在 Inspector 窗口中,您可以使用以下代码打印出电子邮件:

    Inspector inspector = Globals.ThisAddIn.Application.ActiveWindow() as Inspector;
    var currentItem = inspector.CurrentItem;
    
    if (currentItem is MailItem)
    {
        MailItem mailItem = currentItem as MailItem;
        mailItem.PrintOut();
    }
    
    Marshal.ReleaseComObject(currentItem);
    

    ReleaseComObject

    另外请注意,我使用了ReleaseComObject 方法来释放COM 对象。有关何时使用ReleaseComObject 方法的更多信息,请参阅When ReleaseComObject is necessary in Outlook

    【讨论】:

      猜你喜欢
      • 2020-09-04
      • 1970-01-01
      • 1970-01-01
      • 2020-11-26
      • 2016-05-12
      • 2015-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多