用COM加载项替换Excel XP中的“打开文件”对话框

用COM加载项替换Excel XP中的“打开文件”对话框,com,ms-office,excel-addins,Com,Ms Office,Excel Addins,我正在为Excel XP开发一个C外接程序,我需要用自己的对话框处理文件打开和保存事件。我基本上是通过在Excel应用程序对象上处理WorkbookBeforeSave事件并取消默认行为来实现保存。存在WorkbookOpen事件,但它是在文档打开后触发的,而不是在用户单击“打开”按钮或按Ctrl-O时触发的 这里有一个类似的问题,尽管解决方案适用于更高版本的office,但对我来说不起作用: 我不能简单地定制普通的文件打开对话框-我需要完全替换它。有什么想法吗?一种有点不太成熟的方法是从Exc

我正在为Excel XP开发一个C外接程序,我需要用自己的对话框处理文件打开和保存事件。我基本上是通过在Excel应用程序对象上处理WorkbookBeforeSave事件并取消默认行为来实现保存。存在WorkbookOpen事件,但它是在文档打开后触发的,而不是在用户单击“打开”按钮或按Ctrl-O时触发的

这里有一个类似的问题,尽管解决方案适用于更高版本的office,但对我来说不起作用:


我不能简单地定制普通的文件打开对话框-我需要完全替换它。有什么想法吗?

一种有点不太成熟的方法是从Excel的com接口dispID 0x614接收WindowActivate事件,用于Excel 10。然后跟踪最后一个hwnd并观察它何时更改&如果是excel文档窗口,我认为您可以使用spy++查找excel窗口名