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

Kap*_*pil 5 c# vsto outlook-2007 outlook-addin outlook-2010

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

Pav*_*hev 1

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

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

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

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

所以基本上你需要添加你自己的命令而不是内置的命令。如果你不是在谈论后台,而是在一些旧的 Outlook 中,其中打印命令位于菜单项/功能区/命令栏中,你也可以看看这篇文章AddIn Express(我认为没有他们的产品也能工作):

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,并创建新的 Id 或 IdMso 以便访问事件。

希望这可以帮助。