我现在需要跟windows,**任何程序**创建的save/open 文件对话框进行交互,根据msdn所说
链接:
从vista开始,提供了IFileDIalog接口来替代以前的GetOpenFileName等方法
但是这些api还是可用的,只是这些api显示的窗口与IFileDialog显示出的窗口风格不一样
我现在的需求就是
1. 不管是用GetOpenFileName() 等api还是iFIleDialog接口,当一个文件对话框存在时,我的程序怎样才能定位到它呢(最好能获得它的HWND)
2. 假设我有一文件路径,如C:\MyFolder,我该怎样让某个文件对话框定位到这个文件夹呢
我自己研究了两天,关于第一点,我想通过SetWindowsHookEx过滤WM_INITDIALOG消息解决,但我没办法判断新创建的对话框是不是文件对话框,而且已经创建完毕的文件对话框也不能这样定位
关于第二点,我发现iFIleDialog->setFolder() 可以让一个已经打开的文件dialog定位到目标文件夹,但首先我得能获得目标对话框对应的iFIleDialog接口才行,对com接口编程我不是很熟悉