Обработчики страниц свойств

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

Общие процедуры реализации и регистрации обработчика расширений оболочки рассматриваются в статье Создание обработчиков расширений оболочки. В этом документе рассматриваются аспекты реализации, относящиеся к обработчикам страниц свойств.

Как работают обработчики страниц свойств

На следующем рисунке показана страница свойств Свойства для текстового файла Windows XP.

страница свойств

На этом рисунке показана страница свойств по умолчанию Свойства, которая отображается для любого файла. Для многих таких листов свойств можно добавить одну или несколько страниц на лист свойств, реализовав и зарегистрировав обработчик страниц свойств.

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

Обработчики листов свойств также используются для замены страниц на листах свойств, отображаемых панель управления приложениями. Например, производитель мыши может использовать обработчик страницы свойств, чтобы заменить страницу "Кнопки" на странице свойств свойства мыши панель управления на страницу, настроенную в соответствии с характеристиками мыши.

Как и все обработчики расширений оболочки, обработчики страниц свойств представляют собой внутрипроцессные объекты модели COM, реализованные в виде библиотек DLL. Они должны экспортировать два интерфейса в дополнение к IUnknown: IShellExtInit и IShellPropSheetExt.

Интерфейс IShellExtInit используется оболочкой для инициализации обработчика. Когда оболочка вызывает IShellExtInit::Initialize, она передает объект данных с именем объекта и указатель на список идентификаторов элементов (PIDL) папки, содержащей файл. Параметр hRegKey не используется с обработчиками страниц свойств. Метод IShellExtInit::Initialize должен извлечь имя файла из объекта данных и сохранить имя и PIDL папки для последующего использования. Дополнительные сведения см. в разделе Реализация IShellExtInitстатьи Создание обработчиков расширений оболочки.

Оставшаяся часть операции выполняется через интерфейс IShellPropSheetExt обработчика . Если страница свойств связана с типом файла, оболочка вызывает IShellPropSheetExt::AddPages , чтобы разрешить обработчику добавить страницу на страницу свойств. Если страница свойств связана с приложением панель управления, оболочка вызывает IShellPropSheetExt::ReplacePage, чтобы разрешить обработчику заменить страницу.

Регистрация и реализация обработчика страниц свойств для подключенного диска

Каждый подключенный диск имеет лист свойств, который может отображаться пользователем. На следующем рисунке показана страница свойств Свойства для дисковода КОМПАКТ-дисков.

Страница свойств cd-rom properties

Существует множество различных устройств, которые можно смонтировать в качестве дисков. Так как листа свойств по умолчанию, предназначенного для дисков, может быть недостаточно для некоторых устройств, можно реализовать обработчик страницы свойств, относящееся к подключенному устройству. Базовая реализация этого типа обработчика страниц свойств идентична реализации, описанной в разделе Регистрация и реализация обработчика страниц свойств для типа файла с двумя исключениями.

  • Объект данных, передаваемый в метод IShellExtInit::Initialize обработчика, может содержать путь к диску в формате CFSTR_MOUNTEDVOLUME вместо формата CF_HDROP . Формат CF_HDROP используется, когда устройство подключено к букве диска. Формат CFSTR_MOUNTEDVOLUME используется с файловыми системами NTFS, когда удаленное устройство подключено к папке, а не к букве диска.
  • GUID обработчика регистрируется в ключеpropertySheetHandlersHKEY_CLASSES_ROOT\Drive\shellex\.

Регистрация и реализация обработчика страниц свойств для типа файла

Регистрация и реализация обработчика страниц свойств для приложения панель управления