2012-04-24 56 views
5

我正在使用C#VSTO 3.0 Outlook加载项,我需要捕获打印事件(当用户从​​Outlook中选择打印选项打印电子邮件时)。我无法在提供对此事件的访问的Outlook对象模型中找到任何API。有什么办法可以做到这一点?如何捕获Outlook加载项中的打印事件?

+1

为什么要捕获打印? – 2012-04-25 10:04:56

+0

记录关于正在打印的文档的一些元数据。 – Kapil 2012-04-26 09:09:11

回答

1

如果你想在Backstage视图拦截打印命令,你可以看看下面的文章:

http://msdn.microsoft.com/en-us/library/ee691833(office.14).aspx#odc_Office2010Introduction2OutSpaceUI_BackStageUIFAQs

这是不可能的从自定义UI XML重写这些命令标记或通过使用对象模型,使用DocumentBeforeSave事件是一种选择,但是使用它并不会真正改变Backstage中“更改文件类型”库中显示的单个命令的功能,更好的解决方案是考虑隐藏内置UI并用自定义命令完全重建它。

(以上是关于文件 - >另存为..但它几乎是相同的情况下文件 - >打印)。

所以基本上你需要添加你自己的命令,而不是内置的。 如果你不是在讨论Backstage,而是一些较老的Outlook,其中print命令在菜单项/ ribbon /命令栏中,你也可以拿一个看这篇文章中的AddIn快递(我认为这将没有他们的产品做工):

http://www.add-in-express.com/creating-addins-blog/2012/02/27/how-an-office-add-in-intercepts-clicking-a-built-in-control/

的思路是一样的 - 你找到感兴趣的键/菜单项的ID或IdMso创造新的一个以获得事件。

希望这会有所帮助。