Одной из составных частей прикладного программного интерфейса Windows являются методы оболочки операционной системы (Windows Shell). В пакете Shell API сосредоточена коллекция методов и несколько десятков объектов COM и их интерфейсов.
Если вам не терпится увидеть Shell в действии, откройте стандартный Проводник (Explorer) или взгляните на рис. 29.1. Проводник как программное воплощение оболочки интегрирует в единую иерархическую структуру ряд физических и виртуальных объектов операционной системы, входящих в так называемое пространство имен оболочки Windows (Shell Namespace).
В перечень физических объектов пространства имен оболочки входит все, что можно «потрогать руками». Это файлы, каталоги, дисковые накопители, т. е. хорошо знакомые нам объекты. Но наряду с ними в оболочке представлены реально не существующие папки и объекты: «Мой компьютер», «Принтеры», «Панель управления», «Корзина». Кроме того, оболочка способна представить объекты, физически принадлежащие другим компьютерам: сетевые ресурсы, общие принтеры. Это тоже элементы пространства имен оболочки, с которыми мы очень часто сталкивались как пользователи Windows, но пока не тревожили их покой в роли программистов.
Получив начальное представление об оболочке, поговорим о ее функциональном назначении. К сфере базовых интересов оболочки Windows относятся следующие вопросы:
• Описание объектов оболочки.
• Навигация в пространстве имен оболочки и поиск файлов и папок.
• Запуск приложений на выполнение.
• Передачи объектов оболочки через буфер обмена.
• Реализация операций перетаскивания (drag-and-drop) с объектами пространства имен оболочки.
• Создание ярлыков объектов.
• Настройка внешнего вида папок.
• Сопоставление файловых расширений с приложениями.
• Процесс автозапуска приложений, размещенных на CD-ROM.
Все объекты оболочки Windows построены в строгом соответствии с требованиями объектно-ориентированного подхода, а доступ к ним осуществляется посредством интерфейсов COM. Благодаря такой реализации мы получаем возможность не только манипулировать этими объектами, но и расширять возможности оболочки Windows.
В рамках этой главы мы познакомимся с одним из базовых интерфейсов оболочки - интерфейсом IShellFolder.
Для доступа к интерфейсам оболочки Windows требуется подключить к проекту Delphi модули ShellApi и ShlObj.