Convert title from UNICODE_STRING to nul-terminated Modified: trunk/reactos/subsys/csrss/win32csr/guiconsole.c _____
Modified: trunk/reactos/subsys/csrss/win32csr/guiconsole.c --- trunk/reactos/subsys/csrss/win32csr/guiconsole.c 2005-09-09 10:22:40 UTC (rev 17760) +++ trunk/reactos/subsys/csrss/win32csr/guiconsole.c 2005-09-09 11:43:26 UTC (rev 17761) @@ -786,6 +786,7 @@
HWND NewWindow; LONG WindowCount; MSG Msg; + PWCHAR Buffer, Title; PCSRSS_CONSOLE Console = (PCSRSS_CONSOLE) lParam;
switch(msg) @@ -794,8 +795,20 @@ SetWindowLongW(hWnd, GWL_USERDATA, 0); return 0; case PM_CREATE_CONSOLE: + Buffer = HeapAlloc(Win32CsrApiHeap, 0, + Console->Title.Length + sizeof(WCHAR)); + if (NULL != Buffer) + { + memcpy(Buffer, Console->Title.Buffer, Console->Title.Length); + Buffer[Console->Title.Length / sizeof(WCHAR)] = L'\0'; + Title = Buffer; + } + else + { + Title = L""; + } NewWindow = CreateWindowW(L"ConsoleWindowClass", - Console->Title.Buffer, + Title, WS_OVERLAPPED | WS_CAPTION | WS_SYSMENU | WS_MINIMIZEBOX, CW_USEDEFAULT, CW_USEDEFAULT, @@ -805,6 +818,10 @@ NULL, (HINSTANCE) GetModuleHandleW(NULL), (PVOID) Console); + if (NULL != Buffer) + { + HeapFree(Win32CsrApiHeap, 0, Buffer); + } Console->hWindow = NewWindow; if (NULL != NewWindow) { @@ -934,8 +951,26 @@ STATIC BOOL STDCALL GuiChangeTitle(PCSRSS_CONSOLE Console) { - SendMessageW(Console->hWindow, WM_SETTEXT, 0, (LPARAM) Console->Title.Buffer); + PWCHAR Buffer, Title;
+ Buffer = HeapAlloc(Win32CsrApiHeap, 0, + Console->Title.Length + sizeof(WCHAR)); + if (NULL != Buffer) + { + memcpy(Buffer, Console->Title.Buffer, Console->Title.Length); + Buffer[Console->Title.Length / sizeof(WCHAR)] = L'\0'; + Title = Buffer; + } + else + { + Title = L""; + } + SendMessageW(Console->hWindow, WM_SETTEXT, 0, (LPARAM) Title); + if (NULL != Buffer) + { + HeapFree(Win32CsrApiHeap, 0, Buffer); + } + return TRUE; }