Функция GetOpenFileName


Функция GetOpenFileName создает  диалоговое окно Открыть (Open), которое позволяет пользователю определить открываемый диск, каталог и имя файла или имена ряда файлов.

Синтаксис

BOOL GetOpenFileName(
    LPOPENFILENAME lpofn
);

Параметры

lpofn

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

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

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

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

CDERR_DIALOGFAILURE
CDERR_FINDRESFAILURE
CDERR_NOHINSTANCE
CDERR_INITIALIZATION
CDERR_NOHOOK
CDERR_LOCKRESFAILURE
CDERR_NOTEMPLATE
CDERR_LOADRESFAILURE
CDERR_STRUCTSIZE
CDERR_LOADSTRFAILURE
FNERR_BUFFERTOOSMALL
CDERR_MEMALLOCFAILURE
FNERR_INVALIDFILENAME
CDERR_MEMLOCKFAILURE
FNERR_SUBCLASSFAILURE

Замечания

Диалоговое окно Открыть (Open), которое обеспечивает пользовательским интерфейсом со свойствами похожими на Проводник (Microsoft® Windows® Explorer). Вы можете предусмотреть для диалогового окна Открыть (Open) в стиле Проводника фильтр - процедуру OFNHookProc. Чтобы разрешить работу фильтр - процедуре, установите флажки OFN_EXPLORER и OFN_ENABLEHOOK в члене Flags структуры OPENFILENAME и определите ее адрес в члене lpfnHook.

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

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

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

  • Windows 95/98/Me: (поддерживаются только ANSI ) без ограничений
  • Microsoft Windows NT ® 4 и раньше: ограничивается 32 КБ
  • Windows 2000/XP: (ANSI) ограничивается 32 КБ, (Unicode) без ограничений

Windows NT 4.0: структура OPENFILENAME включает дополнительные члены в более ранних версий Windows. Однако, это порождает проблемы для приложений на базе предыдущих версий Windows. Чтобы использовать текущие заголовочные файлы для приложений, которые должны выполняться в среде Windows NT 4.0, для члена lStructSize структуры OPENFILENAME или используйте #define "/D_WIN32_WINNT=0x0400", или используйте OPENFILENAME_SIZE_VERSION_400.

Windows 95/98/Me: GetOpenFileNameW поддерживается программой Microsoft Layer for Unicode (MSLU). Чтобы использовать ее, Вы должны добавить некоторые файлы к вашему приложению, как изложено в описании Microsoft Layer for Unicode для системы Windows 95/98/Me.

Пример

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

Смотри также 

Обзор Библиотека стандартных диалоговых оконФункции, используемые библиотекой стандартных диалоговых окон, CommDlgExtendedError, GetSaveFileName, OFNHookProc, OFNHookProcOldStyle, OPENFILENAME, SHBrowseForFolder

Размещение и совместимость GetOpenFileName

Windows. NET Server

Да

Windows XP

Да

Windows 2000

Да

Windows NT

Да версии 3.1 и выше

Windows Me

Да

Windows 98

Да

Windows 95

Да

Используемая библиотека

Comdlg32.lib

Заголовочный файл

 

- объявлено в

Commdlg.h

- включено в

Windows.h

Unicode

Нет

Замечания по платформе

Не имеется

 

Назад в оглавление
На главную страницу
На оглавление справки

Hosted by uCoz