@@ -366,25 +366,17 @@ void DoExportResults(void) {
366366**============================================================================*/
367367
368368void DoExportCSV (void ) {
369- CE_OPENFILENAME ofn ;
370- wchar_t szFile [MAX_PATH ] = L"results.csv" ;
369+ wchar_t szFile [MAX_PATH ] = L"results" ;
371370 HANDLE hFile ;
372371 DWORD dwLen , dwWritten ;
373372 wchar_t * wbuf , * wp ;
374373 char * buf , * bp ;
375374 int needQuote ;
376375
377- memset (& ofn , 0 , sizeof (ofn ));
378- ofn .lStructSize = sizeof (ofn );
379- ofn .hwndOwner = g_hwndMain ;
380- ofn .lpstrFile = szFile ;
381- ofn .nMaxFile = MAX_PATH ;
382- ofn .lpstrFilter = L"CSV Files (*.csv)\0*.csv\0All Files (*.*)\0*.*\0" ;
383- ofn .lpstrDefExt = L"csv" ;
384- ofn .lpstrTitle = L"Export Results" ;
385- ofn .Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST ;
386-
387- if (!GetSaveFileNameW (& ofn )) return ;
376+ if (!CustomFilePicker (g_hwndMain , szFile , MAX_PATH ,
377+ L"Export Results" ,
378+ L"CSV Files\0*.csv\0All Files\0*.*\0" ,
379+ L"csv" , NULL , 1 )) return ;
388380
389381 dwLen = GetWindowTextLengthW (g_hwndResult );
390382 if (dwLen == 0 ) return ;
@@ -441,24 +433,16 @@ void DoExportCSV(void) {
441433**============================================================================*/
442434
443435void DoExportTxt (void ) {
444- CE_OPENFILENAME ofn ;
445- wchar_t szFile [MAX_PATH ] = L"results.txt" ;
436+ wchar_t szFile [MAX_PATH ] = L"results" ;
446437 HANDLE hFile ;
447438 DWORD dwLen , dwWritten ;
448439 wchar_t * wbuf ;
449440 char * buf ;
450441
451- memset (& ofn , 0 , sizeof (ofn ));
452- ofn .lStructSize = sizeof (ofn );
453- ofn .hwndOwner = g_hwndMain ;
454- ofn .lpstrFile = szFile ;
455- ofn .nMaxFile = MAX_PATH ;
456- ofn .lpstrFilter = L"Text Files (*.txt)\0*.txt\0All Files (*.*)\0*.*\0" ;
457- ofn .lpstrDefExt = L"txt" ;
458- ofn .lpstrTitle = L"Export Results" ;
459- ofn .Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST ;
460-
461- if (!GetSaveFileNameW (& ofn )) return ;
442+ if (!CustomFilePicker (g_hwndMain , szFile , MAX_PATH ,
443+ L"Export Results" ,
444+ L"Text Files\0*.txt\0All Files\0*.*\0" ,
445+ L"txt" , NULL , 1 )) return ;
462446
463447 dwLen = GetWindowTextLengthW (g_hwndResult );
464448 if (dwLen == 0 ) return ;
@@ -986,25 +970,16 @@ void DoExportHTML(void) {
986970 }
987971 } else {
988972 /* Save to file */
989- CE_OPENFILENAME ofn ;
990973 wchar_t szFile [MAX_PATH ];
991974 HANDLE hFile ;
992975 DWORD written ;
993976
994977 MultiByteToWideChar (CP_ACP , 0 , tblName , -1 , szFile , MAX_PATH );
995- lstrcatW (szFile , L".html" );
996-
997- memset (& ofn , 0 , sizeof (ofn ));
998- ofn .lStructSize = sizeof (ofn );
999- ofn .hwndOwner = g_hwndMain ;
1000- ofn .lpstrFile = szFile ;
1001- ofn .nMaxFile = MAX_PATH ;
1002- ofn .lpstrFilter = L"HTML Files (*.html)\0*.html\0All Files (*.*)\0*.*\0" ;
1003- ofn .lpstrDefExt = L"html" ;
1004- ofn .lpstrTitle = L"Export HTML Table" ;
1005- ofn .Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST ;
1006978
1007- if (GetSaveFileNameW (& ofn )) {
979+ if (CustomFilePicker (g_hwndMain , szFile , MAX_PATH ,
980+ L"Export HTML Table" ,
981+ L"HTML Files\0*.html\0All Files\0*.*\0" ,
982+ L"html" , NULL , 1 )) {
1008983 hFile = CreateFileW (szFile , GENERIC_WRITE , 0 , NULL , CREATE_ALWAYS , FILE_ATTRIBUTE_NORMAL , NULL );
1009984 if (hFile != INVALID_HANDLE_VALUE ) {
1010985 WriteFile (hFile , buf , (DWORD )len , & written , NULL );
@@ -1167,22 +1142,14 @@ void DoExportHTMLResults(void) {
11671142 }
11681143 }
11691144 } else {
1170- CE_OPENFILENAME ofn ;
1171- wchar_t szFile [MAX_PATH ] = L"results.html" ;
1145+ wchar_t szFile [MAX_PATH ] = L"results" ;
11721146 HANDLE hFile ;
11731147 DWORD written ;
11741148
1175- memset (& ofn , 0 , sizeof (ofn ));
1176- ofn .lStructSize = sizeof (ofn );
1177- ofn .hwndOwner = g_hwndMain ;
1178- ofn .lpstrFile = szFile ;
1179- ofn .nMaxFile = MAX_PATH ;
1180- ofn .lpstrFilter = L"HTML Files (*.html)\0*.html\0All Files (*.*)\0*.*\0" ;
1181- ofn .lpstrDefExt = L"html" ;
1182- ofn .lpstrTitle = L"Export Results as HTML" ;
1183- ofn .Flags = OFN_OVERWRITEPROMPT | OFN_PATHMUSTEXIST ;
1184-
1185- if (GetSaveFileNameW (& ofn )) {
1149+ if (CustomFilePicker (g_hwndMain , szFile , MAX_PATH ,
1150+ L"Export Results as HTML" ,
1151+ L"HTML Files\0*.html\0All Files\0*.*\0" ,
1152+ L"html" , NULL , 1 )) {
11861153 hFile = CreateFileW (szFile , GENERIC_WRITE , 0 , NULL , CREATE_ALWAYS , FILE_ATTRIBUTE_NORMAL , NULL );
11871154 if (hFile != INVALID_HANDLE_VALUE ) {
11881155 WriteFile (hFile , buf , (DWORD )len , & written , NULL );
@@ -1278,8 +1245,7 @@ static void ExportTableToCSV(const wchar_t *dir, const char *tblName) {
12781245**============================================================================*/
12791246
12801247void DoExportDb (void ) {
1281- CE_OPENFILENAME ofn ;
1282- wchar_t szFile [MAX_PATH ] = L"export.db" ;
1248+ wchar_t szFile [MAX_PATH ] = L"export" ;
12831249 char szDestPath [MAX_PATH * 2 ];
12841250 sqlite * destDb ;
12851251 char * * result ;
@@ -1291,16 +1257,10 @@ void DoExportDb(void) {
12911257
12921258 if (!g_db ) return ;
12931259
1294- memset (& ofn , 0 , sizeof (ofn ));
1295- ofn .lStructSize = sizeof (ofn );
1296- ofn .hwndOwner = g_hwndMain ;
1297- ofn .lpstrFile = szFile ;
1298- ofn .nMaxFile = MAX_PATH ;
1299- ofn .lpstrFilter = L"SQLite Database (*.db)\0*.db\0CSV Folder (*.csv)\0*.csv\0" ;
1300- ofn .lpstrTitle = L"Export Database" ;
1301- ofn .Flags = OFN_PATHMUSTEXIST ;
1302-
1303- if (!GetSaveFileNameW (& ofn )) return ;
1260+ if (!CustomFilePicker (g_hwndMain , szFile , MAX_PATH ,
1261+ L"Export Database" ,
1262+ L"SQLite Database\0*.db\0CSV Folder\0*.csv\0" ,
1263+ L"db" , NULL , 1 )) return ;
13041264
13051265 /* Detect mode by extension */
13061266 {
0 commit comments