Creates a Save dialog box that lets the user specify the drive, directory, and name of a file to save.
Syntax
BOOL GetSaveFileName(
LPOPENFILENAME lpofn
);
Parameters
- lpofn
-
[in, out] Pointer to an OPENFILENAME structure that contains information used to initialize the dialog box. When GetSaveFileName returns, this structure contains information about the user's file selection.
Return Value
If the user specifies a file name and clicks the
OK button and the function is successful, the return value is nonzero. The buffer pointed to by the
lpstrFile member of the OPENFILENAME structure contains the full path and file name specified by the user.
If the user cancels or closes the
Save dialog box or an error such as the file name buffer being too small occurs, the return value is zero. To get extended error information, call the CommDlgExtendedError function, which can return one of the following values:
| CDERR_DIALOGFAILURE |
| CDERR_FINDRESFAILURE |
| CDERR_INITIALIZATION |
| CDERR_LOADRESFAILURE |
| CDERR_LOADSTRFAILURE |
| CDERR_LOCKRESFAILURE |
| CDERR_MEMALLOCFAILURE |
| CDERR_MEMLOCKFAILURE |
| CDERR_NOHINSTANCE |
| CDERR_NOHOOK |
| CDERR_NOTEMPLATE |
| CDERR_STRUCTSIZE |
| FNERR_BUFFERTOOSMALL |
| FNERR_INVALIDFILENAME |
| FNERR_SUBCLASSFAILURE |
Remarks
Note Starting with Windows Vista, the Common File Dialog has been superseded by the Common Item Dialog when used to save a file. We recommended that you use the Common Item Dialog API instead of the Common File Dialog API in this case. For more information, please see
Common Item Dialog.
The Explorer-style Save dialog box that provides user-interface features that are similar to the Windows Explorer. You can provide an OFNHookProc hook procedure for an Explorer-style Save dialog box. To enable the hook procedure, set the OFN_EXPLORER and OFN_ENABLEHOOK flags in the Flags member of the OPENFILENAME structure and specify the address of the hook procedure in the lpfnHook member.
Microsoft Windows continues to support old-style Save dialog boxes for applications that want to maintain a user-interface consistent with the old-style user-interface. To display the old-style Save dialog box, enable an OFNHookProcOldStyle hook procedure and ensure that the OFN_EXPLORER flag is not set.
Windows NT 4.0: The OPENFILENAME structure include additional members on recent versions of Windows. However, this causes problems for applications on previous operation systems. To use the current header files for applications on Microsoft Windows NT 4.0, either use the
#define "/D_WIN32_WINNT=0x0400" or use OPENFILENAME_SIZE_VERSION_400 for the lStructSize member of OPENFILENAME.
Windows 95/98/Me: GetSaveFileNameW is supported by the Microsoft Layer for Unicode (MSLU). To use this, you must add certain files to your application, as outlined in Microsoft Layer for Unicode on Windows 95/98/Me Systems.
Example
For an example, see Creating an Enhanced Metafile.
Function Information
| Minimum DLL Version | comdlg32.dll |
|---|
| Header | Declared in Commdlg.h, include Windows.h |
|---|
| Import library | Comdlg32.lib |
|---|
| Minimum operating systems |
Windows 95, Windows NT 3.1 |
|---|
| Unicode | Implemented as
ANSI and Unicode versions. |
|---|
See Also