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

标签 c++ winapi windows-shell

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

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

对我们来说,最简单的方法可能是在我们自定义的“打开文件”对话框中简单地添加另一个下拉菜单,在其中选择一个 product-code 作为过滤依据。

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

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

我需要知道但还没有弄清楚的事情:

  1. 是否可能/是否可行/如何为我们的文件类型创建自定义扩展文件属性,将 product-code 表达到 Windows shell,以便它可以在 Windows 资源管理器中看到(以及因此文件对话框)?
  2. 如果可行,那么如何进行配置,以便默认为包含我们的文件类型的文件夹显示 product-code 列。

任何人都可以为我指出上述内容的良好起点吗?我们当然不必通过发布自定义扩展文件属性来实现此目的 - 但是这似乎是一种明智的方法,因为没有任何方法可以衡量走这条路的成本。

如果您有解决问题的明智替代方法,我也会对这些方法感兴趣!


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

废话!看来我来晚了,MS 已经从他们的 shell 中删除了这个功能:http://xpwasmyidea.blogspot.com/2009/10/evil-conspiracy-behind-customizable.html

最佳答案

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

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

关于c++ - 如何在 Windows 中创建扩展(自定义)文件属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13364301/

相关文章:

c++ - Qt 断开连接后连接到服务器时客户端程序崩溃

c++ - 快速调整 mmap 文件的大小

delphi - 我需要调用 RtlQueryProcessHeapInformation 的原型(prototype)

c++ - 如何将数据写入进程/内存?

c++ - __FILE__、__LINE__ 和 __FUNCTION__ 在 C++ 中的用法

c++ - 右值引用或转发引用?

com - 如何执行/ShellExecuteEx/InvokeCommand ITEMIDLIST指向Shell对象?

c++ - 全局 Shell Hook 只注册本地事件

c++ - 使 CNG 加密 API 在 Windows XP 上工作?

c++ - 如何将 "safely"文件夹删除到回收站