我正在实施OFNHookProc
来检测Windows 7上的公共控件GetOpenFileName()
对话框。我的工具是用C ++编写的。在用户选择库(如文档或图片)之前,工作正常。发生这种情况时,我会收到CDN_FOLDERCHANGE
通知,就像我期望的那样,但当我发送对话框CDM_GETFOLDERPATH
消息以检索新选择的文件夹时,我得到的错误返回-1,{{1返回0.在某些方面,这是有道理的,因为它不是一个文件夹,但其他任何消息似乎都不起作用(如CommDlgExtendedError
或CDM_GETFOLDERIDLIST
)。
那么,您如何从CDM_GETFILEPATH
告知当前所选项目或文件夹是库?一旦你知道它是一个库,你如何得到一个OFNHookProc
或IShellItem
接口,以便你可以找出哪些文件系统文件夹构成了库?
(创建IShellLibrary
对话框的代码是遗留代码,因此我不能用Windows-7推荐的GetOpenFileName
接口以理智的方式替换它。/ p>