Во многих функциях Shell API и методах его интерфейсов встречается параметр hwndOwner. Он должен задавать дескриптор окна на тот случай, если придется выводить диалоговое окно или окно с сообщением об ошибке.

Возможные значения параметра nFolder перечислены в табл. 31.2. В комментариях к ним "виртуальная" папка является особым объектом, который предоставляется пользователю при помощи Shell API. Просто "папка" реально существует где-то в файловой системе.

Таблица 31.2. Константы, определяющие специальные папки

Значение

Комментарий

CSIDL.

BITBUCKET

Корзина (Recycle bin) - специальная папка для удаленных файлов. Пути к Recycle bin нет в системном реестре во избежание перемещения или удаления, и его не узнать иным методом

CSIDL.

.CONTROLS

Панель инструментов (Control Panel) - виртуальная папка, содержащая значки апплетов Панели инструментов

CSIDL_

.DESKTOP

Виртуальная папка Рабочий стол (Desktop), корневая в пространстве имен

CSIDL_

.DESKTOPDIRECTORY

Папка файловой системы, реально содержащая объекты рабочего стола

CSIDL_

.DRIVES

Виртуальная папка Мой компьютер (My Computer), содержащая элементы для всех накопителей на компьютере подключенных сетевых устройств, папки Принтеры, Панель инструментов, Удаленный доступ к сети

CSIDL^

.FONTS

Виртуальная папка Шрифты

CSIDL_

NETHOOD ■

Папка, содержащая объекты сетевого окружения

CSIDL_

_NETWORK

Виртуальная папка Сетевое окружение

CSIDL.

CSIDL_ CSIDL.

.PERSONAL

_PRINTERS .PROGRAMS

(Network Neighborhood)

Папка Мои документы

Виртуальная папка Принтеры (Printers)

Папка Программы из главного меню, содержащая папки установленных на компьютере программ

CSIDL_

.RECENT

Папка, содержащая ссылки на последние использовавшиеся документы (Recent)

CSIDL.

_ SENDTO

Папка, содержащая элементы контекстного меню Send То...

Таблица 31.2 ( окончание)

Значение

CSIDLJ5TARTMENU

Комментарий

Папка, содержащая элементы главного меню Пуск

(Start)

CSIDL_STARTUP

Папка, содержащая элементы меню Автозапуск

(Startup)

CSIDL_TEMPLATES

Папка, содержащая шаблоны типовыхдокументов

Третий вариант получить ptdi нужной папки - интерактивный, с помощью функции Shell API.

function ShBrowseForFolder(var Ipbi: TBrowselnfo): PItemlDList;

Перед ее вызовом следует заполнить структуру типа TBrowselnfo, содержащую в частности pidl того элемента, который будет корневым. После вызова функции пользователь увидит перед собой диалоговое окно выбора папки (рис. 31.3).

Рис. 31.3. Диалоговое окно выбора папки, созданное при вызове функции ShBrowseForFolder

В данном примере корневой служит виртуальная папка My Computer. Пользователю предоставляется возможность выбрать одну из папок файловой системы (за это отвечает флаг TBrowseinfo.ulFlags, равный

BIF_RETURNONLYFSDIRS).

На выходе функция возвращает pidl папки, имя которой извлекается из него вызовом еще одной функции Shell - shGetPathFromList.

Программирование в Delphi 7

procedure TForml.ButtonlClick(Sender: TObject) ; var

BI : TBrowselnfo;
Image : integer;
StartPIDL, ResPIDL : PItemlDList;
S, Path : Array[0. .max_path-l] Of WideChar;

⇐ Предыдущая страница| |Следующая страница ⇒

Программирование в Delphi 7



Новости за месяц

  • Ноябрь
    2017
  • Пн
  • Вт
  • Ср
  • Чт
  • Пт
  • Сб
  • Вс