The CDM_GETSPEC message retrieves the filename (not including the path) of the currently selected file in an Explorer-style Open or Save As common dialog box. The dialog box must have been created with the OFN_EXPLORER flag; otherwise, the message fails.
CDM_GETSPEC wParam = (WPARAM) cbmax; lParam = (LPARAM) (LPTSTR) psz; // Corresponding macro int CommDlg_OpenSave_GetSpec(hdlg, psz, cbmax);
If the message succeeds, the return value is the size, in bytes or characters, of the filename string, including the terminating NULL character. This is either the number of bytes or characters copied to the psz buffer, or the required buffer size if the buffer is too small.
If an error occurs, the return value is less than zero.
GetOpenFileName, GetSaveFileName, OPENFILENAME