From 19a1dc554b0665ef315e316f955332d71dbb58f3 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Fri, 26 May 2006 14:17:28 +0200 Subject: [PATCH] user: Added fast 32->16 mapping for the edit control messages. --- dlls/user/winproc.c | 74 +++++++++++++++++++++++++---------------------------- 1 file changed, 35 insertions(+), 39 deletions(-) diff --git a/dlls/user/winproc.c b/dlls/user/winproc.c index e53def24042..d7b2f495381 100644 --- a/dlls/user/winproc.c +++ b/dlls/user/winproc.c @@ -760,39 +760,6 @@ static INT WINPROC_MapMsg32ATo16( HWND hwnd, UINT msg32, WPARAM wParam32, *pwparam16 = (WPARAM16)LOWORD(wParam32); switch(msg32) { - case EM_GETSEL: - case EM_GETRECT: - case EM_SETRECT: - case EM_SETRECTNP: - case EM_SCROLL: - case EM_LINESCROLL: - case EM_SCROLLCARET: - case EM_GETMODIFY: - case EM_SETMODIFY: - case EM_GETLINECOUNT: - case EM_LINEINDEX: - case EM_SETHANDLE: - case EM_GETHANDLE: - case EM_GETTHUMB: - case EM_LINELENGTH: - case EM_REPLACESEL: - case EM_GETLINE: - case EM_LIMITTEXT: - case EM_CANUNDO: - case EM_UNDO: - case EM_FMTLINES: - case EM_LINEFROMCHAR: - case EM_SETTABSTOPS: - case EM_SETPASSWORDCHAR: - case EM_EMPTYUNDOBUFFER: - case EM_GETFIRSTVISIBLELINE: - case EM_SETREADONLY: - case EM_SETWORDBREAKPROC: - case EM_GETWORDBREAKPROC: - case EM_GETPASSWORDCHAR: - *pmsg16 = (UINT16)msg32 + (EM_GETSEL16 - EM_GETSEL); - return 0; - case LB_CARETOFF: case LB_CARETON: case LB_DELETESTRING: @@ -919,12 +886,6 @@ static INT WINPROC_MapMsg32ATo16( HWND hwnd, UINT msg32, WPARAM wParam32, *pmsg16 = CB_GETLBTEXT16; return 1; - case EM_SETSEL: - *pwparam16 = 0; - *plparam = MAKELONG( (INT16)(INT)wParam32, (INT16)*plparam ); - *pmsg16 = EM_SETSEL16; - return 0; - case WM_ACTIVATE: case WM_CHARTOITEM: case WM_COMMAND: @@ -2246,6 +2207,41 @@ LRESULT WINPROC_CallProc32ATo16( winproc_callback16_t callback, HWND hwnd, UINT case BM_SETSTYLE: ret = callback( HWND_16(hwnd), msg + BM_GETCHECK16 - BM_GETCHECK, wParam, lParam, result, arg ); break; + case EM_GETSEL: + case EM_GETRECT: + case EM_SETRECT: + case EM_SETRECTNP: + case EM_SCROLL: + case EM_LINESCROLL: + case EM_SCROLLCARET: + case EM_GETMODIFY: + case EM_SETMODIFY: + case EM_GETLINECOUNT: + case EM_LINEINDEX: + case EM_SETHANDLE: + case EM_GETHANDLE: + case EM_GETTHUMB: + case EM_LINELENGTH: + case EM_REPLACESEL: + case EM_GETLINE: + case EM_LIMITTEXT: + case EM_CANUNDO: + case EM_UNDO: + case EM_FMTLINES: + case EM_LINEFROMCHAR: + case EM_SETTABSTOPS: + case EM_SETPASSWORDCHAR: + case EM_EMPTYUNDOBUFFER: + case EM_GETFIRSTVISIBLELINE: + case EM_SETREADONLY: + case EM_SETWORDBREAKPROC: + case EM_GETWORDBREAKPROC: + case EM_GETPASSWORDCHAR: + ret = callback( HWND_16(hwnd), msg + EM_GETSEL16 - EM_GETSEL, wParam, lParam, result, arg ); + break; + case EM_SETSEL: + ret = callback( HWND_16(hwnd), EM_SETSEL16, 0, MAKELPARAM( wParam, lParam ), result, arg ); + break; default: { UINT16 msg16; -- 2.11.4.GIT