【发布时间】:2014-07-02 10:45:23
【问题描述】:
我正在尝试使用 vs2013 c# 创建一个 VSTO Outlook 2010 插件。
到目前为止,我有一个带有按钮的功能区栏,该按钮出现在 Outlook 功能区上。当我单击该按钮时,它只会显示一个消息框。
如何获得打印所选电子邮件的按钮?
【问题讨论】:
标签: c# .net-4.0 visual-studio-2013 vsto office-2010
我正在尝试使用 vs2013 c# 创建一个 VSTO Outlook 2010 插件。
到目前为止,我有一个带有按钮的功能区栏,该按钮出现在 Outlook 功能区上。当我单击该按钮时,它只会显示一个消息框。
如何获得打印所选电子邮件的按钮?
【问题讨论】:
标签: c# .net-4.0 visual-studio-2013 vsto office-2010
使用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
【讨论】: