Module: wine Branch: refs/heads/master Commit: 91b278b8119eb251440bde325fbf44568666eb1b URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=91b278b8119eb251440bde32... Author: Alexandre Julliard <julliard(a)winehq.org> Date: Sat May 20 18:53:16 2006 +0200 user: Added fast A->W mapping for WM_GETTEXT and WM_ASKCBFORNAME. --- dlls/user/winproc.c | 19 +++++++++++++++++++ 1 files changed, 19 insertions(+), 0 deletions(-) diff --git a/dlls/user/winproc.c b/dlls/user/winproc.c index 0dfdf77..a693fe7 100644 --- a/dlls/user/winproc.c +++ b/dlls/user/winproc.c @@ -2689,6 +2689,25 @@ LRESULT WINPROC_CallProcAtoW( winproc_ca } break; + case WM_GETTEXT: + case WM_ASKCBFORMATNAME: + { + WCHAR *ptr, buffer[512]; + LPSTR str = (LPSTR)lParam; + DWORD len = wParam * sizeof(WCHAR); + + if (!(ptr = get_buffer( buffer, sizeof(buffer), len ))) break; + ret = callback( hwnd, msg, wParam, (LPARAM)ptr, result, arg ); + if (*result && wParam) + { + RtlUnicodeToMultiByteN( str, wParam - 1, &len, ptr, strlenW(ptr) * sizeof(WCHAR) ); + str[len] = 0; + *result = len; + } + free_buffer( buffer, ptr ); + } + break; + default: if( (unmap = WINPROC_MapMsg32ATo32W( hwnd, msg, &wParam, &lParam )) == -1) { ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n",