/* * SaveListBox - save out a list box */ void SaveListBox( int how, void (*writefn)( FILE * ), char *tmpname, char *appname, HWND mainhwnd, HWND listbox ) { char fname[_MAX_PATH]; BOOL ret; HCURSOR hourglass; HCURSOR oldcursor; if( how == SLB_SAVE_AS ) { ret = GetSaveFName( mainhwnd, fname ); } else { ret = GenTmpFileName( tmpname, fname ); if( !ret ) { ReportSave( mainhwnd, fname, appname, ret ); } } if( ret ) { hourglass = LoadCursor( NULL, IDC_WAIT ); SetCapture( mainhwnd ); oldcursor = SetCursor( hourglass ); ret = writeListBoxContents( writefn, fname, listbox ); SetCursor( oldcursor ); ReleaseCapture(); ReportSave( mainhwnd, fname, appname, ret ); } } /* SaveListBox */
/* * MemSave - save the contents of a memory display box */ static void MemSave( MemWndInfo *info, HWND hwnd, bool gen_name ) { char fname[_MAX_PATH]; // OFSTRUCT finfo; DWORD offset; DWORD limit; int hdl; unsigned len; bool ret; HCURSOR hourglass; HCURSOR oldcursor; if( gen_name ) { ret = GenTmpFileName( MemConfigInfo.fname, fname ); if( !ret ) { ReportSave( hwnd, fname, MemConfigInfo.appname, ret ); } } else { ret = GetSaveFName( hwnd, fname ); } if( ret ) { // hdl = OpenFile( fname, &finfo, OF_CREATE | OF_WRITE ); hdl = open( fname, O_WRONLY | O_CREAT, S_IREAD | S_IWRITE ); if( hdl == -1 ) { ret = false; } else { hourglass = LoadCursor( NULLHANDLE, IDC_WAIT ); SetCapture( hwnd ); oldcursor= SetCursor( hourglass ); memDumpHeader( hdl, info ); if( ISCODE( info ) ) { DumpMemAsm( info, hdl ); } else { offset = info->base; limit = info->limit; while( offset < limit ) { genLine( 16, limit, info->disp_type, info->sel, Buffer, offset ); len = (unsigned)strlen( Buffer ); write( hdl, Buffer, len ); write( hdl, "\n", 1 ); offset += 16; } } close( hdl ); SetCursor( oldcursor ); ReleaseCapture(); } ReportSave( hwnd, fname, MemConfigInfo.appname, ret ); } } /* MemSave */
// --------------------------------------------------------------------------- void __fastcall TMain::FormShow(TObject *Sender) { bool NeedUpdate, OKUpdate; if (!IsShift()) { NeedUpdate = true; OKUpdate = true; if (FindCmdLineSwitch("UPDATE")) { OKUpdate = ReportUpdate(); NeedUpdate = false; } if (FindCmdLineSwitch("MAIL")) { if (NeedUpdate) { OKUpdate = ReportUpdate(); NeedUpdate = false; } if (OKUpdate) ReportMail(); } if (FindCmdLineSwitch("SAVE")) { if (NeedUpdate) OKUpdate = ReportUpdate(); if (OKUpdate) ReportSave(); } if (FindCmdLineSwitch("CLOSE") & OKUpdate) Close(); } }
void __fastcall TMain::tbtnSaveClick(TObject * Sender) { ReportSave(); }