Alexandre Julliard : user: Added fast W->A mapping for WM_IME_CHAR.
Alexandre Julliard
julliard at wine.codeweavers.com
Thu May 18 09:43:59 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: f6ba476d9103c93a944a404bfe82e663b7677c79
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=f6ba476d9103c93a944a404bfe82e663b7677c79
Author: Alexandre Julliard <julliard at winehq.org>
Date: Thu May 18 12:28:07 2006 +0200
user: Added fast W->A mapping for WM_IME_CHAR.
---
dlls/user/winproc.c | 27 +++++++++++++++------------
1 files changed, 15 insertions(+), 12 deletions(-)
diff --git a/dlls/user/winproc.c b/dlls/user/winproc.c
index b0bddaa..6197f0f 100644
--- a/dlls/user/winproc.c
+++ b/dlls/user/winproc.c
@@ -992,18 +992,6 @@ static INT WINPROC_MapMsg32WTo32A( HWND
{
switch(msg)
{
- case WM_IME_CHAR:
- {
- WCHAR wch = LOWORD(*pwparam);
- BYTE ch[2];
-
- if (WideCharToMultiByte( CP_ACP, 0, &wch, 1, (LPSTR)ch, 2, NULL, NULL ) == 2)
- *pwparam = MAKEWPARAM( (ch[0] << 8) | ch[1], HIWORD(*pwparam) );
- else
- *pwparam = MAKEWPARAM( ch[0], HIWORD(*pwparam) );
- }
- return 0;
-
case WM_PAINTCLIPBOARD:
case WM_SIZECLIPBOARD:
FIXME_(msg)("message %s (%04x) needs translation, please report\n",SPY_GetMsgName(msg, hwnd),msg );
@@ -3008,6 +2996,21 @@ static LRESULT WINPROC_CallProc32WTo32A(
}
break;
+ case WM_IME_CHAR:
+ {
+ WCHAR wch = LOWORD(wParam);
+ BYTE ch[2];
+ DWORD len;
+
+ RtlUnicodeToMultiByteN( (LPSTR)ch, 2, &len, &wch, sizeof(WCHAR) );
+ if (len == 2)
+ wParam = MAKEWPARAM( (ch[0] << 8) | ch[1], HIWORD(wParam) );
+ else
+ wParam = MAKEWPARAM( ch[0], HIWORD(wParam) );
+ ret = WINPROC_CallWndProc( func, hwnd, msg, wParam, lParam );
+ }
+ break;
+
default:
if ((unmap = WINPROC_MapMsg32WTo32A( hwnd, msg, &wParam, &lParam )) == -1) {
ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n",
More information about the wine-cvs
mailing list