On WM_GETTEXT, terminate the lparam buffer even if string is empty.
This commit is contained in:
parent
b4994d18e9
commit
f9340ff94d
@ -794,15 +794,19 @@ LRESULT WINAPI DefWindowProcA( HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_GETTEXT:
|
case WM_GETTEXT:
|
||||||
{
|
if (wParam)
|
||||||
WND *wndPtr = WIN_GetPtr( hwnd );
|
|
||||||
if (wParam && wndPtr && wndPtr->text)
|
|
||||||
{
|
{
|
||||||
LPSTR dest = (LPSTR)lParam;
|
LPSTR dest = (LPSTR)lParam;
|
||||||
|
WND *wndPtr = WIN_GetPtr( hwnd );
|
||||||
|
|
||||||
|
if (!wndPtr) break;
|
||||||
|
if (wndPtr->text)
|
||||||
|
{
|
||||||
if (!WideCharToMultiByte( CP_ACP, 0, wndPtr->text, -1,
|
if (!WideCharToMultiByte( CP_ACP, 0, wndPtr->text, -1,
|
||||||
dest, wParam, NULL, NULL )) dest[wParam-1] = 0;
|
dest, wParam, NULL, NULL )) dest[wParam-1] = 0;
|
||||||
result = strlen( dest );
|
result = strlen( dest );
|
||||||
}
|
}
|
||||||
|
else dest[0] = '\0';
|
||||||
WIN_ReleasePtr( wndPtr );
|
WIN_ReleasePtr( wndPtr );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
@ -928,14 +932,18 @@ LRESULT WINAPI DefWindowProcW(
|
|||||||
break;
|
break;
|
||||||
|
|
||||||
case WM_GETTEXT:
|
case WM_GETTEXT:
|
||||||
{
|
if (wParam)
|
||||||
WND *wndPtr = WIN_GetPtr( hwnd );
|
|
||||||
if (wParam && wndPtr && wndPtr->text)
|
|
||||||
{
|
{
|
||||||
LPWSTR dest = (LPWSTR)lParam;
|
LPWSTR dest = (LPWSTR)lParam;
|
||||||
|
WND *wndPtr = WIN_GetPtr( hwnd );
|
||||||
|
|
||||||
|
if (!wndPtr) break;
|
||||||
|
if (wndPtr->text)
|
||||||
|
{
|
||||||
lstrcpynW( dest, wndPtr->text, wParam );
|
lstrcpynW( dest, wndPtr->text, wParam );
|
||||||
result = strlenW( dest );
|
result = strlenW( dest );
|
||||||
}
|
}
|
||||||
|
else dest[0] = '\0';
|
||||||
WIN_ReleasePtr( wndPtr );
|
WIN_ReleasePtr( wndPtr );
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user