@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: Display the Save File common dialog !!!!C# Signature: [DllImport("Comdlg32.dll", CharSet=CharSet.Auto, SetLastError=true)] private static extern bool GetSaveFileName(ref OPENFILENAME lpofn); !!!!VB.NET Signature: <DllImport("Comdlg32.dll", CharSet:=CharSet.Auto, SetLastError:=True)> _ Private Shared Function GetSaveFileName(ByRef lpofn As OPENFILENAME) As Boolean End Function !!!!User-Defined Types: [OPENFILENAME] !!!!Notes: None. !!!!Tips & Tricks: Please add some! !!!!Sample Code: ' Copyright ' Microsoft Corporation ' All rights reserved 'typedef struct tagOFN { ' 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 Flags; ' WORD nFileOffset; ' WORD nFileExtension; ' LPCTSTR lpstrDefExt; ' LPARAM lCustData; ' LPOFNHOOKPROC lpfnHook; ' LPCTSTR lpTemplateName; '#if (_WIN32_WINNT >= 0x0500) ' void * pvReserved; ' DWORD dwReserved; ' DWORD FlagsEx; '#endif // (_WIN32_WINNT >= 0x0500) '} OPENFILENAME, *LPOPENFILENAME; <StructLayout(LayoutKind.Sequential, CharSet:=CharSet.Auto)> _ Public Class OpenFileName Public structSize As Integer = 0 Public dlgOwner As IntPtr = IntPtr.Zero Public instance As IntPtr = IntPtr.Zero Public filter As String = Nothing Public customFilter As String = Nothing Public maxCustFilter As Integer = 0 Public filterIndex As Integer = 0 Public file As String = Nothing Public maxFile As Integer = 0 Public fileTitle As String = Nothing Public maxFileTitle As Integer = 0 Public initialDir As String = Nothing Public title As String = Nothing Public flags As Integer = 0 Public fileOffset As Short = 0 Public fileExtension As Short = 0 Public defExt As String = Nothing Public custData As IntPtr = IntPtr.Zero Public hook As IntPtr = IntPtr.Zero Public templateName As String = Nothing Public reservedPtr As IntPtr = IntPtr.Zero Public reservedInt As Integer = 0 Public flagsEx As Integer = 0 End Class 'OpenFileName Public Class LibWrap 'BOOL GetOpenFileName(LPOPENFILENAME lpofn); Declare Auto Function GetSaveFileName Lib "Comdlg32.dll" ( _ <[In](), Out()> ByVal ofn As OpenFileName) As Boolean End Class 'LibWrap Private Function ShowOpen(Optional ByVal filter As String = ("All files" & ChrW(0) & "*.*" & ChrW(0)), _ Optional ByVal title As String = "Save File Dialog...", _ Optional ByVal defext As String = "*", _ Optional ByVal path As String = "C:\") As String Try Dim ofn As New OpenFileName ofn.structSize = Marshal.SizeOf(ofn) ofn.filter = filter ofn.file = New String(New Char(256) {}) ofn.maxFile = ofn.file.Length ofn.fileTitle = New String(New Char(64) {}) ofn.maxFileTitle = ofn.fileTitle.Length ofn.initialDir = path ofn.title = title ofn.defExt = defext If LibWrap.GetSaveFileName(ofn) Then Return ofn.file End If Catch ex As Exception Debug.Assert(False) Return System.String.Empty End Try End Function !!!!Alternative Managed API: Do you know one? Please contribute it! Documentation: GetSaveFileName@msdn on MSDN
Edit comdlg32.GetSaveF...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.