如何在Outlook加载项中捕获打印事件?

时间:2012-04-24 11:23:29

标签: c# vsto outlook-addin outlook-2007 outlook-2010

我正在使用C#VSTO 3.0 Outlook加载项,我需要捕获Print事件(当用户从​​Outlook中选择Print选项以打印电子邮件时)。我在Outlook对象模型中找不到任何提供此事件访问权限的API。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:1)

如果要拦截后台视图中的打印命令,可以查看以下文章:

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

" 无法从自定义UI XML标记或使用对象模型覆盖这些命令。使用DocumentBeforeSave事件是一种替代方法,但使用它并不会真正更改显示在Backstage中的“更改文件类型”库中的各个命令的功能。更好的解决方案是考虑隐藏内置UI并使用自定义命令完全重建它。"

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

所以基本上你需要添加自己的命令而不是内置的命令。 如果您不是在谈论Backstage,而是在菜单项/功能区/命令栏中使用打印命令的旧版Outlook,您还可以在AddIn Express中查看这篇文章(我认为它可以在没有产品的情况下工作):< / p>

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,并创建新的以获得事件。

希望这有帮助。