mirror of
https://github.com/reactos/reactos.git
synced 2025-08-05 20:03:12 +00:00
Handle SetWindowText() across Unicode/Ansi conversions
svn path=/trunk/; revision=4730
This commit is contained in:
parent
c1cf7ec993
commit
ecd7b2f8f3
3 changed files with 61 additions and 10 deletions
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: defwnd.c,v 1.45 2003/05/19 18:36:43 gvg Exp $
|
/* $Id: defwnd.c,v 1.46 2003/05/19 20:11:17 gvg Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS user32.dll
|
* PROJECT: ReactOS user32.dll
|
||||||
|
@ -1477,6 +1477,12 @@ DefWindowProcA(HWND hWnd,
|
||||||
strlen((PSTR)lParam) * sizeof(CHAR));
|
strlen((PSTR)lParam) * sizeof(CHAR));
|
||||||
strcpy(WindowText, (PSTR)lParam);
|
strcpy(WindowText, (PSTR)lParam);
|
||||||
SetPropA(hWnd, WindowTextAtom, WindowText);
|
SetPropA(hWnd, WindowTextAtom, WindowText);
|
||||||
|
if (0 != (GetWindowLongW(hWnd, GWL_STYLE) & WS_CAPTION))
|
||||||
|
{
|
||||||
|
DefWndPaintNC(hWnd, (HRGN) 1);
|
||||||
|
}
|
||||||
|
Result = (LPARAM) TRUE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
case WM_NCDESTROY:
|
case WM_NCDESTROY:
|
||||||
|
@ -1579,9 +1585,13 @@ DefWindowProcW(HWND hWnd,
|
||||||
wcslen((PWSTR)lParam) * sizeof(WCHAR));
|
wcslen((PWSTR)lParam) * sizeof(WCHAR));
|
||||||
wcscpy(WindowText, (PWSTR)lParam);
|
wcscpy(WindowText, (PWSTR)lParam);
|
||||||
SetPropW(hWnd, WindowTextAtom, WindowText);
|
SetPropW(hWnd, WindowTextAtom, WindowText);
|
||||||
|
if (0 != (GetWindowLongW(hWnd, GWL_STYLE) & WS_CAPTION))
|
||||||
|
{
|
||||||
|
DefWndPaintNC(hWnd, (HRGN) 1);
|
||||||
|
}
|
||||||
|
Result = (LPARAM) TRUE;
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
//FIXME: return correct code
|
|
||||||
return TRUE;
|
|
||||||
|
|
||||||
case WM_NCDESTROY:
|
case WM_NCDESTROY:
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: message.c,v 1.14 2003/05/12 19:30:00 jfilby Exp $
|
/* $Id: message.c,v 1.15 2003/05/19 20:11:17 gvg Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS user32.dll
|
* PROJECT: ReactOS user32.dll
|
||||||
|
@ -93,6 +93,13 @@ User32FreeAsciiConvertedMessage(UINT Msg, WPARAM wParam, LPARAM lParam)
|
||||||
RtlFreeHeap(RtlGetProcessHeap(), 0, TempString);
|
RtlFreeHeap(RtlGetProcessHeap(), 0, TempString);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case WM_SETTEXT:
|
||||||
|
{
|
||||||
|
ANSI_STRING AnsiString;
|
||||||
|
RtlInitAnsiString(&AnsiString, (PSTR) lParam);
|
||||||
|
RtlFreeAnsiString(&AnsiString);
|
||||||
|
break;
|
||||||
|
}
|
||||||
case WM_NCCREATE:
|
case WM_NCCREATE:
|
||||||
{
|
{
|
||||||
CREATESTRUCTA* Cs;
|
CREATESTRUCTA* Cs;
|
||||||
|
@ -133,6 +140,19 @@ User32ConvertToAsciiMessage(UINT* Msg, WPARAM* wParam, LPARAM* lParam)
|
||||||
(*lParam) = (LPARAM)CsA;
|
(*lParam) = (LPARAM)CsA;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case WM_SETTEXT:
|
||||||
|
{
|
||||||
|
ANSI_STRING AnsiString;
|
||||||
|
UNICODE_STRING UnicodeString;
|
||||||
|
RtlInitUnicodeString(&UnicodeString, (PWSTR) *lParam);
|
||||||
|
if (NT_SUCCESS(RtlUnicodeStringToAnsiString(&AnsiString,
|
||||||
|
&UnicodeString,
|
||||||
|
TRUE)))
|
||||||
|
{
|
||||||
|
*lParam = (LPARAM) AnsiString.Buffer;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -203,8 +223,22 @@ MsgiAnsiToUnicodeMessage(LPMSG UnicodeMsg, LPMSG AnsiMsg)
|
||||||
UnicodeMsg->wParam = UnicodeMsg->wParam / 2;
|
UnicodeMsg->wParam = UnicodeMsg->wParam / 2;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case WM_SETTEXT:
|
||||||
|
{
|
||||||
|
ANSI_STRING AnsiString;
|
||||||
|
UNICODE_STRING UnicodeString;
|
||||||
|
RtlInitAnsiString(&AnsiString, (PSTR) AnsiMsg->lParam);
|
||||||
|
if (! NT_SUCCESS(RtlAnsiStringToUnicodeString(&UnicodeString,
|
||||||
|
&AnsiString,
|
||||||
|
TRUE)))
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
}
|
}
|
||||||
return(TRUE);
|
UnicodeMsg->lParam = (LPARAM) UnicodeString.Buffer;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
BOOL
|
BOOL
|
||||||
|
@ -230,6 +264,13 @@ MsgiAnsiToUnicodeReply(LPMSG UnicodeMsg, LPMSG AnsiMsg, LRESULT Result)
|
||||||
RtlFreeHeap(RtlGetProcessHeap(), 0, TempString);
|
RtlFreeHeap(RtlGetProcessHeap(), 0, TempString);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case WM_SETTEXT:
|
||||||
|
{
|
||||||
|
UNICODE_STRING UnicodeString;
|
||||||
|
RtlInitUnicodeString(&UnicodeString, (PCWSTR) UnicodeMsg->lParam);
|
||||||
|
RtlFreeUnicodeString(&UnicodeString);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return(TRUE);
|
return(TRUE);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
/* $Id: window.c,v 1.32 2003/05/18 07:51:41 gvg Exp $
|
/* $Id: window.c,v 1.33 2003/05/19 20:11:17 gvg Exp $
|
||||||
*
|
*
|
||||||
* COPYRIGHT: See COPYING in the top level directory
|
* COPYRIGHT: See COPYING in the top level directory
|
||||||
* PROJECT: ReactOS user32.dll
|
* PROJECT: ReactOS user32.dll
|
||||||
|
@ -897,7 +897,9 @@ IsWindow(HWND hWnd)
|
||||||
WINBOOL STDCALL
|
WINBOOL STDCALL
|
||||||
IsWindowUnicode(HWND hWnd)
|
IsWindowUnicode(HWND hWnd)
|
||||||
{
|
{
|
||||||
|
#ifdef TODO
|
||||||
UNIMPLEMENTED;
|
UNIMPLEMENTED;
|
||||||
|
#endif
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1021,16 +1023,14 @@ WINBOOL STDCALL
|
||||||
SetWindowTextA(HWND hWnd,
|
SetWindowTextA(HWND hWnd,
|
||||||
LPCSTR lpString)
|
LPCSTR lpString)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
return SendMessageA(hWnd, WM_SETTEXT, 0, (LPARAM)lpString);
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL STDCALL
|
WINBOOL STDCALL
|
||||||
SetWindowTextW(HWND hWnd,
|
SetWindowTextW(HWND hWnd,
|
||||||
LPCWSTR lpString)
|
LPCWSTR lpString)
|
||||||
{
|
{
|
||||||
UNIMPLEMENTED;
|
return SendMessageW(hWnd, WM_SETTEXT, 0, (LPARAM)lpString);
|
||||||
return FALSE;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
WINBOOL STDCALL
|
WINBOOL STDCALL
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue