Поделиться через


Структура 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 будет серой.

Примечание Кнопка ok OK остается включенной для элементов "\\server", а также "\\server\server\share" и элементов каталога. Однако если пользователь выбирает элемент \\server, передав piDL, возвращенный SHBrowseForFolder, в SHGetPathFromIDList завершается ошибкой.
 

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. Используйте новый пользовательский интерфейс. Установка этого флага предоставляет пользователю большее диалоговое окно, которое можно изменить. В диалоговом окне есть несколько новых возможностей, включая возможность перетаскивания в диалоговом окне, переупорядочение, контекстное меню, новые папки, удаление и другие команды контекстного меню.

Примечание Если COM инициализирован через CoInitializeEx с набором флагов COINIT_MULTITHREADED, SHBrowseForFolder завершается ошибкой, если BIF_NEWDIALOGSTYLE передается.
 

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.

Примечание Если COM инициализирован через CoInitializeEx с набором флагов COINIT_MULTITHREADED, SHBrowseForFolder завершается ошибкой, если BIF_USENEWUI передается.
 

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)