Функция GetOpenFileNameA (commdlg.h)

[Начиная с Windows Vista, общие диалоговые окна "Открыть" и "Сохранить как" заменены диалоговым окном "Общий элемент". Мы рекомендуем использовать API общих диалоговых окон вместо этих диалоговых окон из библиотеки общих диалоговых окон.]

Создает диалоговое окно Открыть , позволяющее пользователю указать диск, каталог и имя файла или набора файлов, которые необходимо открыть.

Синтаксис

BOOL GetOpenFileNameA(
  [in, out] LPOPENFILENAMEA unnamedParam1
);

Параметры

[in, out] unnamedParam1

Тип: LPOPENFILENAME

Указатель на структуру OPENFILENAME , содержащую сведения, используемые для инициализации диалогового окна. Когда getOpenFileName возвращает значение , эта структура содержит сведения о выборе файла пользователем.

Возвращаемое значение

Тип: BOOL

Если пользователь указывает имя файла и нажимает кнопку ОК , возвращается ненулевое значение. Буфер, на который указывает элемент lpstrFile структуры OPENFILENAME , содержит полный путь и имя файла, указанные пользователем.

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

Комментарии

Диалоговое окно Открыть в стиле Обозреватель предоставляет функции пользовательского интерфейса, аналогичные Обозреватель Windows. Вы можете указать процедуру перехватчика OFNHookProc для диалогового окна Открыть в стиле Обозреватель. Чтобы включить процедуру перехватчика, задайте флаги OFN_EXPLORER и OFN_ENABLEHOOK в элементе Flags структуры OPENFILENAME и укажите адрес процедуры перехватчика в элементе lpfnHook .

Windows по-прежнему поддерживает диалоговое окно открытия старого стиля для приложений, которые хотят поддерживать пользовательский интерфейс, совместимый со старым пользовательским интерфейсом. Чтобы отобразить диалоговое окно Открыть старого стиля, включите процедуру перехватчика OFNHookProcOldStyle и убедитесь, что флаг OFN_EXPLORER не установлен.

Чтобы отобразить диалоговое окно, позволяющее пользователю выбрать каталог, а не файл, вызовите функцию SHBrowseForFolder .

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

  • ANSI: ограничение в 32 КБ
  • Юникод: без ограничений

Примеры

Пример см. в разделе Открытие файла.

Примечание

Заголовок commdlg.h определяет GetOpenFileName в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОД. Использование псевдонима, не зависящий от кодирования, с кодом, который не является нейтральным для кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или времени выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows 2000 Professional [только классические приложения]
Минимальная версия сервера Windows 2000 Server [только классические приложения]
Целевая платформа Windows
Header commdlg.h (включая Windows.h)
Библиотека Comdlg32.lib
DLL Comdlg32.dll
Набор API ext-ms-win-shell-comdlg32-l1-1-1 (появился в Windows 10 версии 10.0.14393)

См. также раздел

CommDlgExtendedError

Общая библиотека диалоговых окон

Основные понятия

GetSaveFileName

OFNHookProc

OFNHookProcOldStyle

OPENFILENAME

Другие ресурсы

Справочные материалы

SHBrowseForFolder