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

This commit is contained in:
Alexandre Julliard 2006-05-20 18:53:16 +02:00
parent 3e195d4382
commit 91b278b811
1 changed files with 19 additions and 0 deletions

View File

@ -2689,6 +2689,25 @@ LRESULT WINPROC_CallProcAtoW( winproc_callback_t callback, HWND hwnd, UINT msg,
} }
break; 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: default:
if( (unmap = WINPROC_MapMsg32ATo32W( hwnd, msg, &wParam, &lParam )) == -1) { if( (unmap = WINPROC_MapMsg32ATo32W( hwnd, msg, &wParam, &lParam )) == -1) {
ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n", ERR_(msg)("Message translation failed. (msg=%s,wp=%08x,lp=%08lx)\n",