5

我正在开发一个 C# VSTO 3.0 Outlook 插件,我需要在其中捕获打印事件(当用户从​​ Outlook 中选择打印选项来打印电子邮件时)。我在 Outlook 对象模型中找不到任何提供对此事件的访问权限的 API。有没有办法做到这一点?

4

1 回答 1

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

希望这可以帮助。

于 2012-05-24T05:38:07.313 回答