如何在Outlook附加组件中捕获打印事件?

5

我正在开发一个基于C# VSTO 3.0的Outlook插件,需要捕获“打印”事件(即用户从Outlook中选择“打印”选项以打印邮件)。在Outlook对象模型中,我找不到任何提供访问此事件的API。有什么方法可以实现这个功能吗?


1
你为什么想要捕获打印输出? - Brijesh Mishra
记录有关正在打印的文档的一些元数据。 - Kapil
1个回答

1
如果您想在后台视图中拦截打印命令,可以参考以下文章:

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

"

无法通过自定义UI XML标记或使用对象模型覆盖这些命令。使用DocumentBeforeSave事件是一种替代方法,但使用它并不真正改变在后台中出现的更改文件类型库中的各个命令的功能。更好的解决方案是考虑隐藏内置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,并创建新的以便访问事件。

希望这可以帮助到您。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接