子类 Windows 文件资源管理器

Subclass Windows File Explorer

在我的软件中,我使用文件和文件夹对话框选择器。这些选择器允许指定文件类型过滤器,所以我可以说,只显示 xml 个文件。效果很好。

我需要深入研究一些 xml 文件并仅显示对模式有效的文件。所以我只想向用户显示特定类型的 xml 文件。

我不想编写设备驱动程序代码。我想知道 Windows 文件资源管理器的某种子类化是可能的。有回调机制吗?

一个想法可能是使用文件的自定义属性,因此单独的程序可以使用自定义 属性 标记目录结构中的 xml 文件。然后可以指示对话框文件选择器仅查找那些标记为此类的文件。或许还有其他方法。

调用 GetOpenFileName 时设置 OFN_ENABLEHOOK 标志。它允许您从打开的对话框中获取通知。其中一条通知是 CDN_INCLUDEITEM。在您的处理程序中,您将拥有文件夹的 IShellFolder 和当前文件的 PItemIDList 以插入文件列表。如果您的挂钩过程 return 为零,则对话框将从项目列表中排除该项目。要包含该项目,return 来自挂钩过程的非零值。