Alexandre Julliard : user: Added fast A-> W mapping for WM_GETTEXT and WM_ASKCBFORNAME.

Alexandre Julliard julliard at wine.codeweavers.com
Mon May 22 05:19:05 CDT 2006


Module: wine
Branch: refs/heads/master
Commit: 91b278b8119eb251440bde325fbf44568666eb1b
URL:    http://source.winehq.org/git/?p=wine.git;a=commit;h=91b278b8119eb251440bde325fbf44568666eb1b

Author: Alexandre Julliard <julliard at 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",




More information about the wine-cvs mailing list