diff --git a/dlls/user/winproc.c b/dlls/user/winproc.c index 99347f1fa0b..ae5b864ae85 100644 --- a/dlls/user/winproc.c +++ b/dlls/user/winproc.c @@ -775,20 +775,6 @@ static INT WINPROC_MapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM *pwparam, LPARAM case LB_GETTEXTLEN: return 1; /* need to map result */ - case WM_CHARTOITEM: - case WM_MENUCHAR: - case WM_CHAR: - case WM_DEADCHAR: - case WM_SYSCHAR: - case WM_SYSDEADCHAR: - case EM_SETPASSWORDCHAR: - *pwparam = map_wparam_char_AtoW( *pwparam, 1 ); - return 0; - - case WM_IME_CHAR: - *pwparam = map_wparam_char_AtoW( *pwparam, 2 ); - return 0; - case WM_PAINTCLIPBOARD: case WM_SIZECLIPBOARD: FIXME_(msg)("message %s (0x%x) needs translation, please report\n", SPY_GetMsgName(msg, hwnd), msg ); @@ -2704,6 +2690,20 @@ LRESULT WINPROC_CallProcAtoW( winproc_callback_t callback, HWND hwnd, UINT msg, } break; + case WM_CHARTOITEM: + case WM_MENUCHAR: + case WM_CHAR: + case WM_DEADCHAR: + case WM_SYSCHAR: + case WM_SYSDEADCHAR: + case EM_SETPASSWORDCHAR: + ret = callback( hwnd, msg, map_wparam_char_AtoW(wParam,1), lParam, result, arg ); + break; + + case WM_IME_CHAR: + ret = callback( hwnd, msg, map_wparam_char_AtoW(wParam,2), lParam, result, arg ); + break; + default: if( (unmap = WINPROC_MapMsg32ATo32W( hwnd, msg, &wParam, &lParam )) == -1) { ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n",