Указание расположения расширения пространства имен
Корень расширения пространства имен обычно отображается windows Обозреватель в виде папки как в представлении дерева, так и в представлении папок. Чтобы windows Обозреватель отображать файлы и вложенные папки расширения, необходимо указать расположение корневой папки в иерархии пространства имен оболочки. Это расположение называется точкой соединения.
- Использование виртуальных папок в качестве точек соединения
- Использование папок файловой системы в качестве точек соединения
- Открытие представления расширения пространства имен
Использование виртуальных папок в качестве точек соединения
Самый простой способ определить точку соединения расширения — сделать корневую папку подпапкой системной виртуальной папки. Этот тип точки соединения называется виртуальной точкой соединения. Папки "Рабочий стол" и "Мой компьютер" являются типичными расположениями для виртуальных точек соединения, но вы также можете определить виртуальную точку соединения на удаленном компьютере или в папках "Мои сетевые расположения", "Интернет Обозреватель" и панель управления.
Чтобы определить виртуальную точку соединения, создайте подраздел ключа, который представляет соответствующую виртуальную папку, и назовите ее строковой формой идентификатора класса расширения (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\Вся сеть |
Мой компьютер | MyComputer |
Мои сетевые расположения | NetworkNeighborhood |
Удаленный компьютер | 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
Параметр objectname — это имя просматриваемого объекта. Windows Обозреватель преобразует имя в соответствующее значение PIDL и передает его в метод IPersistFolder::Initialize нового объекта папки.
Примечание
Строке CLSID должна предшествовать пара двоеточий (::) или команда завершится ошибкой. Флаг косой черты-e (/e), используемый в двух примерах командных строк, показанных ранее, предписывает Windows Обозреватель отображать представление в виде дерева. Флаг должен быть отделен от двух двоеточий запятой. Если представление в виде дерева не требуется, опустите флаг /e и запятую.