Bool WREQuerySaveResOnDeleteRes( WREResInfo *res_info, Bool fatal_exit ) { int ret; UINT style; HWND frame; char *text; if( WRENoInterface ) { return( TRUE ); } if( res_info != NULL && WREIsResModified( res_info ) ) { if( fatal_exit ) { style = MB_YESNO | MB_APPLMODAL | MB_ICONEXCLAMATION; } else { style = MB_YESNOCANCEL | MB_APPLMODAL | MB_ICONEXCLAMATION; } WRECheckIfActiveWindow(); frame = WREGetMDIWindowHandle(); SendMessage( frame, WM_MDIRESTORE, (WPARAM)res_info->res_win, 0 ); SendMessage( frame, WM_MDIACTIVATE, (WPARAM)res_info->res_win, 0 ); text = WREAllocRCString( WRE_QUERYMODIFIED ); ret = MessageBox( res_info->res_win, text, WREGetQueryName( res_info ), style ); if( text != NULL ) { WREFreeRCString( text ); } if( ret == IDYES ) { return( WRESaveResource( res_info, FALSE ) ); } else if( ret == IDCANCEL ) { return( FALSE ); } } return( TRUE ); }
WREAccelSession *WREStartAccelSession( WRECurrentResInfo *curr ) { WREAccelSession *session; if( curr == NULL ) { return( NULL ); } session = WREAllocAccelSession(); if( session == NULL ) { return( NULL ); } session->info = WAccAllocAccelInfo(); if( session->info == NULL ) { return( NULL ); } session->info->parent = WREGetMainWindowHandle(); session->info->inst = WREGetAppInstance(); session->info->file_name = WREStrDup( WREGetQueryName( curr->info ) ); session->info->res_name = WRECopyWResID( &curr->res->Info.ResName ); session->info->lang = curr->lang->Info.lang; session->info->MemFlags = curr->lang->Info.MemoryFlags; session->info->data_size = curr->lang->Info.Length; session->info->data = curr->lang->data; session->info->is32bit = curr->info->is32bit; session->info->stand_alone = WRENoInterface; session->info->symbol_table = curr->info->symbol_table; session->info->symbol_file = curr->info->symbol_file; session->tnode = curr->type; session->rnode = curr->res; session->lnode = curr->lang; session->rinfo = curr->info; session->hndl = WAccelStartEdit( session->info ); if( session->hndl ) { WREInsertObject( &WREAccSessions, session ); } else { WAccFreeAccelInfo( session->info ); WRMemFree( session ); session = NULL; } return( session ); }
Bool WREQuerySaveSymOnDeleteRes( WREResInfo *res_info, Bool fatal_exit ) { int ret; UINT style; char *text; char *file; HWND frame; if( WRENoInterface ) { return( TRUE ); } if( res_info == NULL || res_info->symbol_table == NULL ) { return( TRUE ); } if( WRIsHashTableDirty( res_info->symbol_table ) ) { if( fatal_exit ) { style = MB_YESNO | MB_APPLMODAL | MB_ICONEXCLAMATION; } else { style = MB_YESNOCANCEL | MB_APPLMODAL | MB_ICONEXCLAMATION; } WRECheckIfActiveWindow(); frame = WREGetMDIWindowHandle(); SendMessage( frame, WM_MDIRESTORE, (WPARAM)res_info->res_win, 0 ); SendMessage( frame, WM_MDIACTIVATE, (WPARAM)res_info->res_win, 0 ); file = WREGetQueryName( res_info ); text = WREAllocRCString( WRE_SAVEMODIFIEDSYM ); ret = MessageBox( res_info->res_win, text, file, style ); if( text != NULL ) { WREFreeRCString( text ); } if( ret == IDYES ) { if( res_info->symbol_file == NULL ) { res_info->symbol_file = WRECreateSymName( file ); } if( !WRESaveSymbols( res_info->symbol_table, &res_info->symbol_file, FALSE ) ) { return( FALSE ); } } else if( ret == IDCANCEL ) { return( FALSE ); } } return( TRUE ); }