bool WRSaveResourceTo_RC( WRInfo *info, bool backup ) { char fn_path[_MAX_PATH]; bool ok; ok = (info != NULL && info->save_name != NULL); if( ok ) { WRGetInternalRESName( info->save_name, fn_path ); // if the internal save type has not been set up yet // then we must take a crude guess if( info->internal_type == WR_DONT_KNOW ) { info->internal_type = WRSelectFileType( (HWND)NULL, fn_path, #ifdef __NT__ TRUE, #else FALSE, #endif FALSE, NULL ); } ok = saveResourceToRES( info, backup, fn_path, info->internal_filename != NULL ? info->internal_filename : info->file_name ); } return( ok ); }
WRFileType WdeSelectFileType( char *name, bool is32bit ) { WRFileType file_type; HWND parent; bool use_wres; HELP_CALLBACK hcb; hcb = (HELP_CALLBACK)MakeProcInstance( (FARPROC)WdeHelpRoutine, WdeGetAppInstance() ); use_wres = WdeGetOption( WdeOptIsWResFmt ); parent = WdeGetMainWindowHandle(); file_type = WRSelectFileType( parent, name, is32bit, use_wres, hcb ); FreeProcInstance( (FARPROC)hcb ); return( file_type ); }
int PASCAL WinMain( HINSTANCE hinstCurrent, HINSTANCE hinstPrevious, LPSTR lpszCmdLine, int nCmdShow ) { int ret; int i; int ltype; int stype; bool backup; WRInfo *info; WRFileType ftype; uint_16 mflags; WRSelectImageInfo *sii; #if 0 bool dup; char *data; WResID type; WResID name; #endif hinstCurrent = hinstCurrent; hinstPrevious = hinstPrevious; lpszCmdLine = lpszCmdLine; nCmdShow = nCmdShow; info = NULL; ret = TRUE; WRInit(); if( _argc == 6 ) { ltype = atoi( _argv[2] ); stype = atoi( _argv[4] ); backup = (atoi( _argv[5] ) != 0); if( stype != 0 ) { info = WRLoadResource( _argv[1], ltype ); if( info != NULL ) { info->save_name = _argv[3]; info->save_type = stype; ret = WRSaveResource( info, backup ); } else { ret = FALSE; } } #if 0 } else if( _argc == 2 ) { ret = FALSE; data = WRMemAlloc( 32 ); if( data != NULL ) { for( i = 0; i < 32; i++ ) { data[i] = i; } type.IsName = name.IsName = FALSE; type.ID.Num = 10; name.ID.Num = 200; ret = WRSaveObjectAs( _argv[1], WR_WIN16M_RES, &type, &name, data, 32, 0 ); WRMemFree( data ); } } else if( _argc == 3 ) { ret = FALSE; data = WRMemAlloc( 32 ); if( data != NULL ) { for( i = 0; i < 32; i++ ) { data[i] = i; } type.IsName = name.IsName = FALSE; type.ID.Num = 10; name.ID.Num = 100; ret = WRSaveObjectInto( _argv[1], &type, &name, data, 32, 0, &dup ); WRMemFree( data ); } #endif } else { for( i = 1; i < _argc; i++ ) { WRSelectFileType( HWND_DESKTOP, _argv[i], FALSE, i % 2, NULL ); ftype = WRIdentifyFile( _argv[i] ); } ret = TRUE; } WRChangeMemFlags( HWND_DESKTOP, "test", &mflags, NULL ); if( info != NULL ) { info->save_name = NULL; WRFreeWRInfo( info ); } info = WRLoadResource( _argv[1], WR_DONT_KNOW ); sii = WRSelectImage( HWND_DESKTOP, info, NULL ); if( sii != NULL ) { WRFreeSelectImageInfo( sii ); } WRFreeWRInfo( info ); if( !ret ) { MessageBox( (HWND)NULL, "Error occurred!", "TEST WR", MB_ICONEXCLAMATION | MB_OK | MB_APPLMODAL ); } WRFini(); return( ret ); }