Структура BROWSEINFOW (shlobj_core.h)
Содержит параметры функции SHBrowseForFolder и получает сведения о папке, выбранной пользователем.
Синтаксис
typedef struct _browseinfoW {
HWND hwndOwner;
PCIDLIST_ABSOLUTE pidlRoot;
LPWSTR pszDisplayName;
LPCWSTR lpszTitle;
UINT ulFlags;
BFFCALLBACK lpfn;
LPARAM lParam;
int iImage;
} BROWSEINFOW, *PBROWSEINFOW, *LPBROWSEINFOW;
Члены
hwndOwner
Тип: HWND
Дескриптор окна владельца диалогового окна.
pidlRoot
Тип: PCIDLIST_ABSOLUTE
PIDL, указывающий расположение корневой папки, с которой начинается просмотр. В диалоговом окне отображаются только указанные папки и ее вложенные папки в иерархии пространства имен. Этот элемент может быть NULL; В этом случае используется расположение по умолчанию.
pszDisplayName
Тип: LPTSTR
Указатель на буфер для получения отображаемого имени папки, выбранной пользователем. Предполагается, что размер этого буфера MAX_PATH символов.
lpszTitle
Тип: LPCTSTR
Указатель на строку, завершающуюся значением NULL, которая отображается над элементом управления представлением дерева в диалоговом окне. Эту строку можно использовать для указания инструкций пользователю.
ulFlags
Тип: UINT
Флаги, указывающие параметры диалогового окна. Этот элемент может быть 0 или сочетание следующих значений. Номера версий относятся к минимальной версии Shell32.dll, необходимой для SHBrowseForFolder для распознавания флагов, добавленных в последующих выпусках. Дополнительные сведения см. в
BIF_RETURNONLYFSDIRS (0x00000001)
0x00000001. Возвращаются только каталоги файловой системы. Если пользователь выбирает папки, которые не являются частью файловой системы, кнопка OK будет серой.
BIF_DONTGOBELOWDOMAIN (0x00000002)
0x00000002. Не включать сетевые папки под уровнем домена в элемент управления представлением дерева диалогового окна.
BIF_STATUSTEXT (0x00000004)
0x00000004. Включите область состояния в диалоговое окно. Функция обратного вызова может задать текст состояния, отправив сообщения в диалоговое окно. Этот флаг не поддерживается при указании BIF_NEWDIALOGSTYLE.
BIF_RETURNFSANCESTORS (0x00000008)
0x00000008. Возвращают только предки файловой системы. Предок — это вложенная папка, которая находится под корневой папкой в иерархии пространства имен. Если пользователь выбирает предка корневой папки, которая не входит в файловую систему, кнопка OK будет серой.
BIF_EDITBOX (0x00000010)
0x00000010. версии 4.71. Включите элемент управления редактирования в диалоговое окно обзора, позволяющее пользователю ввести имя элемента.
BIF_VALIDATE (0x00000020)
0x00000020. версии 4.71. Если пользователь вводит недопустимое имя в поле редактирования, диалоговое окно обзора вызывает BrowseCallbackProc приложения с сообщением BFFM_VALIDATEFAILED. Этот флаг игнорируется, если BIF_EDITBOX не указан.
BIF_NEWDIALOGSTYLE (0x00000040)
0x00000040. версии 5.0. Используйте новый пользовательский интерфейс. Установка этого флага предоставляет пользователю большее диалоговое окно, которое можно изменить. В диалоговом окне есть несколько новых возможностей, включая возможность перетаскивания в диалоговом окне, переупорядочение, контекстное меню, новые папки, удаление и другие команды контекстного меню.
BIF_BROWSEINCLUDEURLS (0x00000080)
0x00000080. версии 5.0. Диалоговое окно обзора может отображать URL-адреса. Также необходимо задать флаги BIF_USENEWUI и BIF_BROWSEINCLUDEFILES. Если любой из этих трех флагов не задан, диалоговое окно браузера отклоняет URL-адреса. Даже если эти флаги заданы, диалоговое окно обзора отображает URL-адреса только в том случае, если папка, содержащая выбранный элемент, поддерживает URL-адреса. Если метод IShellFolder::GetAttributesOf вызывается для запроса атрибутов выбранного элемента, папка должна задать флаг атрибута SFGAO_FOLDER. В противном случае диалоговое окно обзора не будет отображать URL-адрес.
BIF_USENEWUI
версии 5.0. Используйте новый пользовательский интерфейс, включая поле редактирования. Этот флаг эквивалентен BIF_EDITBOX | BIF_NEWDIALOGSTYLE.
BIF_UAHINT (0x00000100)
0x00000100. версии 6.0. При сочетании с BIF_NEWDIALOGSTYLE добавляет подсказку об использовании в диалоговое окно вместо поля редактирования. BIF_EDITBOX переопределяет этот флаг.
BIF_NONEWFOLDERBUTTON (0x00000200)
0x00000200. версии 6.0. Не включать кнопку создать папку в диалоговом окне обзора.
BIF_NOTRANSLATETARGETS (0x00000400)
0x00000400. версии 6.0. Если выбранный элемент является ярлыком, верните PIDL самого ярлыка, а не его целевой объект.
BIF_BROWSEFORCOMPUTER (0x00001000)
0x00001000. Возвращаются только компьютеры. Если пользователь выбирает что-либо другое, кроме компьютера, кнопка OK неактивна.
BIF_BROWSEFORPRINTER (0x00002000)
0x00002000. Разрешить только выбор принтеров. Если пользователь выбирает что-либо другое, кроме принтера, кнопка OK неактивна.
В системах Windows XP и более поздних версий рекомендуется использовать диалоговое окно в стиле Windows XP, установив корень диалогового окна в папку принтеров и факсов (CSIDL_PRINTERS).
BIF_BROWSEINCLUDEFILES (0x00004000)
0x00004000. версии 4.71. В диалоговом окне обзора отображаются файлы, а также папки.
BIF_SHAREABLE (0x00008000)
0x00008000. версии 5.0. Диалоговое окно обзора может отображать совместно используемые ресурсы в удаленных системах. Это предназначено для приложений, которые хотят предоставлять удаленные общие папки в локальной системе. Также необходимо задать флаг BIF_NEWDIALOGSTYLE.
BIF_BROWSEFILEJUNCTIONS (0x00010000)
0x00010000. Windows 7 и более поздних версий. Разрешите соединения папок, например библиотеку или сжатый файл с расширением имени файла .zip.
lpfn
Тип: BFFCALLBACK
Указатель на определяемую приложением функцию, которая вызывает диалоговое окно при возникновении события. Дополнительные сведения см. в функции BrowseCallbackProc. Этот элемент может быть null.
lParam
Тип: LPARAM
Определяемое приложением значение, которое диалоговое окно передает функции обратного вызова, если он указан в lpfn.
iImage
Тип: int
Целочисленное значение, которое получает индекс изображения, связанного с выбранной папкой, хранящейся в списке системных образов.
Замечания
Заметка
Заголовок shlobj_core.h определяет BROWSEINFO как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
Требование | Ценность |
---|---|
минимальные поддерживаемые клиентские | Windows XP, Windows 7 [только классические приложения] |
минимальный поддерживаемый сервер | Windows 2000 Server [только классические приложения] |
заголовка | shlobj_core.h (include Shlobj.h, Shlobj_core.h) |