如何在Windows中创建扩展(自定义)文件属性?

时间:2012-11-13 16:10:49

标签: c++ winapi windows-shell

我们拥有专有的文件格式,其中嵌入了product-code

我正在开始“在打开文件时让最终用户按product-code排序/过滤”的路径。

对我们来说,最简单的方法可能是在我们的自定义打开文件对话框中添加另一个下拉列表,在其中选择要过滤的product-code

但是,如果我们可以将此信息作为此文件类型的详细信息视图中的列提供,我认为对最终用户可能更有用 - 就像名称,日期修改,类型,大小等一样,也是文件类型的详细属性(或者可能是所有文件的通用属性)。

我的模糊理解是,XP和之前的Windows操作系统在NTFS的备用数据流中嵌入了某种类型的元数据。但是,从Vista开始,Microsoft由于依赖于NTFS而停止使用备用数据流,因此易碎(即无法通过文件附件发送,无法移动到FAT格式的拇指驱动器等)。

我需要知道但尚未弄清楚的事情:

  1. 是否可行/是否可行/如何为我们的文件类型创建自定义扩展文件属性,该文件类型向Windows shell表示product-code,以便在Windows资源管理器中看到它(因此可以在文件对话框中看到) ?
  2. 如果可行,那么如何配置,以便默认情况下为包含我们文件类型的文件夹显示product-code列。
  3. 有谁能指出我在上面的一个很好的起点?我们当然不必通过发布自定义扩展文件属性来实现这一目标 - 但似乎似乎是一种明智的方法,因为没有任何方法来衡量走这条路线的成本。

    如果你有解决问题的合理方法,我也会对这些方法感兴趣!


    刚刚找到:http://www.codeproject.com/Articles/830/The-Complete-Idiot-s-Guide-to-Writing-Shell-Extens

    CRAP!我似乎已经迟到了宴会,MS已经从他们的shell中删除了这个功能:http://xpwasmyidea.blogspot.com/2009/10/evil-conspiracy-behind-customizable.html

1 个答案:

答案 0 :(得分:2)

到目前为止,开发shell扩展的最简单方法是使用为此目的而创建的库。

我可以推荐EZShellExtension,因为我过去曾使用它来为我们公司添加自定义文件格式的列和缩略图/预览。