我正在尝试使用vs2013 c#创建VSTO outlook 2010插件。
到目前为止,我有一个带有按钮的功能区栏,它出现在outlook功能区上。当我单击按钮时,它只显示一个消息框。
如何获得打印所选电子邮件的按钮?
答案 0 :(得分:1)
使用PrintOut对象上的MailItem方法打印出电子邮件。
资源管理器窗口代码
如果您的功能区按钮显示在Outlook资源管理器窗口中,则可以使用以下代码打印出所有选定的电子邮件:
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 = 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