Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОСиСП - методички / OS&SP_Lab_2.6(shell).doc
Скачиваний:
95
Добавлен:
18.05.2015
Размер:
1.12 Mб
Скачать

Регистрация расширения

Регистрация обработчика перетаскивания проще, чем других расширений - обработчиков контекстных меню. Все обработчики перетаскивания регистрируются под ключом HKCR\Directory, так как перетаскивание заканчивается в каком-либо каталоге. Однако, о чем не говорится в документации, так это о том, что регистрации под HKCR\Directory недостаточно, чтобы обработать все случаи. Вы должны зарегистрировать ваше расширение также под ключами HKCR\Folder, чтобы обрабатывать сбрасывания на рабочий стол (desktop) и HKCR\Drive, чтобы обрабатывать сбрасывания в корневой каталог.

Вот RGS скрипт, учитывающий все три вышеуказанных случая:

HKCR

{

NoRemove Directory

{

NoRemove shellex

{

NoRemove DragDropHandlers

{

ForceRemove HardLinkShlExt = s '{3C06DFAE-062F-11D4-8D3B-919D46C1CE19}'

}

}

}

NoRemove Folder

{

NoRemove shellex

{

NoRemove DragDropHandlers

{

ForceRemove HardLinkShlExt = s '{3C06DFAE-062F-11D4-8D3B-919D46C1CE19}'

}

}

}

NoRemove Drive

{

NoRemove shellex

{

NoRemove DragDropHandlers

{

ForceRemove HardLinkShlExt = s '{3C06DFAE-062F-11D4-8D3B-919D46C1CE19}'

}

}

}

}

Пример 5 «Добавления новых страниц в набор свойств файлов»

В пятой части руководства мы осмелимся заглянуть в мир окон свойств. Когда Вы выводите свойства объектов файловой системы проводник показывает их на странице "Общие". Оболочка позволяет нам расширить окно набора свойств, используя тип расширения, который называется обработчиком набора свойств (property sheet handler).

Эта статья подразумевает, что у Вас есть основные знания по расширениям оболочки и Вы знакомы с классами-контейнерами STL. Если Вам необходимо освежить знания по STL, Вы должны прочитать часть II, так как те же методы будут использоваться в этой статье. Код использует несколько функций из shlwapi.dll версии 4.71, так что Вам нужен будет IE4 или выше (Active Desktop устанавливать не обязательно).

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

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

Эта статья представляет расширение, которое позволит Вам изменять время создания, модификации и последнего доступа к файлу прямо из его окна свойств, оперируя прямыми вызовами SDK без использования MFC или ATL/WTL. Я не пробовал использовать MFC или WTL страницы свойств в расширении. Поступая так можно обмануться, потому что оболочка ожидает получения дескриптора к набору свойств (HPROPSHEETPAGE), а MFC скрывает эту деталь в реализации CPropertyPage. (Я не знаю как реализовать это с помощью WTL.)

Если Вы посмотрите свойства для файлов *.URL (ярлычки к internet страницам), Вы можете увидеть обработчик набора свойств в действии. Вкладка "CodeProject" является наглядным примером расширения из этой статьи. Вкладка "Web Document" показывает расширение, инсталлированное IE.

Соседние файлы в папке ОСиСП - методички