替换COM加载项中Word的打开文件对话框

时间:2009-09-08 18:09:18

标签: com ms-word ms-office add-in

我正在编写一个Word COM加载项,取代了Open&使用我自己的保存对话框。

对于保存对话框,我正在处理来自应用程序事件的documentBeforeSave事件。这很好用。

对于打开的对话框,没有这样的事件,所以我正在处理Open ...菜单项的onClick,取消默认处理。如果用户确实使用此菜单项,这可以正常工作,但如果用户按下CTRL-O,他们仍然可以获得原始对话框。

有没有更好的方法来加入这个对话框?如果没有,有没有办法优雅地处理这个按键,或者我应该解决键盘挂钩?

注意:加载项应最终适用于Office 2003,2007和2010,但在不同目标上使用不同的代码路径当然是完全正常的。我对任何版本的任何解决方案感兴趣。

1 个答案:

答案 0 :(得分:1)

在Word 2007+中,实现起来非常简单。只需通过功能区XML

重新调整FileOpen命令的用途
<customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui">
  <commands>
    <command idMso="FileOpen" onAction="doOpen" />
  </commands>
  ...

doOpen方法有两个参数,第二个参数是允许你取消事件的输入/输出参数。

对于以前版本的Office,我从未实现完全无懈可击的解决方案。