Поделиться через


Указание расположения расширения пространства имен

Корневой каталог расширения пространства имен обычно отображается проводником Windows в виде папки как в виде дерева, так и в представлениях папок. Чтобы обозреватель Windows отображал файлы и вложенные папки расширения, необходимо указать расположение корневой папки в иерархии пространства имен оболочки. Это расположение называется точкой соединения .

Использование виртуальных папок в качестве точек соединения

Самый простой способ определить точку соединения расширения — сделать корневую папку вложенной папкой виртуальной папки системы. Этот тип точки соединения называется виртуальной точкой соединения. Папки desktop и "Мой компьютер" — это типичные расположения для виртуальных точек соединения, но можно также определить виртуальную точку соединения на удаленном компьютере или в папке "Мои сетевые места", 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

имя виртуальной папки является одним из подразделов в следующей таблице.

Местоположение Имя виртуальной папки
Панель управления Панель управления
Рабочий стол рабочий стол
Вся сеть Сетевое окружение\Вся сеть
Мой компьютер МойКомпьютер
Мои сетевые места Сетевое окружение
Удаленный компьютер RemoteComputer
Файлы пользователей UsersFiles

 

Удаленные расширения необходимо инициализировать с помощью IRemoteComputer.

Использование папок файловой системы в качестве точек соединения

Существует два способа определения папок файловой системы в качестве точек соединения. Самый простой подход заключается в создании папки в соответствующем расположении и добавлении периода к имени папки, а затем строковой форме CLSID расширения. Только имя папки будет отображаться в проводнике Windows. В следующем примере создается точка соединения с отображаемым именем MyFolder.

MyFolder.{Extension CLSID}

Кроме того, можно определить обычно именованную папку как точку соединения.

  • Создание папки только для чтения.
  • Сделать папку системной путем вызова PathMakeSystemFolder.
  • Поместите скрытый Desktop.ini файл в папку, содержащую CLSID расширения.

Desktop.ini — это стандартный текстовый файл, который можно добавить в любую папку для настройки определенных аспектов поведения папки. Общие сведения об использовании этого файла см. в разделе Настройка папок с помощью Desktop.ini. Чтобы определить папку как точку соединения, раздел [.ShellClassInfo] файла Desktop.ini должен содержать CLSID расширения следующим образом:

[.ShellClassInfo]
CLSID={Extension CLSID}

Открытие представления расширения пространства имен

Когда пользователь переходит в точку соединения, обозреватель Windows автоматически создает представление корневой папки. Вы также можете создать представление, явно запуская Explorer.exe с помощью CLSID расширения в качестве аргумента. Например, этот подход можно использовать для запуска представления расширения из контекстного меню или ярлыка. Например, чтобы запустить представление MyExtension, включающее представление дерева, можно использовать следующую командную строку.

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

Альтернативную командную строку можно использовать для запуска представления объекта в расширении. Эта функция будет полезна, например, для расширения, использующего представление папок, чтобы разрешить пользователям просматривать содержимое одного из нескольких сжатых файлов.

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

Параметр имя объекта — это имя объекта, который необходимо просмотреть. Обозреватель Windows преобразует имя в соответствующий идентификатор PIDL и передает PIDL в метод объекта новой папки IPersistFolder::Initialize.

Заметка

Строка CLSID должна предшествовать паре двоеточий (::) или команда завершится ошибкой. Флаг косой черты (/e), используемый в двух примерах команд, показанных ранее, указывает проводнику Windows отобразить представление дерева. Флаг должен быть отделен от двух двоеточий запятой. Если представление дерева не требуется, опустите флаг /e и запятую.