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


Структура 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. Возвращаются только каталоги файловой системы. Если пользователь выбирает папки, которые не являются частью файловой системы, кнопка ОК становится неактивной.

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

BIF_DONTGOBELOWDOMAIN (0x00000002)

0x00000002. Не включайте сетевые папки ниже уровня домена в элемент управления представлением в виде дерева диалогового окна.

BIF_STATUSTEXT (0x00000004)

0x00000004. Включите область состояния в диалоговое окно. Функция обратного вызова может задать текст состояния, отправляя сообщения в диалоговое окно. Этот флаг не поддерживается при указании BIF_NEWDIALOGSTYLE.

BIF_RETURNFSANCESTORS (0x00000008)

0x00000008. Возвращаются только предки файловой системы. Предок — это вложенная папка, которая находится под корневой папкой в иерархии пространства имен. Если пользователь выбирает предка корневой папки, которая не является частью файловой системы, кнопка ОК становится неактивной.

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. Возвращаются только компьютеры. Если пользователь выбирает что-либо, отличное от компьютера, кнопка ОК отображается серым цветом.

BIF_BROWSEFORPRINTER (0x00002000)

0x00002000. Разрешить только выбор принтеров. Если пользователь выбирает что-либо, отличное от принтера, кнопка ОК отображается серым цветом.

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

Требования

Требование Значение
Минимальная версия клиента Windows XP, Windows 7 [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Верхняя часть shlobj_core.h (включая Shlobj.h, Shlobj_core.h)