We can't use RtlCreateUnicodeStringFromAsciiz for WM_SETTEXT as the

resulting unicode string may be greater than 0xffff bytes.
This commit is contained in:
Huw Davies 2003-05-19 23:15:21 +00:00 committed by Alexandre Julliard
parent 83d92d3e0f
commit b367a6e628

View file

@ -594,13 +594,13 @@ INT WINPROC_MapMsg32ATo32W( HWND hwnd, UINT msg, WPARAM *pwparam, LPARAM *plpara
case LB_DIR:
case LB_ADDFILE:
case EM_REPLACESEL:
{
UNICODE_STRING usBuffer;
if(!*plparam) return 0;
RtlCreateUnicodeStringFromAsciiz(&usBuffer,(LPCSTR)*plparam);
*plparam = (LPARAM)usBuffer.Buffer;
return (*plparam ? 1 : -1);
}
{
DWORD len = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)*plparam, -1, NULL, 0);
WCHAR *buf = HeapAlloc(GetProcessHeap(), 0, len * sizeof(WCHAR));
len = MultiByteToWideChar(CP_ACP, 0, (LPCSTR)*plparam, -1, buf, len);
*plparam = (LPARAM)buf;
return (*plparam ? 1 : -1);
}
case WM_GETTEXTLENGTH:
case CB_GETLBTEXTLEN:
case LB_GETTEXTLEN: