/* * deleteNodeData - delete the bitmaps, check for multiple icons, and free memory. */ static void deleteNodeData( img_node *node ) { img_node *next_icon; node->next = NULL; next_icon = node->nexticon; while( node != NULL ) { _wpi_deletebitmap( node->hxorbitmap ); _wpi_deletebitmap( node->handbitmap ); node->nexticon = NULL; node->hwnd = NULL; node->viewhwnd = NULL; node->num_of_images = 0; if( node->wrinfo != NULL ) { WRFreeWRInfo( node->wrinfo ); } MemFree( node ); node = next_icon; if( node != NULL ) { next_icon = node->nexticon; } } } /* deleteNodeData */
// We really should not reread the file but, alas, time demands // something a little less pristine. int WRRelinkInfo( WRInfo *info ) { char fn_path[_MAX_PATH]; WRInfo *tinfo; int ok; tinfo = NULL; ok = (info != NULL); if( ok ) { if( info->internal_filename != NULL ) { WRGetInternalRESName( info->save_name, fn_path ); } else { strcpy( fn_path, info->save_name ); } ok = WRCopyFileToTemp( info, fn_path ); } if( ok ) { tinfo = WRLoadResource( fn_path, info->save_type ); ok = (tinfo != NULL); } if( ok ) { ok = WRRelinkDir( info->dir, tinfo->dir ); } if( tinfo != NULL ) { WRFreeWRInfo( tinfo ); } return( ok ); }
void WREFreeResInfo ( WREResInfo *info ) { if ( info ) { if ( ( info->info_win != NULL ) && IsWindow ( info->info_win ) ) { DestroyWindow ( info->info_win ); } if ( ( info->res_win != NULL ) && IsWindow ( info->res_win ) ) { WREDestroyMDIWindow ( info->res_win ); } if ( info->info ) { WRFreeWRInfo ( info->info ); } if( info->symbol_table ) { WRFreeHashTable( info->symbol_table ); } if( info->symbol_file ) { WREMemFree( info->symbol_file ); } WREMemFree ( info ); } }
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 ); }