-/* $Id: process.c,v 1.36 2004/11/14 18:47:10 hbirr Exp $
+/* $Id: process.c,v 1.37 2004/12/18 19:23:05 gvg Exp $
*
* reactos/subsys/csrss/api/process.c
*
Reply->Status = ApiReply.Status;
if (! NT_SUCCESS(Reply->Status))
{
+ CsrFreeProcessData(Request->Data.CreateProcessRequest.NewProcessId);
return Reply->Status;
}
Reply->Data.CreateProcessReply.InputHandle = ApiReply.Data.AllocConsoleReply.InputHandle;
-/* $Id: conio.c,v 1.17 2004/11/14 18:47:10 hbirr Exp $
+/* $Id: conio.c,v 1.18 2004/12/18 19:23:05 gvg Exp $
*
* reactos/subsys/csrss/win32csr/conio.c
*
NewBuffer = HeapAlloc(Win32CsrApiHeap, 0, sizeof(CSRSS_SCREEN_BUFFER));
if (NULL == NewBuffer)
{
+ ConioCleanupConsole(Console);
RtlFreeUnicodeString(&Console->Title);
RtlDeleteCriticalSection(&Console->Header.Lock);
CloseHandle(Console->ActiveEvent);
Status = CsrInitConsoleScreenBuffer(Console, NewBuffer);
if (! NT_SUCCESS(Status))
{
+ ConioCleanupConsole(Console);
RtlFreeUnicodeString(&Console->Title);
RtlDeleteCriticalSection(&Console->Header.Lock);
CloseHandle(Console->ActiveEvent);
-/* $Id: guiconsole.c,v 1.24 2004/12/05 01:13:29 navaraf Exp $
+/* $Id: guiconsole.c,v 1.25 2004/12/18 19:23:05 gvg Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS system libraries
{
HWND NewWindow;
LONG WindowCount;
+ MSG Msg;
PCSRSS_CONSOLE Console = (PCSRSS_CONSOLE) lParam;
switch(msg)
}
return (LRESULT) NewWindow;
case PM_DESTROY_CONSOLE:
+ /* Window creation is done using a PostMessage(), so it's possible that the
+ * window that we want to destroy doesn't exist yet. So first empty the message
+ * queue */
+ while(PeekMessageW(&Msg, NULL, 0, 0, PM_REMOVE))
+ {
+ TranslateMessage(&Msg);
+ DispatchMessageW(&Msg);
+ }
DestroyWindow(Console->hWindow);
Console->hWindow = NULL;
WindowCount = GetWindowLongW(hWnd, GWL_USERDATA);