mirror of
https://github.com/ApfelTeeSaft/reactos.git
synced 2026-08-31 04:13:37 +00:00
Partial merge of condrv_restructure branch r65657.
svn path=/trunk/; revision=65660
This commit is contained in:
@@ -1,17 +1,15 @@
|
||||
|
||||
include_directories(${REACTOS_SOURCE_DIR}/include/reactos/drivers)
|
||||
|
||||
## spec2def(condrv.sys condrv.spec ADD_IMPORTLIB)
|
||||
|
||||
list(APPEND SOURCE
|
||||
condrv.c
|
||||
control.c
|
||||
dispatch.c
|
||||
condrv.h)
|
||||
|
||||
add_library(condrv SHARED
|
||||
${SOURCE}
|
||||
condrv.rc)
|
||||
# ${CMAKE_CURRENT_BINARY_DIR}/condrv.def)
|
||||
|
||||
set_module_type(condrv kernelmodedriver)
|
||||
target_link_libraries(condrv ${PSEH_LIB})
|
||||
|
||||
@@ -30,80 +30,6 @@ DRIVER_DISPATCH ConDrvCleanup;
|
||||
*/
|
||||
DRIVER_DISPATCH ConDrvDispatch;
|
||||
|
||||
NTSTATUS NTAPI
|
||||
CompleteRequest(IN PIRP Irp,
|
||||
IN NTSTATUS Status,
|
||||
IN ULONG_PTR Information)
|
||||
{
|
||||
Irp->IoStatus.Status = Status;
|
||||
Irp->IoStatus.Information = Information;
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
NTSTATUS NTAPI
|
||||
ConDrvDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
|
||||
{
|
||||
#define HANDLE_CTRL_CODE(Code) \
|
||||
case Code : \
|
||||
{ \
|
||||
DPRINT1("ConDrv: " #Code ", stack->FileObject = 0x%p\n", stack->FileObject); \
|
||||
if (stack->FileObject) \
|
||||
{ \
|
||||
DPRINT1("stack->FileObject->FileName = %wZ\n", &stack->FileObject->FileName); \
|
||||
} \
|
||||
break; \
|
||||
}
|
||||
|
||||
PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp);
|
||||
// ULONG ctrlCode = stack->Parameters.DeviceIoControl.IoControlCode;
|
||||
ULONG MajorFunction = stack->MajorFunction;
|
||||
|
||||
/* Just display all the IRP codes for now... */
|
||||
switch (MajorFunction)
|
||||
{
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CREATE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CREATE_NAMED_PIPE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CLOSE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_READ);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_WRITE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_EA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_EA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_FLUSH_BUFFERS);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_VOLUME_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_VOLUME_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_DIRECTORY_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_FILE_SYSTEM_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_DEVICE_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_INTERNAL_DEVICE_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SHUTDOWN);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_LOCK_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CLEANUP);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CREATE_MAILSLOT);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_SECURITY);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_SECURITY);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_POWER);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SYSTEM_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_DEVICE_CHANGE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_QUOTA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_QUOTA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_PNP);
|
||||
// case IRP_MJ_PNP_POWER:
|
||||
// case IRP_MJ_MAXIMUM_FUNCTION:
|
||||
|
||||
default:
|
||||
{
|
||||
DPRINT1("Unknown Major %lu\n", MajorFunction);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return CompleteRequest(Irp, STATUS_SUCCESS, 0);
|
||||
}
|
||||
|
||||
NTSTATUS NTAPI
|
||||
DriverEntry(IN PDRIVER_OBJECT DriverObject,
|
||||
IN PUNICODE_STRING RegistryPath)
|
||||
@@ -168,5 +94,4 @@ ConDrvUnload(IN PDRIVER_OBJECT DriverObject)
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
||||
|
||||
@@ -0,0 +1,92 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Driver
|
||||
* FILE: drivers/base/condrv/dispatch.c
|
||||
* PURPOSE: Console Driver - Dispatching interface
|
||||
* PROGRAMMERS: Hermes Belusca-Maito ([email protected])
|
||||
*/
|
||||
|
||||
/* INCLUDES *******************************************************************/
|
||||
|
||||
#include "condrv.h"
|
||||
|
||||
#define NDEBUG
|
||||
#include <debug.h>
|
||||
|
||||
/* FUNCTIONS ******************************************************************/
|
||||
|
||||
NTSTATUS NTAPI
|
||||
CompleteRequest(IN PIRP Irp,
|
||||
IN NTSTATUS Status,
|
||||
IN ULONG_PTR Information)
|
||||
{
|
||||
Irp->IoStatus.Status = Status;
|
||||
Irp->IoStatus.Information = Information;
|
||||
IoCompleteRequest(Irp, IO_NO_INCREMENT);
|
||||
|
||||
return Status;
|
||||
}
|
||||
|
||||
NTSTATUS NTAPI
|
||||
ConDrvDispatch(IN PDEVICE_OBJECT DeviceObject, IN PIRP Irp)
|
||||
{
|
||||
#define HANDLE_CTRL_CODE(Code) \
|
||||
case Code : \
|
||||
{ \
|
||||
DPRINT1("ConDrv: " #Code ", stack->FileObject = 0x%p\n", stack->FileObject); \
|
||||
if (stack->FileObject) \
|
||||
{ \
|
||||
DPRINT1("stack->FileObject->FileName = %wZ\n", &stack->FileObject->FileName); \
|
||||
} \
|
||||
break; \
|
||||
}
|
||||
|
||||
PIO_STACK_LOCATION stack = IoGetCurrentIrpStackLocation(Irp);
|
||||
// ULONG ctrlCode = stack->Parameters.DeviceIoControl.IoControlCode;
|
||||
ULONG MajorFunction = stack->MajorFunction;
|
||||
|
||||
/* Just display all the IRP codes for now... */
|
||||
switch (MajorFunction)
|
||||
{
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CREATE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CREATE_NAMED_PIPE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CLOSE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_READ);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_WRITE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_EA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_EA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_FLUSH_BUFFERS);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_VOLUME_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_VOLUME_INFORMATION);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_DIRECTORY_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_FILE_SYSTEM_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_DEVICE_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_INTERNAL_DEVICE_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SHUTDOWN);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_LOCK_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CLEANUP);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_CREATE_MAILSLOT);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_SECURITY);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_SECURITY);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_POWER);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SYSTEM_CONTROL);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_DEVICE_CHANGE);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_QUERY_QUOTA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_SET_QUOTA);
|
||||
HANDLE_CTRL_CODE(IRP_MJ_PNP);
|
||||
// case IRP_MJ_PNP_POWER:
|
||||
// case IRP_MJ_MAXIMUM_FUNCTION:
|
||||
|
||||
default:
|
||||
{
|
||||
DPRINT1("Unknown Major %lu\n", MajorFunction);
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
return CompleteRequest(Irp, STATUS_SUCCESS, 0);
|
||||
}
|
||||
|
||||
/* EOF */
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/alias.c
|
||||
* FILE: consrv/alias.c
|
||||
* PURPOSE: Alias support functions
|
||||
* PROGRAMMERS: Christoph Wittich
|
||||
* Johannes Anderwald
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/alias.h
|
||||
* FILE: consrv/alias.h
|
||||
* PURPOSE: Alias support functions
|
||||
* PROGRAMMERS: Christoph Wittich
|
||||
* Johannes Anderwald
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/api.h
|
||||
* FILE: consrv/api.h
|
||||
* PURPOSE: Public server APIs definitions
|
||||
* PROGRAMMERS: Hermes Belusca-Maito ([email protected])
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Driver DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/condrv/coninput.c
|
||||
* FILE: consrv/condrv/coninput.c
|
||||
* PURPOSE: Console Input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito ([email protected])
|
||||
@@ -238,10 +238,10 @@ ConDrvDeinitInputBuffer(IN PCONSOLE Console)
|
||||
NTSTATUS NTAPI
|
||||
ConDrvReadConsole(IN PCONSOLE Console,
|
||||
IN PCONSOLE_INPUT_BUFFER InputBuffer,
|
||||
/**/IN PUNICODE_STRING ExeName /**/OPTIONAL/**/,/**/
|
||||
IN BOOLEAN Unicode,
|
||||
OUT PVOID Buffer,
|
||||
IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
|
||||
IN PVOID Parameter OPTIONAL,
|
||||
IN ULONG NumCharsToRead,
|
||||
OUT PULONG NumCharsRead OPTIONAL)
|
||||
{
|
||||
@@ -260,10 +260,10 @@ ConDrvReadConsole(IN PCONSOLE Console,
|
||||
|
||||
/* Call the line-discipline */
|
||||
return TermReadStream(Console,
|
||||
ExeName,
|
||||
Unicode,
|
||||
Buffer,
|
||||
ReadControl,
|
||||
Parameter,
|
||||
NumCharsToRead,
|
||||
NumCharsRead);
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Driver DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/condrv/conoutput.c
|
||||
* FILE: consrv/condrv/conoutput.c
|
||||
* PURPOSE: General Console Output Functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito ([email protected])
|
||||
@@ -64,8 +64,6 @@ CONSOLE_SCREEN_BUFFER_Destroy(IN OUT PCONSOLE_SCREEN_BUFFER Buffer)
|
||||
}
|
||||
else if (Buffer->Header.Type == SCREEN_BUFFER)
|
||||
{
|
||||
// TODO: Free Buffer->Data
|
||||
|
||||
/* Free the palette handle */
|
||||
if (Buffer->PaletteHandle != NULL) DeleteObject(Buffer->PaletteHandle);
|
||||
|
||||
@@ -159,20 +157,6 @@ ConDrvDeleteScreenBuffer(PCONSOLE_SCREEN_BUFFER Buffer)
|
||||
CONSOLE_SCREEN_BUFFER_Destroy(Buffer);
|
||||
}
|
||||
|
||||
VOID
|
||||
ConioDrawConsole(PCONSOLE Console)
|
||||
{
|
||||
SMALL_RECT Region;
|
||||
PCONSOLE_SCREEN_BUFFER ActiveBuffer = Console->ActiveBuffer;
|
||||
|
||||
if (ActiveBuffer)
|
||||
{
|
||||
ConioInitRect(&Region, 0, 0,
|
||||
ActiveBuffer->ViewSize.Y - 1, ActiveBuffer->ViewSize.X - 1);
|
||||
TermDrawRegion(Console, &Region);
|
||||
}
|
||||
}
|
||||
|
||||
static VOID
|
||||
ConioSetActiveScreenBuffer(PCONSOLE_SCREEN_BUFFER Buffer)
|
||||
{
|
||||
@@ -214,13 +198,6 @@ ConDrvGetActiveScreenBuffer(IN PCONSOLE Console)
|
||||
|
||||
/* PUBLIC DRIVER APIS *********************************************************/
|
||||
|
||||
NTSTATUS NTAPI
|
||||
ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||
IN PCHAR_CELL CharInfo/*Buffer*/,
|
||||
IN COORD CharInfoSize,
|
||||
IN OUT PSMALL_RECT WriteRegion,
|
||||
IN BOOLEAN DrawRegion);
|
||||
NTSTATUS NTAPI
|
||||
ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
|
||||
IN PCONSOLE_SCREEN_BUFFER Buffer,
|
||||
@@ -232,19 +209,6 @@ ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
|
||||
/* Validity check */
|
||||
ASSERT(Console == Buffer->Header.Console);
|
||||
|
||||
/* In text-mode only, draw the VDM buffer if present */
|
||||
if (GetType(Buffer) == TEXTMODE_BUFFER)
|
||||
{
|
||||
PTEXTMODE_SCREEN_BUFFER TextBuffer = (PTEXTMODE_SCREEN_BUFFER)Buffer;
|
||||
|
||||
/*Status =*/ ConDrvWriteConsoleOutputVDM(Buffer->Header.Console,
|
||||
TextBuffer,
|
||||
Console->VDMBuffer,
|
||||
Console->VDMBufferSize,
|
||||
Region,
|
||||
FALSE);
|
||||
}
|
||||
|
||||
/* If the output buffer is the current one, redraw the correct portion of the screen */
|
||||
if (Buffer == Console->ActiveBuffer) TermDrawRegion(Console, Region);
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Driver DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/condrv/console.c
|
||||
* FILE: consrv/condrv/console.c
|
||||
* PURPOSE: Console Management Functions
|
||||
* PROGRAMMERS: Gé van Geldorp
|
||||
* Jeffrey Morlan
|
||||
@@ -297,7 +297,6 @@ ConDrvRegisterTerminal(IN PCONSOLE Console,
|
||||
|
||||
/* Copy buffer contents to screen */
|
||||
// Terminal.Draw();
|
||||
// ConioDrawConsole(Console);
|
||||
|
||||
DPRINT("Terminal initialization done\n");
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
@@ -31,11 +31,11 @@ DummyDeinitTerminal(IN OUT PTERMINAL This)
|
||||
|
||||
static NTSTATUS NTAPI
|
||||
DummyReadStream(IN OUT PTERMINAL This,
|
||||
/**/IN PUNICODE_STRING ExeName /**/OPTIONAL/**/,/**/
|
||||
IN BOOLEAN Unicode,
|
||||
/**PWCHAR Buffer,**/
|
||||
OUT PVOID Buffer,
|
||||
IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
|
||||
IN PVOID Parameter OPTIONAL,
|
||||
IN ULONG NumCharsToRead,
|
||||
OUT PULONG NumCharsRead OPTIONAL)
|
||||
{
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Driver DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/condrv/graphics.c
|
||||
* FILE: consrv/condrv/graphics.c
|
||||
* PURPOSE: Console Output Functions for graphics-mode screen-buffers
|
||||
* PROGRAMMERS: Hermes Belusca-Maito ([email protected])
|
||||
*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Driver DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/condrv/text.c
|
||||
* FILE: consrv/condrv/text.c
|
||||
* PURPOSE: Console Output Functions for text-mode screen-buffers
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito ([email protected])
|
||||
@@ -494,7 +494,8 @@ ConDrvReadConsoleOutput(IN PCONSOLE Console,
|
||||
|
||||
/* Make sure ReadRegion is inside the screen buffer */
|
||||
ConioInitRect(&ScreenBuffer, 0, 0,
|
||||
Buffer->ScreenBufferSize.Y - 1, Buffer->ScreenBufferSize.X - 1);
|
||||
Buffer->ScreenBufferSize.Y - 1,
|
||||
Buffer->ScreenBufferSize.X - 1);
|
||||
if (!ConioGetIntersection(&CapturedReadRegion, &ScreenBuffer, &CapturedReadRegion))
|
||||
{
|
||||
/*
|
||||
@@ -557,7 +558,8 @@ ConDrvWriteConsoleOutput(IN PCONSOLE Console,
|
||||
|
||||
/* Make sure WriteRegion is inside the screen buffer */
|
||||
ConioInitRect(&ScreenBuffer, 0, 0,
|
||||
Buffer->ScreenBufferSize.Y - 1, Buffer->ScreenBufferSize.X - 1);
|
||||
Buffer->ScreenBufferSize.Y - 1,
|
||||
Buffer->ScreenBufferSize.X - 1);
|
||||
if (!ConioGetIntersection(&CapturedWriteRegion, &ScreenBuffer, &CapturedWriteRegion))
|
||||
{
|
||||
/*
|
||||
@@ -597,14 +599,15 @@ ConDrvWriteConsoleOutput(IN PCONSOLE Console,
|
||||
|
||||
/*
|
||||
* NOTE: This function is strongly inspired by ConDrvWriteConsoleOutput...
|
||||
* FIXME: This function MUST be moved into consrv/conoutput.c because only
|
||||
* consrv knows how to manipulate VDM screenbuffers.
|
||||
*/
|
||||
NTSTATUS NTAPI
|
||||
ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||
IN PCHAR_CELL CharInfo/*Buffer*/,
|
||||
IN COORD CharInfoSize,
|
||||
IN OUT PSMALL_RECT WriteRegion,
|
||||
IN BOOLEAN DrawRegion)
|
||||
IN PSMALL_RECT WriteRegion)
|
||||
{
|
||||
SHORT X, Y;
|
||||
SMALL_RECT ScreenBuffer;
|
||||
@@ -624,7 +627,8 @@ ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
|
||||
/* Make sure WriteRegion is inside the screen buffer */
|
||||
ConioInitRect(&ScreenBuffer, 0, 0,
|
||||
Buffer->ScreenBufferSize.Y - 1, Buffer->ScreenBufferSize.X - 1);
|
||||
Buffer->ScreenBufferSize.Y - 1,
|
||||
Buffer->ScreenBufferSize.X - 1);
|
||||
if (!ConioGetIntersection(&CapturedWriteRegion, &ScreenBuffer, &CapturedWriteRegion))
|
||||
{
|
||||
/*
|
||||
@@ -650,10 +654,6 @@ ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
}
|
||||
}
|
||||
|
||||
if (DrawRegion) TermDrawRegion(Console, &CapturedWriteRegion);
|
||||
|
||||
*WriteRegion = CapturedWriteRegion;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1157,7 +1157,8 @@ ConDrvScrollConsoleScreenBuffer(IN PCONSOLE Console,
|
||||
|
||||
/* Make sure the source rectangle is inside the screen buffer */
|
||||
ConioInitRect(&ScreenBuffer, 0, 0,
|
||||
Buffer->ScreenBufferSize.Y - 1, Buffer->ScreenBufferSize.X - 1);
|
||||
Buffer->ScreenBufferSize.Y - 1,
|
||||
Buffer->ScreenBufferSize.X - 1);
|
||||
if (!ConioGetIntersection(&SrcRegion, &ScreenBuffer, ScrollRectangle))
|
||||
{
|
||||
return STATUS_SUCCESS;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/coninput.c
|
||||
* FILE: consrv/coninput.c
|
||||
* PURPOSE: Console Input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito ([email protected])
|
||||
@@ -302,10 +302,10 @@ Quit:
|
||||
NTSTATUS NTAPI
|
||||
ConDrvReadConsole(IN PCONSOLE Console,
|
||||
IN PCONSOLE_INPUT_BUFFER InputBuffer,
|
||||
/**/IN PUNICODE_STRING ExeName /**/OPTIONAL/**/,/**/
|
||||
IN BOOLEAN Unicode,
|
||||
OUT PVOID Buffer,
|
||||
IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
|
||||
IN PVOID Parameter OPTIONAL,
|
||||
IN ULONG NumCharsToRead,
|
||||
OUT PULONG NumCharsRead OPTIONAL);
|
||||
static NTSTATUS
|
||||
@@ -324,7 +324,7 @@ ReadChars(IN PGET_INPUT_INFO InputInfo,
|
||||
ULONG NrCharactersRead = 0;
|
||||
ULONG CharSize = (ReadConsoleRequest->Unicode ? sizeof(WCHAR) : sizeof(CHAR));
|
||||
|
||||
/* Compute the executable name, if needed */
|
||||
/* Retrieve the executable name, if needed */
|
||||
if (ReadConsoleRequest->InitialNumBytes == 0 &&
|
||||
ReadConsoleRequest->ExeLength <= sizeof(ReadConsoleRequest->StaticBuffer))
|
||||
{
|
||||
@@ -366,10 +366,10 @@ ReadChars(IN PGET_INPUT_INFO InputInfo,
|
||||
DPRINT("Calling ConDrvReadConsole(%wZ)\n", &ExeName);
|
||||
Status = ConDrvReadConsole(InputBuffer->Header.Console,
|
||||
InputBuffer,
|
||||
&ExeName,
|
||||
ReadConsoleRequest->Unicode,
|
||||
Buffer,
|
||||
&ReadControl,
|
||||
&ExeName,
|
||||
ReadConsoleRequest->NumBytes / CharSize, // NrCharactersToRead
|
||||
&NrCharactersRead);
|
||||
DPRINT("ConDrvReadConsole returned (%d ; Status = 0x%08x)\n",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/coninput.h
|
||||
* FILE: consrv/coninput.h
|
||||
* PURPOSE: Console Input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito ([email protected])
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/conoutput.c
|
||||
* FILE: consrv/conoutput.c
|
||||
* PURPOSE: General Console Output Functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito ([email protected])
|
||||
@@ -16,6 +16,16 @@
|
||||
|
||||
/* PUBLIC SERVER APIS *********************************************************/
|
||||
|
||||
/*
|
||||
* FIXME: This function MUST be moved fro condrv/conoutput.c because only
|
||||
* consrv knows how to manipulate VDM screenbuffers.
|
||||
*/
|
||||
NTSTATUS NTAPI
|
||||
ConDrvWriteConsoleOutputVDM(IN PCONSOLE Console,
|
||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||
IN PCHAR_CELL CharInfo/*Buffer*/,
|
||||
IN COORD CharInfoSize,
|
||||
IN PSMALL_RECT WriteRegion);
|
||||
NTSTATUS NTAPI
|
||||
ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
|
||||
IN PCONSOLE_SCREEN_BUFFER Buffer,
|
||||
@@ -33,6 +43,18 @@ CSR_API(SrvInvalidateBitMapRect)
|
||||
&Buffer, GENERIC_READ, TRUE);
|
||||
if (!NT_SUCCESS(Status)) return Status;
|
||||
|
||||
/* In text-mode only, draw the VDM buffer if present */
|
||||
if (GetType(Buffer) == TEXTMODE_BUFFER && Buffer->Header.Console->VDMBuffer)
|
||||
{
|
||||
PTEXTMODE_SCREEN_BUFFER TextBuffer = (PTEXTMODE_SCREEN_BUFFER)Buffer;
|
||||
|
||||
/*Status =*/ ConDrvWriteConsoleOutputVDM(Buffer->Header.Console,
|
||||
TextBuffer,
|
||||
Buffer->Header.Console->VDMBuffer,
|
||||
Buffer->Header.Console->VDMBufferSize,
|
||||
&InvalidateDIBitsRequest->Region);
|
||||
}
|
||||
|
||||
Status = ConDrvInvalidateBitMapRect(Buffer->Header.Console,
|
||||
Buffer,
|
||||
&InvalidateDIBitsRequest->Region);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/conoutput.h
|
||||
* FILE: consrv/conoutput.h
|
||||
* PURPOSE: Console Output functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito ([email protected])
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/console.c
|
||||
* FILE: consrv/console.c
|
||||
* PURPOSE: Console Management Functions
|
||||
* PROGRAMMERS: Gé van Geldorp
|
||||
* Jeffrey Morlan
|
||||
@@ -738,7 +738,7 @@ ConSrvDeleteConsole(PCONSRV_CONSOLE Console)
|
||||
|
||||
/* Deinit the ConSrv terminal */
|
||||
// FIXME!!
|
||||
// ConSrvDeinitTerminal(&Terminal); // &ConSrvConsole->Console->TermIFace
|
||||
// ConSrvDeinitTerminal(&Terminal);
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/console.h
|
||||
* FILE: consrv/console.h
|
||||
* PURPOSE: Console Initialization Functions
|
||||
* PROGRAMMERS: Hermes Belusca-Maito ([email protected])
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/consrv.h
|
||||
* FILE: consrv/consrv.h
|
||||
* PURPOSE: Main header - Definitions
|
||||
* PROGRAMMERS: Hermes Belusca-Maito ([email protected])
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontendctl.c
|
||||
* FILE: consrv/frontendctl.c
|
||||
* PURPOSE: Terminal Front-Ends Control
|
||||
* PROGRAMMERS: Hermes Belusca-Maito ([email protected])
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/consolecpl.h
|
||||
* FILE: consrv/consolecpl.h
|
||||
* PURPOSE: GUI front-end settings management - Header for console.dll
|
||||
* PROGRAMMERS: Hermes Belusca-Maito ([email protected])
|
||||
*/
|
||||
|
||||
@@ -288,7 +288,7 @@ SendMenuEvent(PCONSRV_CONSOLE Console, UINT CmdId)
|
||||
|
||||
DPRINT("Menu item ID: %d\n", CmdId);
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
er.EventType = MENU_EVENT;
|
||||
er.Event.MenuEvent.dwCommandId = CmdId;
|
||||
@@ -753,7 +753,7 @@ OnFocus(PGUI_CONSOLE_DATA GuiData, BOOL SetFocus)
|
||||
PCONSRV_CONSOLE Console = GuiData->Console;
|
||||
INPUT_RECORD er;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
er.EventType = FOCUS_EVENT;
|
||||
er.Event.FocusEvent.bSetFocus = SetFocus;
|
||||
@@ -1151,7 +1151,7 @@ OnKey(PGUI_CONSOLE_DATA GuiData, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
PCONSRV_CONSOLE Console = GuiData->Console;
|
||||
PCONSOLE_SCREEN_BUFFER ActiveBuffer;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
ActiveBuffer = GuiData->ActiveBuffer;
|
||||
|
||||
@@ -1321,7 +1321,7 @@ OnTimer(PGUI_CONSOLE_DATA GuiData)
|
||||
|
||||
SetTimer(GuiData->hWindow, CONGUI_UPDATE_TIMER, CURSOR_BLINK_TIME, NULL);
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
Buff = GuiData->ActiveBuffer;
|
||||
|
||||
@@ -1423,7 +1423,7 @@ OnClose(PGUI_CONSOLE_DATA GuiData)
|
||||
{
|
||||
PCONSRV_CONSOLE Console = GuiData->Console;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE))
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE))
|
||||
return TRUE;
|
||||
|
||||
// TODO: Prompt for termination ? (Warn the user about possible apps running in this console)
|
||||
@@ -1525,7 +1525,7 @@ OnMouse(PGUI_CONSOLE_DATA GuiData, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
goto Quit;
|
||||
}
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE))
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE))
|
||||
{
|
||||
Err = TRUE;
|
||||
goto Quit;
|
||||
@@ -1856,7 +1856,7 @@ OnGetMinMaxInfo(PGUI_CONSOLE_DATA GuiData, PMINMAXINFO minMaxInfo)
|
||||
DWORD windx, windy;
|
||||
UINT WidthUnit, HeightUnit;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
ActiveBuffer = GuiData->ActiveBuffer;
|
||||
|
||||
@@ -1888,7 +1888,7 @@ OnSize(PGUI_CONSOLE_DATA GuiData, WPARAM wParam, LPARAM lParam)
|
||||
/* Do nothing if the window is hidden */
|
||||
if (!GuiData->IsWindowVisible) return;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
if ((GuiData->WindowSizeLock == FALSE) &&
|
||||
(wParam == SIZE_RESTORED || wParam == SIZE_MAXIMIZED || wParam == SIZE_MINIMIZED))
|
||||
@@ -1998,7 +1998,7 @@ OnScroll(PGUI_CONSOLE_DATA GuiData, UINT uMsg, WPARAM wParam)
|
||||
int old_pos, Maximum;
|
||||
PSHORT pShowXY;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return 0;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return 0;
|
||||
|
||||
Buff = GuiData->ActiveBuffer;
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/gui/fullscreen.c
|
||||
* FILE: consrv/frontends/gui/fullscreen.c
|
||||
* PURPOSE: GUI Terminal Full-screen Mode
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
@@ -177,7 +177,7 @@ GuiConsoleSwitchFullScreen(PGUI_CONSOLE_DATA GuiData)
|
||||
PCONSRV_CONSOLE Console = GuiData->Console;
|
||||
BOOL FullScreen;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
/* Switch to full-screen or to windowed mode */
|
||||
FullScreen = !GuiData->GuiInfo.FullScreen;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/gui/graphics.c
|
||||
* FILE: consrv/frontends/gui/graphics.c
|
||||
* PURPOSE: GUI Terminal Front-End - Support for graphics-mode screen-buffers
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
@@ -131,7 +131,7 @@ GuiPaintGraphicsBuffer(PGRAPHICS_SCREEN_BUFFER Buffer,
|
||||
|
||||
if (Buffer->BitMap == NULL) return;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
rcFramebuffer->left = Buffer->ViewOrigin.X * 1 + rcView->left;
|
||||
rcFramebuffer->top = Buffer->ViewOrigin.Y * 1 + rcView->top;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/gui/guisettings.c
|
||||
* FILE: consrv/frontends/gui/guisettings.c
|
||||
* PURPOSE: GUI Terminal Front-End Settings Management
|
||||
* PROGRAMMERS: Johannes Anderwald
|
||||
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
@@ -238,7 +238,7 @@ GuiConsoleShowConsoleProperties(PGUI_CONSOLE_DATA GuiData,
|
||||
|
||||
DPRINT("GuiConsoleShowConsoleProperties entered\n");
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
/*
|
||||
* Create a memory section to share with the applet, and map it.
|
||||
@@ -429,7 +429,7 @@ GuiApplyUserSettings(PGUI_CONSOLE_DATA GuiData,
|
||||
PTERMINAL_INFO TermInfo = NULL;
|
||||
PGUI_CONSOLE_INFO GuiInfo = NULL;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
/* Get the console leader process, our client */
|
||||
ProcessData = ConSrvGetConsoleLeaderProcess(Console);
|
||||
@@ -575,7 +575,7 @@ GuiApplyWindowsConsoleSettings(PGUI_CONSOLE_DATA GuiData,
|
||||
SIZE_T Length;
|
||||
#endif
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
/* Get the console leader process, our client */
|
||||
ProcessData = ConSrvGetConsoleLeaderProcess(Console);
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/guisettings.h
|
||||
* FILE: consrv/guisettings.h
|
||||
* PURPOSE: GUI front-end settings management
|
||||
* PROGRAMMERS: Johannes Anderwald
|
||||
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/gui/guiterm.c
|
||||
* FILE: consrv/frontends/gui/guiterm.c
|
||||
* PURPOSE: GUI Terminal Front-End
|
||||
* PROGRAMMERS: Gé van Geldorp
|
||||
* Johannes Anderwald
|
||||
@@ -138,9 +138,9 @@ VOID
|
||||
CreateSysMenu(HWND hWnd);
|
||||
|
||||
static DWORD NTAPI
|
||||
GuiConsoleInputThread(PVOID Data)
|
||||
GuiConsoleInputThread(PVOID Param)
|
||||
{
|
||||
PHANDLE GraphicsStartupEvent = (PHANDLE)Data;
|
||||
PHANDLE GraphicsStartupEvent = (PHANDLE)Param;
|
||||
LONG WindowCount = 0;
|
||||
MSG msg;
|
||||
|
||||
@@ -348,12 +348,12 @@ GuiInitFrontEnd(IN OUT PFRONTEND This,
|
||||
PGUI_CONSOLE_DATA GuiData;
|
||||
GUI_CONSOLE_INFO TermInfo;
|
||||
|
||||
if (This == NULL || Console == NULL || This->OldData == NULL)
|
||||
if (This == NULL || Console == NULL || This->Context2 == NULL)
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
|
||||
ASSERT(This->Console == Console);
|
||||
|
||||
GuiInitInfo = This->OldData;
|
||||
GuiInitInfo = This->Context2;
|
||||
|
||||
if (GuiInitInfo->ConsoleInfo == NULL || GuiInitInfo->ConsoleStartInfo == NULL)
|
||||
return STATUS_INVALID_PARAMETER;
|
||||
@@ -368,7 +368,7 @@ GuiInitFrontEnd(IN OUT PFRONTEND This,
|
||||
DPRINT1("CONSRV: Failed to create GUI_CONSOLE_DATA\n");
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
///// /* HACK */ Console->FrontEndIFace.Data = (PVOID)GuiData; /* HACK */
|
||||
///// /* HACK */ Console->FrontEndIFace.Context = (PVOID)GuiData; /* HACK */
|
||||
GuiData->Console = Console;
|
||||
GuiData->ActiveBuffer = Console->ActiveBuffer;
|
||||
GuiData->hWindow = NULL;
|
||||
@@ -472,9 +472,9 @@ GuiInitFrontEnd(IN OUT PFRONTEND This,
|
||||
// TODO: Retrieve the selection mode via the registry.
|
||||
|
||||
/* Finally, finish to initialize the frontend structure */
|
||||
This->Data = GuiData;
|
||||
if (This->OldData) ConsoleFreeHeap(This->OldData);
|
||||
This->OldData = NULL;
|
||||
This->Context = GuiData;
|
||||
if (This->Context2) ConsoleFreeHeap(This->Context2);
|
||||
This->Context2 = NULL;
|
||||
|
||||
/*
|
||||
* We need to wait until the GUI has been fully initialized
|
||||
@@ -512,7 +512,7 @@ GuiInitFrontEnd(IN OUT PFRONTEND This,
|
||||
static VOID NTAPI
|
||||
GuiDeinitFrontEnd(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
DPRINT("Send PM_DESTROY_CONSOLE message and wait on hGuiTermEvent...\n");
|
||||
PostThreadMessageW(dwInputThreadId, PM_DESTROY_CONSOLE, 0, (LPARAM)GuiData);
|
||||
@@ -534,7 +534,7 @@ GuiDeinitFrontEnd(IN OUT PFRONTEND This)
|
||||
DestroyIcon(GuiData->hIconSm);
|
||||
}
|
||||
|
||||
This->Data = NULL;
|
||||
This->Context = NULL;
|
||||
DeleteCriticalSection(&GuiData->Lock);
|
||||
ConsoleFreeHeap(GuiData);
|
||||
|
||||
@@ -545,7 +545,7 @@ static VOID NTAPI
|
||||
GuiDrawRegion(IN OUT PFRONTEND This,
|
||||
SMALL_RECT* Region)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/* Do nothing if the window is hidden */
|
||||
if (!GuiData->IsWindowVisible) return;
|
||||
@@ -562,7 +562,7 @@ GuiWriteStream(IN OUT PFRONTEND This,
|
||||
PWCHAR Buffer,
|
||||
UINT Length)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
PCONSOLE_SCREEN_BUFFER Buff;
|
||||
SHORT CursorEndX, CursorEndY;
|
||||
RECT ScrollRect;
|
||||
@@ -619,7 +619,7 @@ GuiWriteStream(IN OUT PFRONTEND This,
|
||||
/* static */ VOID NTAPI
|
||||
GuiRingBell(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/* Emit an error beep sound */
|
||||
SendNotifyMessage(GuiData->hWindow, PM_CONSOLE_BEEP, 0, 0);
|
||||
@@ -629,7 +629,7 @@ static BOOL NTAPI
|
||||
GuiSetCursorInfo(IN OUT PFRONTEND This,
|
||||
PCONSOLE_SCREEN_BUFFER Buff)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/* Do nothing if the window is hidden */
|
||||
if (!GuiData->IsWindowVisible) return TRUE;
|
||||
@@ -648,7 +648,7 @@ GuiSetScreenInfo(IN OUT PFRONTEND This,
|
||||
SHORT OldCursorX,
|
||||
SHORT OldCursorY)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/* Do nothing if the window is hidden */
|
||||
if (!GuiData->IsWindowVisible) return TRUE;
|
||||
@@ -667,7 +667,7 @@ GuiSetScreenInfo(IN OUT PFRONTEND This,
|
||||
static VOID NTAPI
|
||||
GuiResizeTerminal(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/* Resize the window to the user's values */
|
||||
PostMessageW(GuiData->hWindow, PM_RESIZE_TERMINAL, 0, 0);
|
||||
@@ -676,7 +676,7 @@ GuiResizeTerminal(IN OUT PFRONTEND This)
|
||||
static VOID NTAPI
|
||||
GuiSetActiveScreenBuffer(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
PCONSOLE_SCREEN_BUFFER ActiveBuffer;
|
||||
HPALETTE hPalette;
|
||||
|
||||
@@ -720,7 +720,7 @@ static VOID NTAPI
|
||||
GuiReleaseScreenBuffer(IN OUT PFRONTEND This,
|
||||
IN PCONSOLE_SCREEN_BUFFER ScreenBuffer)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/*
|
||||
* If we were notified to release a screen buffer that is not actually
|
||||
@@ -767,7 +767,7 @@ GuiSetMouseCursor(IN OUT PFRONTEND This,
|
||||
static VOID NTAPI
|
||||
GuiRefreshInternalInfo(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/* Update the console leader information held by the window */
|
||||
SetConWndConsoleLeaderCID(GuiData);
|
||||
@@ -789,7 +789,7 @@ GuiRefreshInternalInfo(IN OUT PFRONTEND This)
|
||||
static VOID NTAPI
|
||||
GuiChangeTitle(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
// PostMessageW(GuiData->hWindow, PM_CONSOLE_SET_TITLE, 0, 0);
|
||||
SetWindowText(GuiData->hWindow, GuiData->Console->Title.Buffer);
|
||||
}
|
||||
@@ -798,7 +798,7 @@ static BOOL NTAPI
|
||||
GuiChangeIcon(IN OUT PFRONTEND This,
|
||||
HICON IconHandle)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
HICON hIcon, hIconSm;
|
||||
|
||||
if (IconHandle == NULL)
|
||||
@@ -842,7 +842,7 @@ GuiChangeIcon(IN OUT PFRONTEND This,
|
||||
static HWND NTAPI
|
||||
GuiGetConsoleWindowHandle(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
return GuiData->hWindow;
|
||||
}
|
||||
|
||||
@@ -850,7 +850,7 @@ static VOID NTAPI
|
||||
GuiGetLargestConsoleWindowSize(IN OUT PFRONTEND This,
|
||||
PCOORD pSize)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
PCONSOLE_SCREEN_BUFFER ActiveBuffer;
|
||||
RECT WorkArea;
|
||||
LONG width, height;
|
||||
@@ -893,7 +893,7 @@ static BOOL NTAPI
|
||||
GuiGetSelectionInfo(IN OUT PFRONTEND This,
|
||||
PCONSOLE_SELECTION_INFO pSelectionInfo)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
if (pSelectionInfo == NULL) return FALSE;
|
||||
|
||||
@@ -909,7 +909,7 @@ GuiSetPalette(IN OUT PFRONTEND This,
|
||||
HPALETTE PaletteHandle,
|
||||
UINT PaletteUsage)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
HPALETTE OldPalette;
|
||||
|
||||
// if (GetType(GuiData->ActiveBuffer) != GRAPHICS_BUFFER) return FALSE;
|
||||
@@ -934,7 +934,7 @@ GuiSetPalette(IN OUT PFRONTEND This,
|
||||
static ULONG NTAPI
|
||||
GuiGetDisplayMode(IN OUT PFRONTEND This)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
ULONG DisplayMode = 0;
|
||||
|
||||
if (GuiData->GuiInfo.FullScreen)
|
||||
@@ -949,7 +949,7 @@ static BOOL NTAPI
|
||||
GuiSetDisplayMode(IN OUT PFRONTEND This,
|
||||
ULONG NewMode)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
BOOL FullScreen;
|
||||
|
||||
if (NewMode & ~(CONSOLE_FULLSCREEN_MODE | CONSOLE_WINDOWED_MODE))
|
||||
@@ -972,7 +972,7 @@ static INT NTAPI
|
||||
GuiShowMouseCursor(IN OUT PFRONTEND This,
|
||||
BOOL Show)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
if (GuiData->IsWindowVisible)
|
||||
{
|
||||
@@ -991,7 +991,7 @@ static BOOL NTAPI
|
||||
GuiSetMouseCursor(IN OUT PFRONTEND This,
|
||||
HCURSOR CursorHandle)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
/* Do nothing if the window is hidden */
|
||||
if (!GuiData->IsWindowVisible) return TRUE;
|
||||
@@ -1013,7 +1013,7 @@ GuiMenuControl(IN OUT PFRONTEND This,
|
||||
UINT CmdIdLow,
|
||||
UINT CmdIdHigh)
|
||||
{
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
|
||||
GuiData->CmdIdLow = CmdIdLow ;
|
||||
GuiData->CmdIdHigh = CmdIdHigh;
|
||||
@@ -1031,7 +1031,7 @@ GuiSetMenuClose(IN OUT PFRONTEND This,
|
||||
* for more information.
|
||||
*/
|
||||
|
||||
PGUI_CONSOLE_DATA GuiData = This->Data;
|
||||
PGUI_CONSOLE_DATA GuiData = This->Context;
|
||||
HMENU hSysMenu = GetSystemMenu(GuiData->hWindow, FALSE);
|
||||
|
||||
if (hSysMenu == NULL) return FALSE;
|
||||
@@ -1100,9 +1100,9 @@ GuiLoadFrontEnd(IN OUT PFRONTEND FrontEnd,
|
||||
GuiInitInfo->IsWindowVisible = ConsoleInitInfo->IsWindowVisible;
|
||||
|
||||
/* Finally, initialize the frontend structure */
|
||||
FrontEnd->Vtbl = &GuiVtbl;
|
||||
FrontEnd->Data = NULL;
|
||||
FrontEnd->OldData = GuiInitInfo;
|
||||
FrontEnd->Vtbl = &GuiVtbl;
|
||||
FrontEnd->Context = NULL;
|
||||
FrontEnd->Context2 = GuiInitInfo;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -1112,8 +1112,8 @@ GuiUnloadFrontEnd(IN OUT PFRONTEND FrontEnd)
|
||||
{
|
||||
if (FrontEnd == NULL) return STATUS_INVALID_PARAMETER;
|
||||
|
||||
if (FrontEnd->Data) GuiDeinitFrontEnd(FrontEnd);
|
||||
if (FrontEnd->OldData) ConsoleFreeHeap(FrontEnd->OldData);
|
||||
if (FrontEnd->Context ) GuiDeinitFrontEnd(FrontEnd);
|
||||
if (FrontEnd->Context2) ConsoleFreeHeap(FrontEnd->Context2);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/gui/guiterm.h
|
||||
* FILE: consrv/frontends/gui/guiterm.h
|
||||
* PURPOSE: GUI Terminal Front-End
|
||||
* PROGRAMMERS: Gé van Geldorp
|
||||
* Johannes Anderwald
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/resource.h
|
||||
* PURPOSE: Resource #defines
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: consrv/resource.h
|
||||
* PURPOSE: Resource #defines
|
||||
*/
|
||||
|
||||
#pragma once
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/gui/text.c
|
||||
* FILE: consrv/frontends/gui/text.c
|
||||
* PURPOSE: GUI Terminal Front-End - Support for text-mode screen-buffers
|
||||
* PROGRAMMERS: Gé van Geldorp
|
||||
* Johannes Anderwald
|
||||
@@ -354,7 +354,7 @@ GuiPaintTextModeBuffer(PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||
|
||||
if (Buffer->Buffer == NULL) return;
|
||||
|
||||
if (!ConDrvValidateConsoleUnsafe(Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
if (!ConDrvValidateConsoleUnsafe((PCONSOLE)Console, CONSOLE_RUNNING, TRUE)) return;
|
||||
|
||||
rcFramebuffer->left = Buffer->ViewOrigin.X * GuiData->CharWidth + rcView->left;
|
||||
rcFramebuffer->top = Buffer->ViewOrigin.Y * GuiData->CharHeight + rcView->top;
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/input.c
|
||||
* FILE: consrv/frontends/input.c
|
||||
* PURPOSE: Common Front-Ends Input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
@@ -71,7 +71,7 @@ ConioProcessKey(PCONSRV_CONSOLE Console, MSG* msg)
|
||||
|
||||
INPUT_RECORD er;
|
||||
|
||||
if (NULL == Console)
|
||||
if (Console == NULL)
|
||||
{
|
||||
DPRINT1("No Active Console!\n");
|
||||
return;
|
||||
@@ -169,7 +169,7 @@ ConioProcessKey(PCONSRV_CONSOLE Console, MSG* msg)
|
||||
}
|
||||
}
|
||||
|
||||
ConioDrawConsole((PCONSOLE)Console);
|
||||
ConioDrawConsole(Console);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
@@ -230,7 +230,7 @@ ConSrvInitTerminal(IN OUT PTERMINAL Terminal,
|
||||
/* Initialize the ConSrv terminal */
|
||||
Terminal->Vtbl = &ConSrvTermVtbl;
|
||||
// Terminal->Console will be initialized by ConDrvRegisterTerminal
|
||||
Terminal->Data = FrontEnd; /* We store the frontend pointer in the terminal private data */
|
||||
Terminal->Context = FrontEnd; /* We store the frontend pointer in the terminal private context */
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -239,10 +239,10 @@ NTSTATUS NTAPI
|
||||
ConSrvDeinitTerminal(IN OUT PTERMINAL Terminal)
|
||||
{
|
||||
NTSTATUS Status = STATUS_SUCCESS;
|
||||
PFRONTEND FrontEnd = Terminal->Data;
|
||||
PFRONTEND FrontEnd = Terminal->Context;
|
||||
|
||||
/* Reset the ConSrv terminal */
|
||||
Terminal->Data = NULL;
|
||||
Terminal->Context = NULL;
|
||||
Terminal->Vtbl = NULL;
|
||||
|
||||
/* Unload the frontend */
|
||||
@@ -263,7 +263,7 @@ ConSrvTermInitTerminal(IN OUT PTERMINAL This,
|
||||
IN PCONSOLE Console)
|
||||
{
|
||||
NTSTATUS Status;
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
|
||||
/* Initialize the console pointer for our frontend */
|
||||
FrontEnd->Console = Console;
|
||||
@@ -286,7 +286,7 @@ ConSrvTermInitTerminal(IN OUT PTERMINAL This,
|
||||
static VOID NTAPI
|
||||
ConSrvTermDeinitTerminal(IN OUT PTERMINAL This)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
FrontEnd->Vtbl->DeinitFrontEnd(FrontEnd);
|
||||
}
|
||||
|
||||
@@ -296,17 +296,18 @@ ConSrvTermDeinitTerminal(IN OUT PTERMINAL This)
|
||||
|
||||
static NTSTATUS NTAPI
|
||||
ConSrvTermReadStream(IN OUT PTERMINAL This,
|
||||
/**/IN PUNICODE_STRING ExeName /**/OPTIONAL/**/,/**/
|
||||
IN BOOLEAN Unicode,
|
||||
/**PWCHAR Buffer,**/
|
||||
OUT PVOID Buffer,
|
||||
IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
|
||||
IN PVOID Parameter OPTIONAL,
|
||||
IN ULONG NumCharsToRead,
|
||||
OUT PULONG NumCharsRead OPTIONAL)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
PCONSRV_CONSOLE Console = FrontEnd->Console;
|
||||
PCONSOLE_INPUT_BUFFER InputBuffer = &Console->InputBuffer;
|
||||
PUNICODE_STRING ExeName = Parameter;
|
||||
|
||||
// STATUS_PENDING : Wait if more to read ; STATUS_SUCCESS : Don't wait.
|
||||
NTSTATUS Status = STATUS_PENDING;
|
||||
@@ -636,7 +637,7 @@ ConSrvTermWriteStream(IN OUT PTERMINAL This,
|
||||
DWORD Length,
|
||||
BOOL Attrib)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
return ConioWriteConsole(FrontEnd,
|
||||
Buff,
|
||||
Buffer,
|
||||
@@ -648,11 +649,26 @@ ConSrvTermWriteStream(IN OUT PTERMINAL This,
|
||||
|
||||
|
||||
|
||||
VOID
|
||||
ConioDrawConsole(PCONSRV_CONSOLE Console)
|
||||
{
|
||||
SMALL_RECT Region;
|
||||
PCONSOLE_SCREEN_BUFFER ActiveBuffer = Console->ActiveBuffer;
|
||||
|
||||
if (!ActiveBuffer) return;
|
||||
|
||||
ConioInitRect(&Region, 0, 0,
|
||||
ActiveBuffer->ViewSize.Y - 1,
|
||||
ActiveBuffer->ViewSize.X - 1);
|
||||
TermDrawRegion(Console, &Region);
|
||||
// Console->FrontEndIFace.Vtbl->DrawRegion(&Console->FrontEndIFace, &Region);
|
||||
}
|
||||
|
||||
static VOID NTAPI
|
||||
ConSrvTermDrawRegion(IN OUT PTERMINAL This,
|
||||
SMALL_RECT* Region)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
FrontEnd->Vtbl->DrawRegion(FrontEnd, Region);
|
||||
}
|
||||
|
||||
@@ -660,7 +676,7 @@ static BOOL NTAPI
|
||||
ConSrvTermSetCursorInfo(IN OUT PTERMINAL This,
|
||||
PCONSOLE_SCREEN_BUFFER ScreenBuffer)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
return FrontEnd->Vtbl->SetCursorInfo(FrontEnd, ScreenBuffer);
|
||||
}
|
||||
|
||||
@@ -670,7 +686,7 @@ ConSrvTermSetScreenInfo(IN OUT PTERMINAL This,
|
||||
SHORT OldCursorX,
|
||||
SHORT OldCursorY)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
return FrontEnd->Vtbl->SetScreenInfo(FrontEnd,
|
||||
ScreenBuffer,
|
||||
OldCursorX,
|
||||
@@ -680,14 +696,14 @@ ConSrvTermSetScreenInfo(IN OUT PTERMINAL This,
|
||||
static VOID NTAPI
|
||||
ConSrvTermResizeTerminal(IN OUT PTERMINAL This)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
FrontEnd->Vtbl->ResizeTerminal(FrontEnd);
|
||||
}
|
||||
|
||||
static VOID NTAPI
|
||||
ConSrvTermSetActiveScreenBuffer(IN OUT PTERMINAL This)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
FrontEnd->Vtbl->SetActiveScreenBuffer(FrontEnd);
|
||||
}
|
||||
|
||||
@@ -695,7 +711,7 @@ static VOID NTAPI
|
||||
ConSrvTermReleaseScreenBuffer(IN OUT PTERMINAL This,
|
||||
IN PCONSOLE_SCREEN_BUFFER ScreenBuffer)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
FrontEnd->Vtbl->ReleaseScreenBuffer(FrontEnd, ScreenBuffer);
|
||||
}
|
||||
|
||||
@@ -703,7 +719,7 @@ static VOID NTAPI
|
||||
ConSrvTermGetLargestConsoleWindowSize(IN OUT PTERMINAL This,
|
||||
PCOORD pSize)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
FrontEnd->Vtbl->GetLargestConsoleWindowSize(FrontEnd, pSize);
|
||||
}
|
||||
|
||||
@@ -712,7 +728,7 @@ ConSrvTermSetPalette(IN OUT PTERMINAL This,
|
||||
HPALETTE PaletteHandle,
|
||||
UINT PaletteUsage)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
return FrontEnd->Vtbl->SetPalette(FrontEnd, PaletteHandle, PaletteUsage);
|
||||
}
|
||||
|
||||
@@ -720,7 +736,7 @@ static INT NTAPI
|
||||
ConSrvTermShowMouseCursor(IN OUT PTERMINAL This,
|
||||
BOOL Show)
|
||||
{
|
||||
PFRONTEND FrontEnd = This->Data;
|
||||
PFRONTEND FrontEnd = This->Context;
|
||||
return FrontEnd->Vtbl->ShowMouseCursor(FrontEnd, Show);
|
||||
}
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/tui/tuiterm.c
|
||||
* FILE: consrv/frontends/tui/tuiterm.c
|
||||
* PURPOSE: TUI Terminal Front-End - Virtual Consoles...
|
||||
* PROGRAMMERS: David Welch
|
||||
* Gé van Geldorp
|
||||
@@ -291,7 +291,7 @@ TuiConsoleWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
#endif
|
||||
|
||||
if (ConDrvValidateConsoleUnsafe(ActiveConsole->Console, CONSOLE_RUNNING, TRUE))
|
||||
if (ConDrvValidateConsoleUnsafe((PCONSOLE)ActiveConsole->Console, CONSOLE_RUNNING, TRUE))
|
||||
{
|
||||
MSG Message;
|
||||
Message.hwnd = hWnd;
|
||||
@@ -307,7 +307,7 @@ TuiConsoleWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
|
||||
case WM_ACTIVATE:
|
||||
{
|
||||
if (ConDrvValidateConsoleUnsafe(ActiveConsole->Console, CONSOLE_RUNNING, TRUE))
|
||||
if (ConDrvValidateConsoleUnsafe((PCONSOLE)ActiveConsole->Console, CONSOLE_RUNNING, TRUE))
|
||||
{
|
||||
if (LOWORD(wParam) != WA_INACTIVE)
|
||||
{
|
||||
@@ -327,9 +327,9 @@ TuiConsoleWndProc(HWND hWnd, UINT msg, WPARAM wParam, LPARAM lParam)
|
||||
}
|
||||
|
||||
static DWORD NTAPI
|
||||
TuiConsoleThread(PVOID Data)
|
||||
TuiConsoleThread(PVOID Param)
|
||||
{
|
||||
PTUI_CONSOLE_DATA TuiData = (PTUI_CONSOLE_DATA)Data;
|
||||
PTUI_CONSOLE_DATA TuiData = (PTUI_CONSOLE_DATA)Param;
|
||||
PCONSRV_CONSOLE Console = TuiData->Console;
|
||||
HWND NewWindow;
|
||||
MSG msg;
|
||||
@@ -482,7 +482,7 @@ TuiInitFrontEnd(IN OUT PFRONTEND This,
|
||||
DPRINT1("CONSRV: Failed to create TUI_CONSOLE_DATA\n");
|
||||
return STATUS_UNSUCCESSFUL;
|
||||
}
|
||||
// Console->FrontEndIFace.Data = (PVOID)TuiData;
|
||||
// Console->FrontEndIFace.Context = (PVOID)TuiData;
|
||||
TuiData->Console = Console;
|
||||
TuiData->hWindow = NULL;
|
||||
|
||||
@@ -530,8 +530,8 @@ TuiInitFrontEnd(IN OUT PFRONTEND This,
|
||||
LeaveCriticalSection(&ActiveVirtConsLock);
|
||||
|
||||
/* Finally, initialize the frontend structure */
|
||||
This->Data = TuiData;
|
||||
This->OldData = NULL;
|
||||
This->Context = TuiData;
|
||||
This->Context2 = NULL;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -540,7 +540,7 @@ static VOID NTAPI
|
||||
TuiDeinitFrontEnd(IN OUT PFRONTEND This)
|
||||
{
|
||||
// PCONSRV_CONSOLE Console = This->Console;
|
||||
PTUI_CONSOLE_DATA TuiData = This->Data; // Console->FrontEndIFace.Data;
|
||||
PTUI_CONSOLE_DATA TuiData = This->Context; // Console->FrontEndIFace.Context;
|
||||
|
||||
/* Close the notification window */
|
||||
DestroyWindow(TuiData->hWindow);
|
||||
@@ -571,8 +571,8 @@ TuiDeinitFrontEnd(IN OUT PFRONTEND This)
|
||||
/* Switch to the next console */
|
||||
if (NULL != ActiveConsole) ConioDrawConsole(ActiveConsole->Console);
|
||||
|
||||
// Console->FrontEndIFace.Data = NULL;
|
||||
This->Data = NULL;
|
||||
// Console->FrontEndIFace.Context = NULL;
|
||||
This->Context = NULL;
|
||||
DeleteCriticalSection(&TuiData->Lock);
|
||||
ConsoleFreeHeap(TuiData);
|
||||
}
|
||||
@@ -723,7 +723,7 @@ TuiChangeIcon(IN OUT PFRONTEND This,
|
||||
static HWND NTAPI
|
||||
TuiGetConsoleWindowHandle(IN OUT PFRONTEND This)
|
||||
{
|
||||
PTUI_CONSOLE_DATA TuiData = This->Data;
|
||||
PTUI_CONSOLE_DATA TuiData = This->Context;
|
||||
return TuiData->hWindow;
|
||||
}
|
||||
|
||||
@@ -845,9 +845,9 @@ TuiLoadFrontEnd(IN OUT PFRONTEND FrontEnd,
|
||||
if (!TuiInit(ConsoleInfo->CodePage)) return STATUS_UNSUCCESSFUL;
|
||||
|
||||
/* Finally, initialize the frontend structure */
|
||||
FrontEnd->Vtbl = &TuiVtbl;
|
||||
FrontEnd->Data = NULL;
|
||||
FrontEnd->OldData = NULL;
|
||||
FrontEnd->Vtbl = &TuiVtbl;
|
||||
FrontEnd->Context = NULL;
|
||||
FrontEnd->Context2 = NULL;
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
@@ -856,7 +856,7 @@ NTSTATUS NTAPI
|
||||
TuiUnloadFrontEnd(IN OUT PFRONTEND FrontEnd)
|
||||
{
|
||||
if (FrontEnd == NULL) return STATUS_INVALID_PARAMETER;
|
||||
if (FrontEnd->Data) TuiDeinitFrontEnd(FrontEnd);
|
||||
if (FrontEnd->Context) TuiDeinitFrontEnd(FrontEnd);
|
||||
|
||||
return STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/frontends/tui/tuiterm.h
|
||||
* FILE: consrv/frontends/tui/tuiterm.h
|
||||
* PURPOSE: TUI Terminal Front-End
|
||||
* PROGRAMMERS: David Welch
|
||||
* Gé van Geldorp
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/handle.c
|
||||
* FILE: consrv/handle.c
|
||||
* PURPOSE: Console I/O Handles functions
|
||||
* PROGRAMMERS: David Welch
|
||||
* Jeffrey Morlan
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/handle.h
|
||||
* FILE: consrv/handle.h
|
||||
* PURPOSE: Console I/O Handles functions
|
||||
* PROGRAMMERS: David Welch
|
||||
* Jeffrey Morlan
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/heap.h
|
||||
* FILE: consrv/heap.h
|
||||
* PURPOSE: Heap Helpers
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/history.c
|
||||
* FILE: consrv/history.c
|
||||
* PURPOSE: Console line input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/history.h
|
||||
* FILE: consrv/history.h
|
||||
* PURPOSE: Console line input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
*/
|
||||
|
||||
@@ -108,8 +108,6 @@ struct _CONSOLE_SCREEN_BUFFER
|
||||
// WORD ScreenDefaultAttrib; /* Default screen char attribute */
|
||||
// WORD PopupDefaultAttrib; /* Default popup char attribute */
|
||||
USHORT Mode; /* Output buffer modes */
|
||||
|
||||
// PVOID Data; /* Private data for the frontend to use */
|
||||
};
|
||||
|
||||
|
||||
@@ -217,13 +215,13 @@ typedef struct _TERMINAL_VTBL
|
||||
/* Interface used only for text-mode screen buffers */
|
||||
|
||||
NTSTATUS (NTAPI *ReadStream)(IN OUT PTERMINAL This,
|
||||
/**/IN PUNICODE_STRING ExeName /**/OPTIONAL/**/,/**/
|
||||
IN BOOLEAN Unicode,
|
||||
/**PWCHAR Buffer,**/
|
||||
OUT PVOID Buffer,
|
||||
IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
|
||||
IN ULONG NumCharsToRead,
|
||||
OUT PULONG NumCharsRead OPTIONAL);
|
||||
IN BOOLEAN Unicode,
|
||||
/**PWCHAR Buffer,**/
|
||||
OUT PVOID Buffer,
|
||||
IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
|
||||
IN PVOID Parameter OPTIONAL,
|
||||
IN ULONG NumCharsToRead,
|
||||
OUT PULONG NumCharsRead OPTIONAL);
|
||||
NTSTATUS (NTAPI *WriteStream)(IN OUT PTERMINAL This,
|
||||
PTEXTMODE_SCREEN_BUFFER Buff,
|
||||
PWCHAR Buffer,
|
||||
@@ -259,7 +257,7 @@ typedef struct _TERMINAL_VTBL
|
||||
INT (NTAPI *ShowMouseCursor)(IN OUT PTERMINAL This,
|
||||
BOOL Show);
|
||||
|
||||
#if 0 // Possible future front-end interface
|
||||
#if 0 // Possible future terminal interface
|
||||
BOOL (NTAPI *GetTerminalProperty)(IN OUT PTERMINAL This,
|
||||
ULONG Flag,
|
||||
PVOID Info,
|
||||
@@ -274,8 +272,8 @@ typedef struct _TERMINAL_VTBL
|
||||
struct _TERMINAL
|
||||
{
|
||||
PTERMINAL_VTBL Vtbl; /* Virtual table */
|
||||
struct _CONSOLE* Console; /* Console to which the frontend is attached to */
|
||||
PVOID Data; /* Private data */
|
||||
struct _CONSOLE* Console; /* Console to which the terminal is attached to */
|
||||
PVOID Context; /* Private context */
|
||||
};
|
||||
|
||||
/*
|
||||
@@ -307,12 +305,12 @@ typedef struct _CONSOLE
|
||||
LONG ReferenceCount; /* Is incremented each time a handle to something in the console (a screen-buffer or the input buffer of this console) gets referenced */
|
||||
CRITICAL_SECTION Lock;
|
||||
|
||||
CONSOLE_STATE State; /* State of the console */
|
||||
TERMINAL TermIFace; /* Frontend-specific interface */
|
||||
|
||||
ULONG ConsoleID; /* The ID of the console */
|
||||
LIST_ENTRY ListEntry; /* Entry in the list of consoles */
|
||||
|
||||
CONSOLE_STATE State; /* State of the console */
|
||||
TERMINAL TermIFace; /* Terminal-specific interface */
|
||||
|
||||
HANDLE UnpauseEvent; /* When != NULL, event for pausing the console */
|
||||
|
||||
/******************************** Input buffer ********************************/
|
||||
@@ -347,7 +345,6 @@ ConSrvConsoleCtrlEvent(IN ULONG CtrlEvent,
|
||||
|
||||
/* conoutput.c */
|
||||
PCHAR_INFO ConioCoordToPointer(PTEXTMODE_SCREEN_BUFFER Buff, ULONG X, ULONG Y);
|
||||
VOID ConioDrawConsole(PCONSOLE /*PCONSRV_CONSOLE*/ Console);
|
||||
NTSTATUS ConioResizeBuffer(PCONSOLE /*PCONSRV_CONSOLE*/ Console,
|
||||
PTEXTMODE_SCREEN_BUFFER ScreenBuffer,
|
||||
COORD Size);
|
||||
|
||||
@@ -2,7 +2,8 @@
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: consrv/include/conio_winsrv.h
|
||||
* PURPOSE: Public Console I/O Interface
|
||||
* PURPOSE: Public Console I/O Interface - Offers wrap-up structures
|
||||
* over the console objects exposed by the console driver.
|
||||
* PROGRAMMERS: Gé van Geldorp
|
||||
* Jeffrey Morlan
|
||||
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
@@ -116,8 +117,8 @@ struct _FRONTEND
|
||||
NTSTATUS (NTAPI *UnloadFrontEnd)(IN OUT PFRONTEND This);
|
||||
|
||||
struct _CONSRV_CONSOLE* Console; /* Console to which the frontend is attached to */
|
||||
PVOID Data; /* Private data */
|
||||
PVOID OldData; /* Reserved */
|
||||
PVOID Context; /* Private context */
|
||||
PVOID Context2; /* Private context */
|
||||
};
|
||||
|
||||
/* PauseFlags values (internal only) */
|
||||
@@ -217,9 +218,11 @@ ConioProcessInputEvent(PCONSRV_CONSOLE Console,
|
||||
|
||||
/* conoutput.c */
|
||||
PCHAR_INFO ConioCoordToPointer(PTEXTMODE_SCREEN_BUFFER Buff, ULONG X, ULONG Y);
|
||||
VOID ConioDrawConsole(PCONSOLE /*PCONSRV_CONSOLE*/ Console);
|
||||
NTSTATUS ConioResizeBuffer(PCONSOLE /*PCONSRV_CONSOLE*/ Console,
|
||||
PTEXTMODE_SCREEN_BUFFER ScreenBuffer,
|
||||
COORD Size);
|
||||
|
||||
/* terminal.c */
|
||||
VOID ConioDrawConsole(PCONSRV_CONSOLE Console);
|
||||
|
||||
/* EOF */
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/include/console.h
|
||||
* FILE: consrv/include/console.h
|
||||
* PURPOSE: Public Console Management Interface
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/include/settings.h
|
||||
* FILE: consrv/include/settings.h
|
||||
* PURPOSE: Public Console Settings Management Interface
|
||||
* PROGRAMMERS: Johannes Anderwald
|
||||
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/include/term.h
|
||||
* FILE: consrv/include/term.h
|
||||
* PURPOSE: Internal Frontend Interface
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
@@ -10,9 +10,9 @@
|
||||
|
||||
/* Macros used to call functions in the TERMINAL_VTBL virtual table */
|
||||
|
||||
#define TermReadStream(Console, ExeName, /**/ Unicode, /**/ Buffer, ReadControl, NumCharsToRead, NumCharsRead) \
|
||||
(Console)->TermIFace.Vtbl->ReadStream(&(Console)->TermIFace, (ExeName), /**/ (Unicode), /**/ \
|
||||
(Buffer), (ReadControl), (NumCharsToRead), (NumCharsRead))
|
||||
#define TermReadStream(Console, /**/ Unicode, /**/ Buffer, ReadControl, Parameter, NumCharsToRead, NumCharsRead) \
|
||||
(Console)->TermIFace.Vtbl->ReadStream(&(Console)->TermIFace, /**/ (Unicode), /**/ \
|
||||
(Buffer), (ReadControl), (Parameter), (NumCharsToRead), (NumCharsRead))
|
||||
|
||||
#define TermWriteStream(Console, ScreenBuffer, Buffer, Length, Attrib) \
|
||||
(Console)->TermIFace.Vtbl->WriteStream(&(Console)->TermIFace, (ScreenBuffer), (Buffer), \
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/init.c
|
||||
* FILE: consrv/init.c
|
||||
* PURPOSE: Initialization
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/lineinput.c
|
||||
* FILE: consrv/lineinput.c
|
||||
* PURPOSE: Console line input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/lineinput.h
|
||||
* FILE: consrv/lineinput.h
|
||||
* PURPOSE: Console line input functions
|
||||
* PROGRAMMERS: Jeffrey Morlan
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/popup.c
|
||||
* FILE: consrv/popup.c
|
||||
* PURPOSE: Console popup windows
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/popup.h
|
||||
* FILE: consrv/popup.h
|
||||
* PURPOSE: Console popup windows
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/procinit.h
|
||||
* FILE: consrv/procinit.h
|
||||
* PURPOSE: Functions for console processes initialization
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/resource.h
|
||||
* FILE: consrv/resource.h
|
||||
* PURPOSE: Resource #defines
|
||||
*/
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/settings.c
|
||||
* FILE: consrv/settings.c
|
||||
* PURPOSE: Console settings management
|
||||
* PROGRAMMERS: Johannes Anderwald
|
||||
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/shutdown.c
|
||||
* FILE: consrv/shutdown.c
|
||||
* PURPOSE: Processes Shutdown
|
||||
* PROGRAMMERS: Alex Ionescu
|
||||
*/
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
/*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS Console Server DLL
|
||||
* FILE: win32ss/user/winsrv/consrv/subsysreg.c
|
||||
* FILE: consrv/subsysreg.c
|
||||
* PURPOSE: Registration APIs for VDM, OS2 and IME subsystems
|
||||
* PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user