Вообще функцию SHBrowseForFolder (листинг 2.28) можно использовать и для указания принтеров или компьютеров. Для этого достаточно установить флаги BIF_BROWSEFORCOMPUTERH BIF_BROWSEFORPRINTER соответственно:
choose.ulFlags := BIF_BROWSEFORCOMPUTER;
или
choose.ulFlags := BIF_BROWSEFORPRINTER;
Чтобы в окне отображались еще и значки файлов, необходимо установить флаг BIF_BROWSEINCLUDEFILES.
Окна подключения и отключения сетевого ресурса
Часто бывает удобно осуществлять доступ к сетевым папкам как к локальным дискам компьютера (с использованием того же принципа построения пути). Окна подключения и отключения сетевого ресурса позволяют дать пользователю возможность выбрать, какие папки считать сетевыми дисками и какие сетевые диски можно отключить.
Окно подключения сетевого ресурса в Windows ХР выглядит так, как показано на рис. 2.6.
Рис. 2.6. Окно подключения сетевого диска
Для вызова диалогового окна подключения сетевого ресурса можно использовать функцию, приведенную в листинге 2.30.
function ShowConnection(): BOOL;
begin
ShowConnection :=
WNetConnectionDialog(hParentWnd, RESOURCETYPE_DISK) = NO_ERROR;
end;
Функция ShowConnection возвращает True в случае удачного подключения и False в противном случае.
Окно отключения сетевого диска приведено на рис. 2.7.
Рис. 2.7. Отключение сетевого ресурса
Функция, показывающая окно отключения сетевого диска, приведена в листинге 2.31.
function ShowDisconnect(): BOOL;
begin
ShowDisconnect :=
WNetDisconnectDialog(hParentWnd, RESOURCETYPE_DISK) = NO_ERROR;
end;
Аналогично ShowConnection функция ShowDisconnect возвращает True, если отсоединен хотя бы один диск, и False в противном случае.
Системное окно «О программе»
Этот последний и довольно экзотичный пример приведен на случай, если возникнет желание или необходимость использовать красивое окно О программе, которое выводится для самой операционной системы Windows и ее компонентов. Процедура выведения этого окна приведена в листинге 2.32.
procedure ShowAbout(strAppName: string; strInfo: string);
begin
ShellAbout(hParentWnd, PAnsiChar(strAppName),
PAnsiChar(strInfo),LoadIcon(0, IDI_ASTERISK));
end;
Правда, в окне О программе Windows ХР на информацию о приложении отведено всего две строки (и место для значка слева от окна). Все остальное место занимают информация о регистрации операционной системы и фирменная эмблема Microsoft Windows ХР.
Демонстрационное приложение
Теперь пришла очередь рассмотреть небольшое приложение, использующее описанные выше диалоговые окна (проект StandartWindows). Окно этого приложения приводится на рис. 2.8.
Рис. 2.8. Окно демонстрационного приложения
Размер ЕХЕ-файла приложения равен 22 Кбайт.
В листинге 2.33 приводятся объявления используемых глобальных переменных, а также код, реализующий создание окна и элементов управления в нем, цикл обработки сообщений (файл StandartWindows. dpr). Функции работы с рассмотренными выше