指定命名空间扩展的位置

命名空间扩展的根通常由 Windows 资源管理器显示为树视图和文件夹视图中的文件夹。 若要使 Windows 资源管理器显示扩展的文件和子文件夹,必须指定根文件夹在 Shell 命名空间层次结构中的位置。 此位置称为 交汇点

使用虚拟文件夹作为交汇点

定义扩展的交接点的最简单方法是将根文件夹设为系统虚拟文件夹的子文件夹。 这种类型的交汇点称为 虚拟交汇点桌面“我的计算机”文件夹是虚拟交汇点的典型位置,但你也可以在远程计算机上或在“我的网络位置”、“Internet Explorer”和“控制面板”文件夹下定义虚拟交汇点。

若要定义虚拟交汇点,请创建表示相应虚拟文件夹的键的子项,并使用扩展的类标识符的字符串形式将其命名 (CLSID) 。 注册的 CLSID 如下所示。

HKEY_LOCAL_MACHINE or HKEY_CURRENT_USER
   Software
      Microsoft
         Windows
            CurrentVersion
               Explorer
                  Virtual Folder Name
                     NameSpace
                        {Extension CLSID}
                           (Default) = Junction Point Name

虚拟文件夹名称 是下表中的子项之一。

位置 虚拟文件夹名称
控制面板 ControlPanel
桌面 桌面
整个网络 NetworkNeighborhood\EntireNetwork
我的电脑 MyComputer
网上邻居 NetworkNeighborhood
远程计算机 RemoteComputer
用户文件 UsersFiles

 

必须使用 IRemoteComputer 初始化远程扩展。

使用文件系统文件夹作为交汇点

可通过两种方法将文件系统文件夹定义为交汇点。 最简单的方法是在适当的位置创建一个文件夹,并在文件夹名称后面追加一个句点,后跟扩展的 CLSID 的字符串形式。 只有文件夹名称在 Windows 资源管理器中可见。 以下示例创建一个显示名称为 MyFolder 的交汇点。

MyFolder.{Extension CLSID}

或者,可以通过以下方法将传统命名的文件夹定义为交汇点:

  • 使文件夹为只读。
  • 通过调用 PathMakeSystemFolder 使该文件夹成为系统文件夹。
  • 在包含扩展名 CLSID 的文件夹中放置隐藏的Desktop.ini文件。

Desktop.ini是一个标准文本文件,可以添加到任何文件夹,以自定义文件夹行为的某些方面。 有关如何使用此文件的一般讨论,请参阅 如何使用 Desktop.ini自定义文件夹 。 若要将文件夹定义为交汇点,请使用 [.Desktop.ini的 ShellClassInfo] 部分必须包含扩展的 CLSID,如下所示:

[.ShellClassInfo]
CLSID={Extension CLSID}

打开命名空间扩展的视图

当用户浏览到交汇点时,Windows 资源管理器会自动创建根文件夹的视图。 还可以通过将扩展的 CLSID 作为参数显式启动Explorer.exe来创建视图。 例如,可以使用此方法从快捷菜单或快捷方式启动扩展的视图。 例如,若要启动包含树视图的 MyExtension 视图,可以使用以下命令字符串。

%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID}

备用命令字符串可用于启动扩展中对象的视图。 例如,对于使用文件夹视图允许用户查看多个压缩文件之一的内容的扩展,此功能非常有用。

%SystemRoot%\Explorer.exe /e,::{MyExtension CLSID},objectname

objectname 参数是要查看的对象的名称。 Windows 资源管理器将名称转换为其相应的 PIDL,并将 PIDL 传递到新文件夹对象的 IPersistFolder::Initialize 方法。

注意

CLSID 字符串前面必须有一对冒号 (::) ,否则命令将失败。 前面显示的两个示例命令行中使用的斜杠 (/e) 标志指示 Windows 资源管理器显示树视图。 标志必须与两个冒号之间用逗号分隔。 如果不需要树视图,请省略 /e 标志和逗号。