static void GetNewRegValue( HWND hwnd ) { HWND owner; DLGPROC fp; INT_PTR reg_modified; RegModifyData modify_data; const char *descript; unsigned max_descript; mad_type_info tinfo; mad_registers *regs; owner = GetParent( hwnd ); regs = RegListGetMadRegisters( owner ); modify_data.reg_set = RegListGetMadRegSetData( owner ); owner = GetParent( owner ); MADRegSetDisplayGetPiece( modify_data.reg_set, regs, GetDlgCtrlID( hwnd ), &descript, &max_descript, (const mad_reg_info **) (&( modify_data.curr_info )), &( modify_data.th ), &( modify_data.maxv ) ); MADTypeInfo( modify_data.curr_info->type, &tinfo ); modify_data.curr_value = alloca( tinfo.b.bits / BITS_PER_BYTE ); BitGet( modify_data.curr_value, (unsigned char *)regs, modify_data.curr_info->bit_start, modify_data.curr_info->bit_size); MADRegSetDisplayModify( modify_data.reg_set, modify_data.curr_info, (const mad_modify_list **)( &( modify_data.m_list ) ), &(modify_data.num_possible) ); switch( modify_data.num_possible ) { case 2: if( memcmp( modify_data.curr_value, modify_data.m_list[0].data, tinfo.b.bits / BITS_PER_BYTE ) == 0 ){ memcpy( modify_data.curr_value, modify_data.m_list[1].data, tinfo.b.bits / BITS_PER_BYTE ); }else { memcpy( modify_data.curr_value, modify_data.m_list[0].data, tinfo.b.bits / BITS_PER_BYTE ); } reg_modified = 1; break; case 1: fp = (DLGPROC)MakeProcInstance( ChangeRegisterDialog, Instance ); reg_modified = JDialogBoxParam( Instance, "CHANGE_REG_EDIT", owner, fp, (LPARAM)( &modify_data ) ); FreeProcInstance( fp ); break; default: fp = (DLGPROC)MakeProcInstance( ChangeRegisterDialog, Instance ); reg_modified = JDialogBoxParam( Instance, "CHANGE_REG_COMBO", owner, fp, (LPARAM)( &modify_data ) ); FreeProcInstance( fp ); } if( reg_modified == 1 ) { MADRegUpdateStart( regs, modify_data.curr_info->flags, modify_data.curr_info->bit_start, modify_data.curr_info->bit_size ); BitPut( (unsigned char *)regs, modify_data.curr_info->bit_start, modify_data.curr_value, modify_data.curr_info->bit_size ); MADRegUpdateEnd( regs, modify_data.curr_info->flags, modify_data.curr_info->bit_start, modify_data.curr_info->bit_size ); } }
bool WdeDisplayOptions( void ) { HWND dialog_owner; DLGPROC dlgproc; HINSTANCE app_inst; INT_PTR modified; WdeSetStatusText( NULL, " ", false ); WdeSetStatusByID( WDE_DISPLAYOPTIONS, 0 ); dialog_owner = WdeGetMainWindowHandle(); app_inst = WdeGetAppInstance(); dlgproc = MakeProcInstance_DLG( WdeOptionsDlgProc, app_inst ); modified = JDialogBoxParam( app_inst, "WdeOptions", dialog_owner, dlgproc, (LPARAM)NULL ); FreeProcInstance_DLG( dlgproc ); if( modified == -1 ) { WdeWriteTrail( "WdeDisplayOptions: Dialog not created!" ); return( FALSE ); } WdeSetStatusReadyText(); return( TRUE ); }
WRSelectImageInfo * WRAPI WRSelectImage( HWND parent, WRInfo *rinfo, FARPROC hcb ) { DLGPROC proc; HINSTANCE inst; INT_PTR modified; WRSelectImageInfo *info; if( rinfo == NULL ) { return( NULL ); } info = (WRSelectImageInfo *)MemAlloc( sizeof( WRSelectImageInfo ) ); if( info == NULL ) { return( NULL ); } memset( info, 0, sizeof( WRSelectImageInfo ) ); info->hcb = hcb; info->info = rinfo; inst = WRGetInstance(); proc = (DLGPROC)MakeProcInstance( (FARPROC)WRSelectImageProc, inst ); modified = JDialogBoxParam( inst, "WRSelectImage", parent, proc, (LPARAM)info ); FreeProcInstance( (FARPROC)proc ); if( modified == -1 || modified == IDCANCEL ) { MemFree( info ); info = NULL; } return( info ); }
bool WREQueryPasteReplace( WResID *name, uint_16 type, bool *replace ) { WREPasteData pdata; HWND dialog_owner; DLGPROC proc_inst; HINSTANCE inst; INT_PTR ret; if( name == NULL || type == 0 || replace == NULL ) { return( FALSE ); } pdata.ret = 0; pdata.type = type; pdata.name = name; *replace = FALSE; dialog_owner = WREGetMainWindowHandle(); inst = WREGetAppInstance(); proc_inst = (DLGPROC)MakeProcInstance( (FARPROC)WREResPasteProc, inst ); ret = JDialogBoxParam( inst, "WREPaste", dialog_owner, proc_inst, (LPARAM)&pdata ); FreeProcInstance( (FARPROC)proc_inst ); if( ret == -1 || ret == IDCANCEL ) { return( FALSE ); } if( ret == IDM_PASTE_REPLACE ) { *replace = TRUE; } return( TRUE ); }
Bool WdeSetCurrentCustControl( int which ) { int ret; HINSTANCE inst; FARPROC proc; if( WdeCustomLibList == NULL ) { WdeSetStatusByID( -1, WDE_NOCUSTLOADED ); return( TRUE ); } if( !WDE_CHECK_WHICH( which ) ) { WdeWriteTrail( "WdeSetCurrentCustControl: bad which!" ); return( FALSE ); } inst = WdeGetAppInstance(); proc = MakeProcInstance( (FARPROC)WdeSelectCustProc, inst ); if( proc == NULL ) { WdeWriteTrail( "WdeSetCurrentCustomControl: MakeProcInstance failed!" ); return( FALSE ); } ret = JDialogBoxParam( inst, "WdeSelectCustom", WdeGetMainWindowHandle(), (DLGPROC)proc, (LPARAM)(LPVOID)&which ); FreeProcInstance( proc ); /* if the window could not be created return FALSE */ if( ret == -1 ) { WdeWriteTrail( "WdeSetCurrentCustomControl: Could not create selection window!" ); return( FALSE ); } return( TRUE ); }
/* * HandleException */ int HandleException( DEBUG_EVENT *dbinfo ) { INT_PTR ret; RefreshCostlyInfo(); ret = JDialogBoxParam( Instance, "INTERRUPT", MainHwnd, ExceptionProc, (LPARAM)dbinfo ); return( ret ); }
void WdeDisplaySplashScreen( HINSTANCE inst, HWND parent, UINT msecs ) { FARPROC lpProcAbout; lpProcAbout = MakeProcInstance( (FARPROC)WdeSplash, hInstWde ); JDialogBoxParam( inst, "WdeSplashScreen", parent, (DLGPROC)lpProcAbout, (LPARAM)&msecs ); FreeProcInstance( lpProcAbout ); }
void AnotateLog( HWND hwnd, HANDLE Instance, void (*fn)(char *) ) { FARPROC fp; fp = MakeProcInstance( (FARPROC)NoteLogDlgProc, Instance ); JDialogBoxParam( Instance, "NOTE_LOG", hwnd, (DLGPROC)fp, (LPARAM)fn ); FreeProcInstance( fp ); }
/* * GetRetCode */ BOOL GetRetCode( HWND parent, RetCodeTypes type, DWORD id, DWORD *rc ) { RetCodeInfo info; info.type = type; info.id = id; info.rc = 0; JDialogBoxParam( Instance, "RET_CODE_DLG", parent, RetCodeDlgProc, (LPARAM)&info ); *rc = info.rc; return( info.really_kill ); }
BOOL WdeLoadMSCustomControls( WdeCustLib *lib ) { WdeCustInfoProc info_proc; WdeCustStyleProc style_proc; WdeCustFlagsProc flags_proc; HWND dialog_owner; FARPROC proc_inst; HINSTANCE app_inst; INT_PTR ok; dialog_owner = WdeGetMainWindowHandle(); app_inst = WdeGetAppInstance(); proc_inst = MakeProcInstance ( (FARPROC)WdeLoadCustProc, app_inst ); ok = JDialogBoxParam( app_inst, "WdeLoadCustom", dialog_owner, (DLGPROC)proc_inst, (LPARAM)(LPVOID)lib ); FreeProcInstance ( proc_inst ); if( ok == -1 ) { WdeWriteTrail( "WdeLoadMSCustomControls: Dialog not created!" ); return( FALSE ); } if( !ok ) { return( FALSE ); } if( !HIWORD( (uint_32)lib->info_name ) ) { if( !WdeQueryUnsafeMSLoad() ) { WdeWriteTrail( "WdeLoadMSCustomControls: User aborted unsafe load!" ); return( FALSE ); } } info_proc = (WdeCustInfoProc)GetProcAddress( lib->inst, lib->info_name ); style_proc = (WdeCustStyleProc)GetProcAddress ( lib->inst, lib->style_name ); flags_proc = (WdeCustFlagsProc)GetProcAddress ( lib->inst, lib->flags_name ); if( info_proc == NULL || style_proc == NULL || flags_proc == NULL ) { WdeWriteTrail( "WdeLoadMSCustomControls: Could not get proc address of ordinal!" ); return( FALSE ); } if( !WdeCreateAndAddCustControl( lib, info_proc, style_proc, flags_proc ) ) { WdeWriteTrail( "WdeLoadMSCustomControls: Control not added to list!" ); return( FALSE ); } WRMemValidate( lib ); return( TRUE ); }
bool WREQueryDeleteName( char *name ) { HWND dialog_owner; DLGPROC proc_inst; HINSTANCE app_inst; INT_PTR modified; dialog_owner = WREGetMainWindowHandle(); app_inst = WREGetAppInstance(); proc_inst = (DLGPROC)MakeProcInstance( (FARPROC)WREResDeleteProc, app_inst ); modified = JDialogBoxParam( app_inst, "WREDeleteResource", dialog_owner, proc_inst, (LPARAM)name ); FreeProcInstance( (FARPROC)proc_inst ); return( modified != -1 && modified == IDOK ); }
/* * logMemDump */ static void logMemDmp( ExceptDlgInfo *info ) { SelMemDlgInfo selinfo; DWORD i; char buf[150]; logPrintf( STR_PROCESS_MEM_DMP ); selinfo.list.allocated = 0; selinfo.list.used = 0; selinfo.list.data = NULL; selinfo.prochdl = info->procinfo->prochdl; RefreshMemList( info->procinfo->procid, info->procinfo->prochdl, &selinfo.list ); logStrPrintf( "%s\n\n", MEM_WALKER_HEADER ); for( i=0; i < selinfo.list.used; i++ ) { FormatMemListEntry( buf, selinfo.list.data[i] ); logStrPrintf( "%s\n", buf ); } JDialogBoxParam( Instance, "SEL_MEM_TO_DMP", NULL, MemDmpDlgProc, (LPARAM)&selinfo ); FreeMemList( &selinfo.list ); }
WRFileType WRAPI WRSelectFileType( HWND parent, const char *name, bool is32bit, bool use_wres, FARPROC hcb ) { DLGPROC proc; HINSTANCE inst; INT_PTR modified; WRSFT sft; WRFileType guess; guess = WRGuessFileType( name ); if( guess != WR_DONT_KNOW ) { return( guess ); } guess = educatedGuess( name, is32bit, use_wres ); if( guess != WR_DONT_KNOW ) { return( guess ); } sft.hcb = hcb; sft.file_name = name; sft.file_type = WR_DONT_KNOW; sft.is32bit = is32bit; sft.use_wres = use_wres; inst = WRGetInstance(); proc = (DLGPROC)MakeProcInstance( (FARPROC)WRSelectFileTypeProc, inst ); modified = JDialogBoxParam( inst, "WRSelectFileType", parent, proc, (LPARAM)&sft ); FreeProcInstance( (FARPROC)proc ); if( modified == -1 ) { return( WR_DONT_KNOW ); } return( sft.file_type ); }