GetSaveFileName Function

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 Versioncomdlg32.dll
HeaderDeclared in Commdlg.h, include Windows.h
Import libraryComdlg32.lib
Minimum operating systems Windows 95, Windows NT 3.1
UnicodeImplemented as ANSI and Unicode versions.

See Also

Tags :


Community Content

tonygrue
What's the error value when the user cancels?
The article says "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:"

In Window Mobile 6 it looks like the function might return 0 which is contrary to the documentation. What about on the desktop? Is it ERROR_CANCELLED or is it something else?
Tags :

Page view tracker