OPENFILENAME

Структура OPENFILENAME содержит сведения, функции GetSaveFileName и GetOpenFileName использовать для инициализации открытым или сохранитькак общее диалоговое окно. После того, как пользователь закрывает диалогового окна, система возвращает сведения о выборе пользователя в этой структуре .

typedef struct tagOFN {/ / ofn типа DWORD lStructSize; 
    HWND hwndOwner; 
    HINSTANCE hInstance; 
    LPCTSTR lpstrFilter; 
    LPTSTR lpstrCustomFilter; 
    DWORD nMaxCustFilter; 
    DWORD nFilterIndex; 
    LPTSTR lpstrFile; 
    DWORD nMaxFile; 
    LPTSTR lpstrFileTitle; 
    DWORD nMaxFileTitle; 
    LPCTSTR lpstrInitialDir; 
    LPCTSTR lpstrTitle; 
    DWORD Флаги; 
    СЛОВО nFileOffset; 
    СЛОВО nFileExtension; 
    LPCTSTR lpstrDefExt; 
    DWORD lCustData; 
    LPOFNHOOKPROC lpfnHook; 
    LPCTSTR lpTemplateName; 
} OPENFILENAME 
 

Члены

lStructSize
Задает длину в байтах структуры.
hwndOwner
Идентифицирует окно, которому принадлежит диалогового окна. Этот член может быть любой допустимый дескриптор, или это может быть значение NULL, если диалогового окна не имеет собственника.
hInstance
Если флаг OFN_ENABLETEMPLATEHANDLE установлен в странах-членах флаги , hInstance является дескриптор объекта памяти, содержащий шаблон поля диалогового окна. Если установлен флаг OFN_ENABLETEMPLATE, hInstance определяет модуль, содержащий диалоговое окно поле шаблон с именем lpTemplateName членов. Если флаг не установлен, этот элемент игнорируется.

Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию.

lpstrFilter
Указатель на буфер, содержащий пары строк фильтра нулем. Последняя строка в буфере должна заканчиваться двумя символами NULL.

Первая строка каждой пары это отображаемая строка, которая описывает фильтр (например, "текстовые файлы"), а вторая строка указывает шаблон фильтра (например, «*.TXT"). Чтобы указать несколько шаблонов фильтров для одного дисплея строки, используйте точку с запятой для разделения шаблонов (например, «*.TXT; *.DOC; *.БАК"). Строка шаблона может быть комбинацией символов допустимые имя файла и подстановочный символ звездочка. Не ставьте пробелы в строке шаблона.

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

Если lpstrFilter имеет значение NULL, диалоговое окно "" не отображаются фильтры.

lpstrCustomFilter
Указатель на статический буфер, содержащий пару строк фильтра заканчивающейся пустым для сохранения шаблона фильтра, выбранного пользователем. Первая строка является ваш отображаемая строка, которая описывает пользовательский фильтр, и вторая строка является шаблон фильтра, выбранного пользователем. Первый раз, приложение создает диалоговое окно, укажите первую строку, которая может быть любой непустой строкой. Когда пользователь выбирает файл, диалоговое окно "" копирует текущий шаблон фильтра на вторую строку. Шаблон сохранившихся фильтра может быть один из шаблонов, указанных в буфере lpstrFilter , или это может быть шаблон фильтра, введенные пользователем. Система использует строки для инициализации фильтр пользовательских файлов следующий раз, когда будет создан диалогового окна. Если член nFilterIndex равно нулю, диалоговое окно "" использует настраиваемый фильтр.

Если этот элемент имеет значение NULL, диалоговое окно "" не сохраняются шаблоны пользовательских фильтров.

Если этот элемент не является NULL, значение члена nMaxCustFilter необходимо указать размер в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), lpstrCustomFilter буфера.

nMaxCustFilter
Указывает размер в байтах или символов, определенных lpstrCustomFilterбуфера. Этот буфер должен быть по меньшей мере 40 символов. Этот элемент игнорируется, если lpstrCustomFilter имеет значение NULL или точек в строку NULL.
nFilterIndex
Задает индекс фильтра, выбранного в элементе типы файлов. Буфер, который указывает lpstrFilter содержит пар строк, определяющие фильтры. Первая пара строк имеет значение индекса 1, второй пары 2 и так далее. Индекс 0 указывает настраиваемый фильтр, указанный в lpstrCustomFilter. Можно указать индекс на входе указать шаблон описания и фильтра первоначальный фильтра для диалогового окна. Когда пользователь выбирает файл, nFilterIndex возвращает индекс текущего отображаемого фильтра.

Если nFilterIndex равен нулю, и lpstrCustomFilter равно NULL, система использует первый фильтр в буфере lpstrFilter . Если все три члена являются 0 или NULL, система не использует какие-либо фильтры и не содержит каких-либо файлов в списке файлов диалогового окна.

lpstrFile
Указатель на буфер, содержащий имя файла используется для инициализации имя файла редактирования элемента управления. Первый символ этого буфера должно быть NULL, если инициализация нет необходимости. Когда функция GetOpenFileName или GetSaveFileName успешно выполняется и возвращает допустимое значение, этот буфер содержит обозначение диска, путь, имя файла и расширение выбранного файла.

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

Если буфер слишком мал, функция возвращает FALSE, а функция CommDlgExtendedError возвращает FNERR_BUFFERTOOSMALL. В этом случае первые два байта lpstrFile буфера содержит требуемый размер в байтах или символов.

nMaxFile
Указывает размер в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), буфера, который указывает lpstrFile. GetOpenFileName и GetSaveFileName возвращают FALSE если буфер слишком мал для хранения сведений о файле. Буфер должен быть менее 256 символов.
lpstrFileTitle
Указатель на буфер, который получает имя файла и расширение (без сведений о пути) выбранного файла. Этот член может быть NULL.
nMaxFileTitle
Указывает размер в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), буфера, который указывает lpstrFileTitle. Этот элемент игнорируется, если lpstrFileTitle имеет значение NULL.
lpstrInitialDir
Указатель на строку, указывающую первоначальный файл каталога.

Windows NT 5.0 и более поздних версиях; Windows 98 и более поздних версий:

Если lpstrInitalDir имеет значение NULL, и текущий каталог содержит все файлы указанного фильтра типов, начальный каталог является текущим каталогом.

Если lpstrInitalDir имеет значение NULL, и текущий каталог не содержит какие-либо файлы из указанного фильтра типов, — начальный каталог это личные файлы текущего пользователя. Чтобы задать каталог личных файлов текущего пользователя как начальный каталог, задайте lpstrInitialDir на пути, возвращаемая путем вызова SHGetSpecialFolderLocation функция с флагом CSIDL_PERSONAL.

Более ранних версий Windows и Windows NT:

Если lpstrInitalDir имеет значение NULL, начальный каталог является текущим каталогом.

lpstrTitle
Указатель на строку в строке заголовка диалогового окна. Если этот элемент имеет значение NULL, система использует заголовок по умолчанию (то есть, сохранить как или Открыть).
Флаги
Набор битовых флагов, которые можно использовать для инициализации диалогового окна. По возвращении из диалогового окна он устанавливает эти флаги для указания пользовательского ввода. Этот член может быть комбинацией следующих флагов:
Флаг Значение
OFN_ALLOWMULTISELECT
Указывает, что полеимя файласо списком позволяет выбрать несколько элементов. Если установлен флаг OFN_EXPLORER, диалоговое окно "" использует исследователь стиль пользовательского интерфейса; в противном случае он использует старый стиль пользовательского интерфейса .

Если пользователь выбирает более чем один файл, lpstrFile буфер возвращает путь к текущему каталогу следуют имена файлов выбранных файлов. Член nFileOffset это смещение в байтах или символов, для первого имени файла, и nFileExtension элемент не используется. Для диалоговых окон проводника стиль каталог и имя файла строки являются NULL, разделены, с лишний символ NULL после последнего имени файла. Этот формат позволяет стиле проводника диалоги для возвращения длинные имена файлов, содержащие пробелы. Для диалоговых окон старого стиля каталог и имя файла строки разделяются пробелами и функция использует короткие имена файлов для имена файлов с пробелами. Вы можете использовать FindFirstFile функции для преобразования между длинные и короткие имена файлов.

Если указать пользовательский шаблон для диалогового окна метода старого стиля, определение списка имя файла должно содержать значение LBS_EXTENDEDSEL.

OFN_CREATEPROMPT
Если пользователь указывает файл, который не существует, этот флаг вызывает диалоговое окно запрашивать у пользователя разрешение на создание файла. Если пользователь выбирает для создания файла, диалоговое окно закрывается, и функция возвращает указанное имя; в противном случае диалоговое окно остается открытым. Если вы используете этот флаг с флагом OFN_ALLOWMULTISELECT, диалоговое окно "" позволяет пользователю указывать только один несуществующего файла.
OFN_ENABLEHOOK
Включает указанный в lpfnHook член функция.
OFN_ENABLESIZING
Windows NT 5.0, Windows 98:Позволяет диалоговое окно проводника стиль размеры с помощью мыши или клавиатуры. По умолчанию стиле проводника Открыть и сохранить как диалоговые окна позволяют диалоговое изменен независимо от ли этот флаг установлен. Этот флаг необходим только если вы процедуру подключения или пользовательский шаблон. Диалоговое окно "старых" не разрешает изменение размера.
OFN_ENABLETEMPLATE
Указывает, что член lpTemplateName указывает на имя ресурса шаблона диалогового окна в модуле, выявленные hInstance член.

Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию.

OFN_ENABLETEMPLATEHANDLE
Указывает, что член hInstance определяет блок данных, содержащего шаблон box предустановленной диалогового окна. Система игнорирует lpTemplateName если этот флаг указан.

Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию.

OFN_EXPLORER
Указывает, что любые изменения, внесенные в диалоговое окно Открыть или сохранить как используют новые методы настройки Explorer стиле. Для получения дополнительной информации см. Исследователь-стиль крюк процедуры и Исследователь-стиль пользовательские шаблоны.

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

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

OFN_EXTENSIONDIFFERENT
Указывает, что пользователь набрал расширение имени файла, которое отличается от расширения, указанного в lpstrDefExt. Функция не использовать этот флаг, если lpstrDefExt имеет значение NULL.
OFN_FILEMUSTEXIST
Указывает, что пользователь может ввести только имена существующих файлов в поле вводаимя файла. Если этот флаг указан, а пользователь вводит недопустимое имя, процедуру диалогового окна отображает предупреждение в окне сообщения. Если этот флаг указан, также используется флаг OFN_PATHMUSTEXIST .
OFN_HIDEREADONLY
Скрываеттолько флажок чтение .
OFN_LONGNAMES
Для диалоговых окон старого стиля этот флаг вызывает диалоговое окно "" использовать длинные имена файлов. Если этот флаг не указан, или если также установлен флаг OFN_ALLOWMULTISELECT, диалоговых окон старого образца использовать короткие имена файлов (формат 8.3) для имена файлов с пробелами.

Диалоговые окна проводника стиль игнорировать этот флаг и всегда показывать длинные имена файлов.

OFN_NOCHANGEDIR
Восстанавливает текущий каталог исходное значение, если пользователь изменяет папку при поиске файлов.
OFN_NODEREFERENCELINKS
Руководит диалоговое окно возвращает путь и имя выбранного ярлыка (.Файл LNK). Если это значение не задано, диалоговое окно возвращает путь и имя файла , на который указывает ссылка ярлыка
OFN_NOLONGNAMES
Для диалоговых окон старого стиля этот флаг вызывает диалоговое окно "" использовать короткие имена файлов (формат 8.3).

Диалоговые окна проводника стиль игнорировать этот флаг и всегда показывать длинные имена файлов.

OFN_NONETWORKBUTTON
Скрывает и отключает кнопку " сеть ".
OFN_NOREADONLYRETURN
Указывает, что возвращенные файл не имеет чтение только флажок проверки и не находится в каталоге, защищен от записи.
OFN_NOTESTFILECREATE
Указывает, что этот файл не создается до закрытия диалогового окна. Этот флаг должен быть указан, если приложение сохраняет файл на общем сетевом ресурсе create-nonmodify. Когда приложение определяет этот флаг, библиотека не проверяет наличие защиты от записи, полного диска, открытой дверцу или защиты сети. Приложения, использующие этот флаг необходимо выполнить операции с файлами тщательно, потому что файл не может быть возобновлено после его закрытия.
OFN_NOVALIDATE
Указывает, что общие диалоговые позволяют недопустимые знаки в имени возвращаемого файла. Как правило вызывающее приложение использует процедуру подключения, которая проверяет имя файла с помощью сообщения FILEOKSTRING. Если текстовое поле в элемент управления является пустым или содержит только пробелы, обновляются списки файлов и каталогов. Если текстовое поле в поле редактирования содержит что-нибудь еще, nFileOffset и nFileExtension устанавливаются значения, полученные путем синтаксического анализа текста. Не расширение по умолчанию добавляется к тексту, а также текст копируется в буфер, предусмотренных lpstrFileTitle.
Если значение, заданное nFileOffset меньше нуля, недопустимое имя файла. В противном случае имя файла является действительным, и nFileExtension и nFileOffset могут быть использованы как, если не был указан флаг OFN_NOVALIDATE.
OFN_OVERWRITEPROMPT
Вызывает диалоговое окно сохранить как "" для создания окна сообщения, если выбранный файл уже существует. Пользователь должен подтвердить перезапись файла.
OFN_PATHMUSTEXIST
Указывает, что пользователь может ввести только допустимые пути и имена файлов. Если пользователь вводит неверный путь и имя файла в поле вводаимя файла, и этот флаг используется, функция выводит предупреждение в окне сообщения .
OFN_READONLY
Вызываеттолько флажок чтениедля проверки изначально при создании диалоговым окном. Этот флаг указывает состояниетолько флажок чтениепри закрытии диалогового окна .
OFN_SHAREAWARE
Указывает, что если вызов OpenFile функция не работает из сети обмена нарушение, ошибка игнорируется и диалоговое окно возвращает имя выбранного файла.

Если этот флаг не установлен, диалоговое окно уведомляет процедуру подключения, когда сеть обмена нарушение происходит для имени файла, указанного пользователем. Если установлен флаг OFN_EXPLORER, диалоговое окно "" отправляет сообщение CDN_SHAREVIOLATION процедуру подключения. Если OFN_EXPLORER не установлен, диалоговое окно "" отправляет сообщение зарегистрированных SHAREVISTRING процедуру подключения.

OFN_SHOWHELP
Вызывает диалоговое окно для отображения кнопки Справка . Член hwndOwner необходимо указать окно, чтобы получить HELPMSGSTRING зарегистрированы сообщения отправляемые диалогового окна, когда пользователь нажимает кнопку Справка.

Диалоговое окно проводника стиль посылает сообщение уведомления CDN_HELP процедуру подключения, когда пользователь нажимает кнопку Справка.


nFileOffset
Смещение нуля, в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), с самого начала пути к имени файла в строке, который указывает lpstrFile. Например если lpstrFile указывает на следующую строку, "c:\dir1\dir2\file.ext", этот элемент содержит значение 13 указать смещение строки "file.ext".

Если пользователь выбирает более чем один файл, nFileOffset — смещение первого имени файла.

nFileExtension
Смещение нуля, в байтах (ANSI-версия) или 16-разрядных символов (Unicode версия), с самого начала пути для расширения имени файла в строке, который указывает lpstrFile. Например если lpstrFile указывает на следующую строку, "c:\dir1\dir2\file.ext", этот элемент содержит значение 18. Если пользователь не ввести расширение и lpstrDefExt равно NULL, этот элемент определяет смещение для концевой нулевой символ. Если тип пользователя ".", как последний символ в имени файла, этот элемент определяет ноль.
lpstrDefExt
Указывает буфер, содержащий расширение по умолчанию. GetOpenFileName и GetSaveFileName добавить данное расширение к имени файла, если пользователь не может ввести расширение. Эта строка может быть любой длины, но добавляются только первые три символа. Строка не должна содержать точку (.). Если этот элемент имеет значение NULL и пользователь не может ввести расширение, расширение не добавляется.
lCustData
Задает определяемые приложением данные, которые система проходит процедуру подключения определенных членов lpfnHook . Когда система отправляет сообщение WM_INITDIALOG процедуру подключения, параметр lParam сообщения является указателем на структуру OPENFILENAME указывается при создании диалогового окна. Для получения lCustData значение этого указателя можно использовать процедуру подключения.
lpfnHook
Указатель на процедуру подключения. Этот элемент игнорируется, если только член флагов включает флаг OFN_ENABLEHOOK.

Если флаг OFN_EXPLORER не установлен в странах-членах флагов , lpfnHook является указателем на процедуру подключения OFNHookProcOldStyle , получает сообщения для диалогового окна. Крюк процедура возвращает значение FALSE, чтобы передать сообщение на процедуру диалогового окна по умолчанию или значение TRUE, чтобы отменить сообщение.

Если имеет значение OFN_EXPLORER, lpfnHook — указатель на процедуру подключения OFNHookProc . Процедуру подключения получает сообщения уведомления, отправляемые из диалогового окна. Процедуру подключения также получает сообщения для любых дополнительных элементов управления, определенных путем указания шаблона диалогового окна ребенок. Процедуру подключения не получает сообщения, предназначенные для стандартных элементов управления диалогового окна по умолчанию.

lpTemplateName
Указатель на ограниченную значением null строку, которая содержит название ресурса шаблона диалогового окна в модуле, выявленные hInstance члена. Для пронумерованных диалогового окна ресурсов это может быть значение, возвращенное макрос MAKEINTRESOURCE . Этот элемент игнорируется, если только флаг OFN_ENABLETEMPLATE установлен в странах-членах флаги.

Если установлен флаг OFN_EXPLORER, система использует указанный шаблон для создания диалогового окна, которое является потомком диалогового окна проводника стиль по умолчанию. Если флаг OFN_EXPLORER не задано, система использует шаблон для создания старого стиля диалоговым окном, которое заменяет диалоговое окно по умолчанию.

QuickInfo

nbsp; Windows &NT: требует версии 3.1 или более поздней версии.
Windows:Требует Windows 95 или более поздней версии.
Windows CE:Требует версии 1.0 или более поздней версии.
Заголовок:Объявленные в commdlg.h.
Юникод:Определяется как структуры Unicode и ANSI.

Родственные слова

Общие диалогового окна Обзор библиотеки, Общие диалоговое окно окно структуры, GetOpenFileName, GetSaveFileName, SHGetSpecialFolderLocation