在我的 NSE 中重命名在内容视图中不起作用

Renaming in my NSE does not work in Content View

NSE 表示命名空间扩展 (https://msdn.microsoft.com/en-us/library/windows/desktop/cc144095%28v=vs.85%29.aspx)

我有一个使用 DefView 开发的命名空间扩展。

我正在处理 FMTID_PropList+PID_PropList_ContentViewModeForBrowse 并返回正确的 proplist-string。

当我在 Windows 资源管理器的 "Content View" 中浏览我的 nse 时,重命名不起作用。

此外,我注意到 Windows Explorer 在我的第一列(即项目名称)的值前加上“名称: - 它不会对文件系统中的项目执行此操作。

如何解决以上两个问题?

我从以下位置复制了问题:

https://social.msdn.microsoft.com/Forums/en-US/a88ca56d-542e-46a8-81b4-7c37431ea26a/renaming-in-my-nse-does-not-work-in-content-view?forum=windowsuidevelopment

我遇到了完全相同的问题,无法在网上找到任何帮助。

您使用的是过时格式的 proplist 字符串。在 Windows XP 时代是真实存在的。从 Windows Vista 开始,有必要使用新格式。您必须使用 属性 密钥的规范名称,而不是 GUID 和 PID。这就是为什么 Windows 不允许用户在内容视图模式下重命名您的对象。

{b725f130-47ef-101a-a5f1-02608c9eebac} 10 等于 PKEY_ItemNameDisplay 规范名称 System.ItemNameDisplay.

规范名称前的“~”字符具有特殊含义。如果它不存在 shell 在值之前显示标签。如果 System.ItemNameDisplay 标签是 "Name".