/* * ThreadCtlProc */ INT_PTR CALLBACK RetCodeDlgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { RetCodeInfo *info; WORD cmd; char buf[BUF_SIZE]; char *title; msg_id info_str_id; bool ret; ret = false; info = (RetCodeInfo *)GET_DLGDATA( hwnd ); switch( msg ) { case WM_INITDIALOG: info = (RetCodeInfo *)lparam; info->really_kill = FALSE; SET_DLGDATA( hwnd, lparam ); if( info->type == RETCD_THREAD ) { title = AllocRCString( STR_THREAD_RETURN_CODE ); info_str_id = STR_THREAD_X; } else { title = AllocRCString( STR_PROCESS_RETURN_CODE ); info_str_id = STR_PROCESS_X; } SetWindowText( hwnd, title ); FreeRCString( title ); RCsprintf( buf, info_str_id, info->type, info->id ); SetDlgItemText( hwnd, RET_PROC_INFO, buf ); SetDlgItemText( hwnd, RET_VALUE, "-1" ); ret = true; break; case WM_COMMAND: cmd = LOWORD( wparam ); switch( cmd ) { case IDOK: GetDlgItemText( hwnd, RET_VALUE, buf, BUF_SIZE ); if( !ParseNumeric( buf, TRUE, &info->rc ) ) { RCMessageBox( hwnd, STR_INVALID_RETURN_CODE, AppName, MB_OK | MB_ICONEXCLAMATION ); break; } info->really_kill = TRUE; SendMessage( hwnd, WM_CLOSE, 0, 0L ); break; case IDCANCEL: SendMessage( hwnd, WM_CLOSE, 0, 0L ); break; } ret = true; break; case WM_CLOSE: EndDialog( hwnd, 0 ); ret = true; break; } return( ret ); }
LRESULT CALLBACK WREResInfoProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { WREResInfo *info; LRESULT ret; WORD wp; UINT cmd; ret = FALSE; switch( message ) { case WM_INITDIALOG: info = (WREResInfo *)lParam; info->info_win = hDlg; SET_DLGDATA( hDlg, (LONG_PTR)info ); if( !WREInitResourceWindow( info, 0 ) ) { DestroyWindow( hDlg ); } else { ret = TRUE; } break; case WM_SYSCOLORCHANGE: #if defined( __NT__ ) SET_HBRBACKGROUND( hDlg, (HBRUSH)(COLOR_BTNFACE + 1) ); #endif WRECtl3dColorChange(); break; case WM_COMMAND: wp = LOWORD( wParam ); switch( wp ) { case IDM_RNRES: cmd = GET_WM_COMMAND_CMD( wParam, lParam ); if( cmd == LBN_DBLCLK ) { WREHandleResEdit(); } break; case IDM_RNTYPE: info = (WREResInfo *)GET_DLGDATA( hDlg ); cmd = GET_WM_COMMAND_CMD( wParam, lParam ); if( cmd == LBN_SELCHANGE ) { WREAddResNames( info ); } break; } break; } return( ret ); }
BOOL CALLBACK WREResPasteProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { WREPasteData *pdata; BOOL ret; ret = FALSE; switch( message ) { case WM_INITDIALOG: pdata = (WREPasteData *)lParam; SET_DLGDATA( hDlg, pdata ); WRESetPasteInfo( hDlg, pdata ); ret = TRUE; break; case WM_SYSCOLORCHANGE: WRECtl3dColorChange(); break; case WM_COMMAND: switch( LOWORD( wParam ) ) { case IDM_PASTE_RENAME: case IDM_PASTE_REPLACE: pdata = (WREPasteData *)GET_DLGDATA( hDlg ); EndDialog( hDlg, LOWORD( wParam ) ); ret = TRUE; break; case IDCANCEL: EndDialog( hDlg, IDCANCEL ); ret = TRUE; break; } } return( ret ); }
/* * ThreadCtlProc */ BOOL CALLBACK ThreadCtlProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { WORD cmd; ThreadCtlInfo *info; LRESULT index; char buf[200]; DWORD threadid; ThreadNode *thread; ProcNode *process; DWORD susp_cnt; DWORD rc; char *action; info = (ThreadCtlInfo *)GET_DLGDATA( hwnd ); switch( msg ) { case WM_INITDIALOG: info = MemAlloc( sizeof( ThreadCtlInfo ) ); if( !GetProcessInfo( lparam, &info->procinfo ) ) { RCsprintf( buf, STR_CANT_GET_PROC_INFO, info->procid ); MessageBox( hwnd, buf, AppName, MB_OK | MB_ICONEXCLAMATION ); SendMessage( hwnd, WM_CLOSE, 0, 0 ); } info->procid = lparam; ThreadDlg = hwnd; SET_DLGDATA( hwnd, info ); fillThreadCtl( hwnd, &info->procinfo, buf ); RCsprintf( buf, STR_THREAD_4_PROC_X, lparam ); SetDlgItemText( hwnd, THREAD_PROC_NAME, buf ); sprintf( buf, "(%s)", info->procinfo.name ); SetDlgItemText( hwnd, THREAD_PROC_PATH, buf ); SendDlgItemMessage( hwnd, THREAD_LIST, LB_SETCURSEL, 0, 0L ); index = SendDlgItemMessage( hwnd, THREAD_LIST, LB_GETCURSEL, 0, 0L ); if( index != LB_ERR ) { enableChoices( hwnd, TRUE ); } fillThreadInfo( hwnd, &info->procinfo ); break; case WM_COMMAND: cmd = LOWORD( wparam ); if( cmd == THREAD_SUSPEND || cmd == THREAD_RESUME || cmd == THREAD_KILL || cmd == THREAD_SET_PRIORITY ) { index = SendDlgItemMessage( hwnd, THREAD_LIST, LB_GETCURSEL, 0, 0L ); if( index == LB_ERR ) { RCMessageBox( hwnd, STR_NO_SELECTED_THREAD, AppName, MB_OK | MB_ICONEXCLAMATION ); break; } SendDlgItemMessage( hwnd, THREAD_LIST, LB_GETTEXT, (WPARAM)index, (LPARAM)(LPSTR)buf ); threadid = getThreadId( buf ); process = FindProcess( info->procinfo.pid ); thread = FindThread( process, threadid ); } switch( cmd ) { case IDOK: SendMessage( hwnd, WM_CLOSE, 0, 0L ); break; case THREAD_REFRESH: RefreshInfo(); if( GetProcessInfo( info->procid, &info->procinfo ) ) { fillThreadCtl( hwnd, &info->procinfo, buf ); fillThreadInfo( hwnd, &info->procinfo ); } else { action = AllocRCString( STR_REFRESH ); RCMessageBox( hwnd, STR_CANT_REFRESH_THRD, action, MB_OK | MB_ICONEXCLAMATION ); FreeRCString( action ); } break; case THREAD_SUSPEND: action = AllocRCString( STR_THREAD_SUSPEND ); if( thread == NULL ) { RCsprintf( buf, STR_CANT_GET_HDL_4_THD_X, threadid ); MessageBox( hwnd, buf, action, MB_OK | MB_ICONEXCLAMATION ); } else { susp_cnt = SuspendThread( thread->threadhdl ); if( susp_cnt == -1 ) { RCsprintf( buf, STR_CANT_SUSPEND_THRD_X, threadid ); MessageBox( hwnd, buf, action, MB_ICONQUESTION | MB_OK ); } else if( susp_cnt > 0 ) { RCsprintf( buf, STR_THREAD_ALREADY_SUSP, threadid, susp_cnt ); index = MessageBox( hwnd, buf, action, MB_ICONQUESTION | MB_YESNO ); if( index == IDNO ) { ResumeThread( thread->threadhdl ); } } SendMessage( hwnd, WM_COMMAND, THREAD_REFRESH, 0L ); } FreeRCString( action ); break; case THREAD_RESUME: action = AllocRCString( STR_RESUME ); if( thread == NULL ) { RCsprintf( buf, STR_THREAD_NOT_RESUMED , threadid ); MessageBox( hwnd, buf, action, MB_OK | MB_ICONEXCLAMATION ); } else { susp_cnt = ResumeThread( thread->threadhdl ); if( susp_cnt == -1 ) { RCsprintf( buf, STR_CANT_RESUME_THRD_X, threadid ); MessageBox( hwnd, buf, action, MB_ICONEXCLAMATION | MB_OK ); } else if( susp_cnt == 0 ) { RCsprintf( buf, STR_THRD_IS_NOT_SUSP, threadid ); MessageBox( hwnd, buf, action, MB_ICONEXCLAMATION | MB_OK ); } else if( susp_cnt > 1 ) { RCsprintf( buf, STR_SUSP_COUNT_DECREMENTED, threadid, susp_cnt ); MessageBox( hwnd, buf, action, MB_ICONEXCLAMATION | MB_OK ); } SendMessage( hwnd, WM_COMMAND, THREAD_REFRESH, 0L ); } FreeRCString( action ); break; case THREAD_KILL: action = AllocRCString( STR_KILL ); if( thread == NULL ) { RCsprintf( buf, STR_THRD_NOT_TERMINATED, threadid ); MessageBox( hwnd, buf, action, MB_OK | MB_ICONEXCLAMATION ); } else if( GetRetCode( hwnd, RETCD_THREAD, thread->threadid, &rc ) ) { if( !TerminateThread( thread->threadhdl, rc ) ) { RCsprintf( buf, STR_CANT_KILL_THRD_X, threadid ); MessageBox( hwnd, buf, action, MB_OK | MB_ICONEXCLAMATION ); } SendMessage( hwnd, WM_COMMAND, THREAD_REFRESH, 0L ); } FreeRCString( action ); break; case THREAD_SET_PRIORITY: // { // ThreadPriorityInfo prinfo; // // if( thread == NULL ) { // sprintf( buf, "Unable to get a handle for thread %08X.\n", // threadid ); // MessageBox( hwnd, buf, "Set Priority", // MB_OK | MB_ICONEXCLAMATION ); // } else { // prinfo.procid = info->procid; // prinfo.thread = thread; // prinfo.priority = GetThreadPriority( thread->threadhdl ); // prinfo.procinfo = &info->procinfo; // DialogBoxParam( Instance, "THREAD_PRIORITY_DLG", hwnd, // ThreadPriorityDlgProc, (DWORD)&prinfo ); // fillThreadInfo( hwnd, &info->procinfo ); // } // } // break; case THREAD_LIST: if( HIWORD( wparam ) == LBN_SELCHANGE ) { fillThreadInfo( hwnd, &info->procinfo ); } break; } break; case DR_TASK_LIST_CHANGE: /* make sure this process still exists */ //here if( FindProcess( info->procid ) == NULL ) { //here SendDlgItemMessage( hwnd, THREAD_LIST, LB_RESETCONTENT, 0, 0L ); //here enableChoices( hwnd, FALSE ); //here info->proc = NULL; //here } else { //here fillThreadCtl( hwnd, info->proc, buf ); //here } break; case WM_CLOSE: EndDialog( hwnd, 0 ); break; case WM_DESTROY: MemFree( info ); ThreadDlg = NULL; break; default: return( FALSE ); } return( TRUE ); }
/* * ThreadCtlProc */ INT_PTR CALLBACK ThreadPriorityDlgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { WORD cmd; ThreadPriorityInfo *info; char buf[100]; bool ret; info = (ThreadPriorityInfo *)GET_DLGDATA( hwnd ); switch( msg ) { case WM_INITDIALOG: info = (ThreadPriorityInfo *)lparam; sprintf( buf, "pid = %08lX (%s)", info->procid, info->procinfo->name ); SetDlgItemText( hwnd, PRIORITY_INFO, buf ); sprintf( buf, "tid = %08lX", info->thread->threadid ); SetDlgItemText( hwnd, PRIORITY_PATH, buf ); switch( info->priority ) { case THREAD_PRIORITY_IDLE: CheckDlgButton( hwnd, PRIORITY_IDLE, BST_CHECKED ); break; case THREAD_PRIORITY_LOWEST: CheckDlgButton( hwnd, PRIORITY_LOWEST, BST_CHECKED ); break; case THREAD_PRIORITY_BELOW_NORMAL: CheckDlgButton( hwnd, PRIORITY_BELOW_NORMAL, BST_CHECKED ); break; case THREAD_PRIORITY_NORMAL: CheckDlgButton( hwnd, PRIORITY_NORMAL, BST_CHECKED ); break; case THREAD_PRIORITY_ABOVE_NORMAL: CheckDlgButton( hwnd, PRIORITY_ABOVE_NORMAL, BST_CHECKED ); break; case THREAD_PRIORITY_HIGHEST: CheckDlgButton( hwnd, PRIORITY_HIGHEST, BST_CHECKED ); break; case THREAD_PRIORITY_TIME_CRITICAL: CheckDlgButton( hwnd, PRIORITY_TIME_CRITICAL, BST_CHECKED ); break; } SET_DLGDATA( hwnd, lparam ); ret = true; break; case WM_COMMAND: cmd = LOWORD( wparam ); switch( cmd ) { case IDOK: if( IsDlgButtonChecked( hwnd, PRIORITY_IDLE ) ) { ret = SetThreadPriority( info->thread->threadhdl, THREAD_PRIORITY_IDLE ) != 0; } else if( IsDlgButtonChecked( hwnd, PRIORITY_LOWEST ) ) { ret = SetThreadPriority( info->thread->threadhdl, THREAD_PRIORITY_LOWEST ) != 0; } else if( IsDlgButtonChecked( hwnd, PRIORITY_BELOW_NORMAL ) ) { ret = SetThreadPriority( info->thread->threadhdl, THREAD_PRIORITY_BELOW_NORMAL ) != 0; } else if( IsDlgButtonChecked( hwnd, PRIORITY_NORMAL ) ) { ret = SetThreadPriority( info->thread->threadhdl, THREAD_PRIORITY_NORMAL ) != 0; } else if( IsDlgButtonChecked( hwnd, PRIORITY_ABOVE_NORMAL ) ) { ret = SetThreadPriority( info->thread->threadhdl, THREAD_PRIORITY_ABOVE_NORMAL ) != 0; } else if( IsDlgButtonChecked( hwnd, PRIORITY_HIGHEST ) ) { ret = SetThreadPriority( info->thread->threadhdl, THREAD_PRIORITY_HIGHEST ) != 0; } else if( IsDlgButtonChecked( hwnd, PRIORITY_TIME_CRITICAL ) ) { ret = SetThreadPriority( info->thread->threadhdl, THREAD_PRIORITY_TIME_CRITICAL ) != 0; } if( !ret ) { RCMessageBox( hwnd, STR_CANT_SET_THREAD_PRI, AppName, MB_OK | MB_ICONEXCLAMATION ); } SendMessage( hwnd, WM_CLOSE, 0, 0L ); break; case IDCANCEL: SendMessage( hwnd, WM_CLOSE, 0, 0L ); break; } ret = true; break; case WM_CLOSE: EndDialog( hwnd, 0 ); ret = true; break; } return( ret ); }
WINEXPORT BOOL CALLBACK WMenuEditProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { WMenuEditInfo *einfo; HWND win; RECT r; POINT p; LRESULT ret; WORD wp, cmd; ret = FALSE; einfo = (WMenuEditInfo *)GET_DLGDATA( hDlg ); switch( message ) { case WM_INITDIALOG: einfo = (WMenuEditInfo *)lParam; einfo->edit_dlg = hDlg; SET_DLGDATA( hDlg, (LONG_PTR)einfo ); WRAddSymbolsToComboBox( einfo->info->symbol_table, hDlg, IDM_MENUEDID, WR_HASHENTRY_ALL ); ret = TRUE; break; case WM_SYSCOLORCHANGE: WCtl3dColorChange(); break; #if 0 #ifdef __NT__ case WM_CTLCOLORBTN: case WM_CTLCOLORDLG: case WM_CTLCOLOREDIT: case WM_CTLCOLORLISTBOX: case WM_CTLCOLORMSGBOX: case WM_CTLCOLORSCROLLBAR: case WM_CTLCOLORSTATIC: #else case WM_CTLCOLOR: #endif return( (LRESULT)WCtl3dCtlColorEx( message, wParam, lParam ) ); #endif case WM_LBUTTONDBLCLK: case WM_RBUTTONDBLCLK: case WM_RBUTTONUP: MAKE_POINT( p, lParam ); win = GetDlgItem( hDlg, IDM_MENUEDRNAME ); GetWindowRect( win, &r ); MapWindowPoints( HWND_DESKTOP, hDlg, (POINT *)&r, 2 ); if( PtInRect( &r, p ) ) { WHandleRename( einfo ); } ret = TRUE; break; case WM_SETFOCUS: if( einfo != NULL && einfo->preview_window != (HWND)NULL ) { SendMessage( einfo->preview_window, WM_NCACTIVATE, (WPARAM)TRUE, (LPARAM)NULL ); } break; #if 0 case WM_PARENTNOTIFY: cmd = GET_WM_PARENTNOTIFY_EVENT( wParam, lParam ); switch( cmd ) { case WM_LBUTTONDOWN: case WM_RBUTTONDOWN: MAKE_POINT( p, lParam ); win = GetDlgItem( hDlg, IDM_MENUEDLIST ); GetClientRect( win, &r ); MapWindowPoints( win, hDlg, (POINT *)&r, 2 ); if( PtInRect( &r, p ) ) { WHandleSelChange( einfo ); } break; } ret = TRUE; break; #endif case WM_COMMAND: wp = LOWORD( wParam ); cmd = GET_WM_COMMAND_CMD( wParam, lParam ); switch( wp ) { case IDM_MENUEDGRAYED: if( IsDlgButtonChecked( hDlg, wp ) ) { CheckDlgButton( hDlg, IDM_MENUEDINACTIVE, 0 ); } break; case IDM_MENUEDINACTIVE: if( IsDlgButtonChecked( hDlg, wp ) ) { CheckDlgButton( hDlg, IDM_MENUEDGRAYED, 0 ); } break; #if 0 case IDM_MENUEDID: if( cmd == CBN_SELCHANGE ) { einfo->combo_change = TRUE; WHandleSelChange( einfo ); einfo->combo_change = FALSE; } break; #endif case IDM_MENUEDINSERT: WInsertNew( einfo ); break; case IDM_MENUEDCHANGE: WDoHandleSelChange( einfo, TRUE, FALSE ); break; case IDM_MENUEDRESET: WDoHandleSelChange( einfo, FALSE, TRUE ); break; case IDM_MENUEDSHIFTLEFT: WShiftEntry( einfo, TRUE ); break; case IDM_MENUEDSHIFTRIGHT: WShiftEntry( einfo, FALSE ); break; case IDM_MENUEDLIST: if( cmd == LBN_SELCHANGE ) { WHandleSelChange( einfo ); } break; case IDM_MENUEDSETMENU: if( einfo->menu != NULL && einfo->menu->first_entry != NULL ) { WHandleSelChange( einfo ); } else { WInsertNew( einfo ); } break; } break; } return( ret ); }
WINEXPORT BOOL CALLBACK WdeSplash( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { UINT msecs, timer, start; HDC dc, tdc; HBITMAP old; HWND w666; RECT rect, arect; PAINTSTRUCT ps; #ifdef __NT__ HINSTANCE hInstUser; PFNLI pfnLoadImage; #endif static BITMAP bm; static HBITMAP logo; static HBRUSH brush; static COLORREF color; switch( message ) { case WM_SYSCOLORCHANGE: WdeCtl3dColorChange(); break; case WM_DESTROY: if( logo ) { DeleteObject( logo ); } if( brush ) { DeleteObject( brush ); } break; case WM_INITDIALOG: msecs = *(UINT *)lParam; if( msecs ) { timer = SetTimer( hDlg, ABOUT_TIMER, msecs, NULL ); if( timer ) { SET_DLGDATA( hDlg, (LONG)timer ); } } #ifdef __NT__ hInstUser = GetModuleHandle( "USER32.DLL" ); pfnLoadImage = (PFNLI)GetProcAddress( hInstUser, "LoadImageA" ); if( pfnLoadImage != NULL ) { logo = pfnLoadImage( hInstWde, "AboutLogo", IMAGE_BITMAP, 0, 0, LR_LOADMAP3DCOLORS ); } else { #endif logo = LoadBitmap( hInstWde, "AboutLogo" ); #ifdef __NT__ } #endif #if 0 color = GetSysColor( COLOR_BTNFACE ); color = RGB( 128, 128, 128 ); #endif color = GetSysColor( COLOR_BTNFACE ); brush = CreateSolidBrush( color ); GetObject( logo, sizeof( BITMAP ), &bm ); return( TRUE ); #if 0 #ifdef __NT__ case WM_CTLCOLORSTATIC: if( brush != NULL ) { dc = (HDC)wParam; SetBkColor( dc, color ); return( (LRESULT)brush ); } break; #else case WM_CTLCOLOR: if( brush != NULL ) { dc = (HDC)wParam; if( HIWORD( lParam ) == CTLCOLOR_STATIC ) { SetBkColor( dc, color ); } return( (LRESULT)brush ); } break; #endif case WM_ERASEBKGND: if( brush != NULL ) { GetClientRect( hDlg, &rect ); UnrealizeObject( brush ); FillRect( (HDC)wParam, &rect, brush ); return( TRUE ); } break; #endif case WM_PAINT: dc = BeginPaint( hDlg, &ps ); if( dc != NULL ) { w666 = GetDlgItem( hDlg, 666 ); GetClientRect( w666, &rect ); GetClientRect( hDlg, &arect ); start = (arect.right - arect.left - bm.bmWidth) / 2; MapWindowPoints( w666, hDlg, (POINT *)&rect, 2 ); tdc = CreateCompatibleDC( dc ); old = SelectObject( tdc, logo ); BitBlt( dc, start, rect.top + 20, bm.bmWidth, bm.bmHeight, tdc, 0, 0, SRCCOPY ); SelectObject( tdc, old ); DeleteDC( tdc ); EndPaint( hDlg, &ps ); } break; case WM_TIMER: timer = (UINT)GET_DLGDATA( hDlg ); if( timer ) { KillTimer( hDlg, timer ); } EndDialog( hDlg, TRUE ); return( TRUE ); } return( FALSE ); }
WINEXPORT BOOL CALLBACK WAcccelEditProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { WAccelEditInfo *einfo; HWND win; RECT r; POINT p; BOOL ret; WORD wp; WORD cmd; ret = FALSE; einfo = (WAccelEditInfo *)GET_DLGDATA( hDlg ); switch( message ) { case WM_INITDIALOG: einfo = (WAccelEditInfo *)lParam; einfo->edit_dlg = hDlg; SET_DLGDATA( hDlg, einfo ); WRAddSymbolsToComboBox( einfo->info->symbol_table, hDlg, IDM_ACCEDCMDID, WR_HASHENTRY_ALL ); ret = TRUE; break; case WM_SYSCOLORCHANGE: WCtl3dColorChange(); break; #if 0 #ifdef __NT__ case WM_CTLCOLORBTN: case WM_CTLCOLORDLG: case WM_CTLCOLOREDIT: case WM_CTLCOLORLISTBOX: case WM_CTLCOLORMSGBOX: case WM_CTLCOLORSCROLLBAR: case WM_CTLCOLORSTATIC: #else case WM_CTLCOLOR: #endif return( WCtl3dCtlColorEx( message, wParam, lParam ) ); #endif case WM_LBUTTONDBLCLK: case WM_RBUTTONDBLCLK: case WM_RBUTTONUP: MAKE_POINT( p, lParam ); win = GetDlgItem( hDlg, IDM_ACCEDRNAME ); GetClientRect( win, &r ); MapWindowPoints( win, hDlg, (POINT *)&r, 2 ); if( PtInRect( &r, p ) ) { WHandleRename( einfo ); } ret = TRUE; break; #if 0 case WM_PARENTNOTIFY: cmd = GET_WM_PARENTNOTIFY_EVENT( wParam, lParam ); switch( cmd ) { case WM_LBUTTONDOWN: case WM_RBUTTONDOWN: MAKE_POINT( p, lParam ); win = GetDlgItem( hDlg, IDM_ACCEDLIST ); GetWindowRect( win, &r ); MapWindowPoints( HWND_DESKTOP, hDlg, (POINT *)&r, 2 ); if( PtInRect( &r, p ) ) { WHandleSelChange( einfo ); } break; } ret = TRUE; break; #endif case WM_COMMAND: wp = LOWORD( wParam ); cmd = GET_WM_COMMAND_CMD( wParam, lParam ); switch( wp ) { case IDM_ACCEDINSERT: WInsertAccelEntry( einfo ); break; case IDM_ACCEDCHANGE: WHandleChange( einfo ); break; case IDM_ACCEDRESET: WDoHandleSelChange( einfo, FALSE, TRUE ); break; case IDM_ACCEDSETACC: if( einfo->tbl != NULL && einfo->tbl->num != 0 ) { WHandleSelChange( einfo ); } else { WInsertAccelEntry( einfo ); } break; #if 0 case IDM_ACCEDCMDID: if( cmd == CBN_SELCHANGE ) { einfo->combo_change = TRUE; WHandleSelChange( einfo ); einfo->combo_change = FALSE; } break; #endif case IDM_ACCEDLIST: if( cmd == LBN_SELCHANGE ) { WHandleSelChange( einfo ); } break; case IDM_ACCEDVIRT: case IDM_ACCEDASCII: if( cmd == BN_CLICKED ) { WSetVirtKey( hDlg, wp == IDM_ACCEDVIRT ); } break; } break; } return( ret ); }
WINEXPORT BOOL CALLBACK WRSelectImageProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { WRSelectImageInfo *info; BOOL ret; ret = FALSE; switch( message ) { case WM_DESTROY: WRUnregisterDialog( hDlg ); break; case WM_INITDIALOG: info = (WRSelectImageInfo *)lParam; if( info == NULL ) { EndDialog( hDlg, FALSE ); } SET_DLGDATA( hDlg, (LONG_PTR)info ); WRRegisterDialog( hDlg ); if( !WRSetWinInfo( hDlg, info ) ) { EndDialog( hDlg, FALSE ); } ret = TRUE; break; case WM_SYSCOLORCHANGE: WRCtl3dColorChange(); break; case WM_COMMAND: info = (WRSelectImageInfo *)GET_DLGDATA( hDlg ); switch( LOWORD( wParam ) ) { case IDM_SELIMGHELP: if( info != NULL && info->hcb != NULL ) { (*info->hcb)(); } break; case IDOK: if( info == NULL ) { EndDialog( hDlg, FALSE ); ret = TRUE; } else if( WRGetWinInfo( hDlg, info ) ) { EndDialog( hDlg, TRUE ); ret = TRUE; } break; case IDCANCEL: EndDialog( hDlg, FALSE ); ret = TRUE; break; case IDM_SELIMGBMP: if( GET_WM_COMMAND_CMD( wParam, lParam ) != BN_CLICKED ) { break; } if( info->type != (uint_16)(pointer_int)RT_BITMAP ) { info->type = (uint_16)(pointer_int)RT_BITMAP; WRSetEntries( hDlg, info ); } break; case IDM_SELIMGCUR: if( GET_WM_COMMAND_CMD( wParam, lParam ) != BN_CLICKED ) { break; } if( info->type != (uint_16)(pointer_int)RT_GROUP_CURSOR ) { info->type = (uint_16)(pointer_int)RT_GROUP_CURSOR; WRSetEntries( hDlg, info ); } break; case IDM_SELIMGICO: if( GET_WM_COMMAND_CMD( wParam, lParam ) != BN_CLICKED ) { break; } if( info->type != (uint_16)(pointer_int)RT_GROUP_ICON ) { info->type = (uint_16)(pointer_int)RT_GROUP_ICON; WRSetEntries( hDlg, info ); } break; } break; } return( ret ); }
WINEXPORT BOOL CALLBACK WRSelectFileTypeProc( HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam ) { WRSFT *sft; BOOL ret; ret = FALSE; switch( message ) { case WM_DESTROY: WRUnregisterDialog( hDlg ); break; case WM_INITDIALOG: sft = (WRSFT *)lParam; SET_DLGDATA( hDlg, sft ); WRRegisterDialog( hDlg ); WRSetWinInfo( hDlg, sft ); ret = TRUE; break; case WM_SYSCOLORCHANGE: WRCtl3dColorChange(); break; case WM_COMMAND: switch( LOWORD( wParam ) ) { case IDM_SFTHELP: sft = (WRSFT *)GET_DLGDATA( hDlg ); if( sft != NULL && sft->hcb != NULL ) { (*(void (*)(void))sft->hcb)(); } break; case IDOK: sft = (WRSFT *)GET_DLGDATA( hDlg ); if( sft == NULL ) { EndDialog( hDlg, FALSE ); ret = TRUE; } else if( WRGetWinInfo( hDlg, sft ) ) { EndDialog( hDlg, TRUE ); ret = TRUE; } else { WRDisplayErrorMsg( WR_INVALIDSELECTION ); } break; case IDCANCEL: EndDialog( hDlg, FALSE ); ret = TRUE; break; case IDM_TSWINNT: if( GET_WM_COMMAND_CMD( wParam, lParam ) != BN_CLICKED ) { break; } if( !IsDlgButtonChecked( hDlg, IDM_FTRES ) ) { break; } if( IsDlgButtonChecked( hDlg, LOWORD( wParam ) ) ) { EnableWindow( GetDlgItem( hDlg, IDM_RFMS ), FALSE ); CheckDlgButton( hDlg, IDM_RFMS, BST_UNCHECKED ); CheckDlgButton( hDlg, IDM_RFWAT, BST_CHECKED ); } else { EnableWindow( GetDlgItem( hDlg, IDM_RFMS ), TRUE ); } break; case IDM_TSWIN: if( GET_WM_COMMAND_CMD( wParam, lParam ) != BN_CLICKED ) { break; } if( !IsDlgButtonChecked( hDlg, IDM_FTRES ) ) { break; } if( IsDlgButtonChecked( hDlg, LOWORD( wParam ) ) ) { EnableWindow( GetDlgItem( hDlg, IDM_RFMS ), TRUE ); } break; case IDM_FTEXE: case IDM_FTDLL: if( GET_WM_COMMAND_CMD( wParam, lParam ) != BN_CLICKED ) { break; } if( IsDlgButtonChecked( hDlg, LOWORD( wParam ) ) ) { EnableWindow( GetDlgItem( hDlg, IDM_RFWAT ), FALSE ); EnableWindow( GetDlgItem( hDlg, IDM_RFMS ), FALSE ); CheckDlgButton( hDlg, IDM_RFWAT, BST_UNCHECKED ); CheckDlgButton( hDlg, IDM_RFMS, BST_UNCHECKED ); } break; case IDM_FTRES: if( GET_WM_COMMAND_CMD( wParam, lParam ) != BN_CLICKED ) { break; } if( IsDlgButtonChecked( hDlg, LOWORD( wParam ) ) ) { EnableWindow( GetDlgItem( hDlg, IDM_RFWAT ), TRUE ); if( IsDlgButtonChecked( hDlg, IDM_TSWINNT ) ) { EnableWindow( GetDlgItem( hDlg, IDM_RFMS ), FALSE ); CheckDlgButton( hDlg, IDM_RFMS, BST_UNCHECKED ); CheckDlgButton( hDlg, IDM_RFWAT, BST_CHECKED ); } else { EnableWindow( GetDlgItem( hDlg, IDM_RFMS ), TRUE ); CheckDlgButton( hDlg, IDM_RFMS, BST_UNCHECKED ); CheckDlgButton( hDlg, IDM_RFWAT, BST_CHECKED ); } } break; } break; } return( ret ); }
UINT_PTR CALLBACK AddSrcDlgProc95( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { WORD cmd; int item; LRESULT rc; HWND ctl; HWND dlg; GetFilesInfo *info; lparam = lparam; switch( msg ) { case WM_INITDIALOG: { OPENFILENAME *of; of = (OPENFILENAME *)lparam; ctl = GetDlgItem( hwnd, FOD_REMOVE ); EnableWindow( ctl, FALSE ); dlg = GetParent( hwnd ); SendMessage( dlg, CDM_SETCONTROLTEXT, IDOK, (LPARAM)"&Add" ); SET_DLGDATA( hwnd, of->lCustData ); info = (GetFilesInfo *)of->lCustData; info->filter_index = of->nFilterIndex; info->filter = of->lpstrFilter; initFileList( hwnd ); } break; case WM_COMMAND: cmd = LOWORD( wparam ); switch( cmd ) { case FOD_ADD: addCurrentFile95( hwnd ); return( TRUE ); case FOD_ADDALL: addAllFiles95( hwnd ); break; case FOD_REMOVE: ctl = GetDlgItem( hwnd, FOD_FILELIST ); item = (int)SendMessage( ctl, LB_GETCURSEL, 0, 0 ); if( item != LB_ERR ) { rc = SendMessage( ctl, LB_DELETESTRING, item, 0 ); if( item != 0 ) { SendMessage( ctl, LB_SETCURSEL, item - 1, 0 ); } else { SendMessage( ctl, LB_SETCURSEL, item, 0 ); } } checkRemoveButton( hwnd ); break; case FOD_FILELIST: if( GET_WM_COMMAND_CMD( wparam, lparam ) == LBN_SELCHANGE || GET_WM_COMMAND_CMD( wparam, lparam ) == LBN_SELCANCEL ) { checkRemoveButton( hwnd ); } break; case FOD_CLOSE: GetResults( hwnd ); info = (GetFilesInfo *)GET_DLGDATA( hwnd ); info->ret_code = IDOK; PostMessage( GetParent( hwnd ), WM_COMMAND, IDCANCEL, 0L ); return( TRUE ); case IDCANCEL: info = (GetFilesInfo *)GET_DLGDATA( hwnd ); info->ret_code = IDCANCEL; PostMessage( GetParent( hwnd ), WM_COMMAND, IDCANCEL, 0L ); return( TRUE ); default: return( FALSE ); } break; case WM_NOTIFY: switch( ((NMHDR *)lparam)->code ) { case CDN_FILEOK: PostMessage( hwnd, WM_COMMAND, FOD_ADD, 0L ); SET_DLGRESULT( hwnd, 1L ); return( TRUE ); case CDN_TYPECHANGE: info = (GetFilesInfo *)GET_DLGDATA( hwnd ); info->filter_index = ((OFNOTIFY *)lparam)->lpOFN->nFilterIndex; break; } break; default: return( FALSE ); } return( TRUE ); }
UINT_PTR CALLBACK AddSrcDlgProc( HWND hwnd, UINT msg, WPARAM wparam, LPARAM lparam ) { WORD cmd; int item; LRESULT rc; HWND ctl; lparam = lparam; switch( msg ) { case WM_INITDIALOG: { OPENFILENAME *of; ctl = GetDlgItem( hwnd, FOD_REMOVE ); EnableWindow( ctl, FALSE ); ctl = GetDlgItem( hwnd, IDOK ); EnableWindow( ctl, FALSE ); of = (OPENFILENAME *)lparam; SET_DLGDATA( hwnd, of->lCustData ); initFileList( hwnd ); } break; case WM_COMMAND: cmd = LOWORD( wparam ); switch( cmd ) { case FOD_FILES: if( GET_WM_COMMAND_CMD( wparam, lparam ) == LBN_DBLCLK ) { addCurrentFile( hwnd ); return( TRUE ); } else { return( FALSE ); } case IDOK: return( FALSE ); case FOD_ADD: addCurrentFile( hwnd ); PostMessage( hwnd, WM_COMMAND, IDOK, 0 ); return( TRUE ); case FOD_ADDALL: addAllFiles( hwnd ); break; case FOD_REMOVE: ctl = GetDlgItem( hwnd, FOD_FILELIST ); item = (int)SendMessage( ctl, LB_GETCURSEL, 0, 0 ); if( item != LB_ERR ) { rc = SendMessage( ctl, LB_DELETESTRING, item, 0 ); if( item != 0 ) { SendMessage( ctl, LB_SETCURSEL, item - 1, 0 ); } else { SendMessage( ctl, LB_SETCURSEL, item, 0 ); } } checkRemoveButton( hwnd ); break; case FOD_FILELIST: if( GET_WM_COMMAND_CMD( wparam, lparam ) == LBN_SELCHANGE || GET_WM_COMMAND_CMD( wparam, lparam ) == LBN_SELCANCEL ) { checkRemoveButton( hwnd ); } break; case FOD_CLOSE: GetResults( hwnd ); doClose( hwnd ); PostMessage( hwnd, WM_COMMAND, IDOK, 0 ); return( TRUE ); default: return( FALSE ); } break; default: return( FALSE ); } return( TRUE ); }