如何从常用控件对话框钩子获取对Win7库的引用?

时间:2011-04-08 14:13:15

标签: c++ windows-7 common-controls

我正在实施OFNHookProc来检测Windows 7上的公共控件GetOpenFileName()对话框。我的工具是用C ++编写的。在用户选择库(如文档或图片)之前,工作正常。发生这种情况时,我会收到CDN_FOLDERCHANGE通知,就像我期望的那样,但当我发送对话框CDM_GETFOLDERPATH消息以检索新选择的文件夹时,我得到的错误返回-1,{{1返回0.在某些方面,这是有道理的,因为它不是一个文件夹,但其他任何消息似乎都不起作用(如CommDlgExtendedErrorCDM_GETFOLDERIDLIST)。

那么,您如何从CDM_GETFILEPATH告知当前所选项目或文件夹是库?一旦你知道它是一个库,你如何得到一个OFNHookProcIShellItem接口,以便你可以找出哪些文件系统文件夹构成了库?

(创建IShellLibrary对话框的代码是遗留代码,因此我不能用Windows-7推荐的GetOpenFileName接口以理智的方式替换它。

0 个答案:

没有答案