mirror of
https://github.com/reactos/reactos.git
synced 2025-02-24 17:34:57 +00:00
[KERNEL32][CONSRV]
Half-plement SetConsolePalette. svn path=/trunk/; revision=59711
This commit is contained in:
parent
d802ba093a
commit
38c812cfc9
6 changed files with 64 additions and 8 deletions
|
@ -711,7 +711,7 @@ SetConsoleMenuClose(BOOL bEnable)
|
||||||
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* @unimplemented (Undocumented)
|
* @implemented (Undocumented)
|
||||||
* @note See http://comments.gmane.org/gmane.comp.lang.harbour.devel/27844
|
* @note See http://comments.gmane.org/gmane.comp.lang.harbour.devel/27844
|
||||||
* Usage example: https://github.com/harbour/core/commit/d79a1b7b812cbde6ddf718ebfd6939a24f633e52
|
* Usage example: https://github.com/harbour/core/commit/d79a1b7b812cbde6ddf718ebfd6939a24f633e52
|
||||||
*/
|
*/
|
||||||
|
@ -721,9 +721,24 @@ SetConsolePalette(HANDLE hConsoleOutput,
|
||||||
HPALETTE hPalette,
|
HPALETTE hPalette,
|
||||||
UINT dwUsage)
|
UINT dwUsage)
|
||||||
{
|
{
|
||||||
DPRINT1("SetConsolePalette(0x%x, 0x%x, %d) UNIMPLEMENTED!\n", hConsoleOutput, hPalette, dwUsage);
|
NTSTATUS Status;
|
||||||
SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
|
CONSOLE_API_MESSAGE ApiMessage;
|
||||||
// Return TRUE so that we don't fail when being used by NTVDM even if not implemented.
|
PCONSOLE_SETPALETTE SetPaletteRequest = &ApiMessage.Data.SetPaletteRequest;
|
||||||
|
|
||||||
|
SetPaletteRequest->OutputHandle = hConsoleOutput;
|
||||||
|
SetPaletteRequest->PaletteHandle = hPalette;
|
||||||
|
SetPaletteRequest->Usage = dwUsage;
|
||||||
|
|
||||||
|
Status = CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
|
||||||
|
NULL,
|
||||||
|
CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetPalette),
|
||||||
|
sizeof(CONSOLE_SETPALETTE));
|
||||||
|
if (!NT_SUCCESS(Status))
|
||||||
|
{
|
||||||
|
BaseSetLastNTError(Status);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
return TRUE;
|
return TRUE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -25,6 +25,7 @@ CSR_API(SrvGetConsoleNumberOfInputEvents);
|
||||||
|
|
||||||
/* conoutput.c */
|
/* conoutput.c */
|
||||||
CSR_API(SrvInvalidateBitMapRect);
|
CSR_API(SrvInvalidateBitMapRect);
|
||||||
|
CSR_API(SrvSetConsolePalette);
|
||||||
CSR_API(SrvReadConsoleOutput);
|
CSR_API(SrvReadConsoleOutput);
|
||||||
CSR_API(SrvWriteConsole);
|
CSR_API(SrvWriteConsole);
|
||||||
CSR_API(SrvWriteConsoleOutput);
|
CSR_API(SrvWriteConsoleOutput);
|
||||||
|
|
|
@ -203,6 +203,16 @@ ConDrvInvalidateBitMapRect(IN PCONSOLE Console,
|
||||||
return STATUS_SUCCESS;
|
return STATUS_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NTSTATUS NTAPI
|
||||||
|
ConDrvSetConsolePalette(IN PCONSOLE Console,
|
||||||
|
IN PGRAPHICS_SCREEN_BUFFER Buffer,
|
||||||
|
IN HPALETTE PaletteHandle,
|
||||||
|
IN UINT Usage)
|
||||||
|
{
|
||||||
|
DPRINT1("ConDrvSetConsolePalette is UNIMPLEMENTED but returns STATUS_SUCCESS\n");
|
||||||
|
return STATUS_SUCCESS;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS NTAPI
|
NTSTATUS NTAPI
|
||||||
ConDrvGetConsoleCursorInfo(IN PCONSOLE Console,
|
ConDrvGetConsoleCursorInfo(IN PCONSOLE Console,
|
||||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||||
|
|
|
@ -50,6 +50,36 @@ CSR_API(SrvInvalidateBitMapRect)
|
||||||
return Status;
|
return Status;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
NTSTATUS NTAPI
|
||||||
|
ConDrvSetConsolePalette(IN PCONSOLE Console,
|
||||||
|
IN PGRAPHICS_SCREEN_BUFFER Buffer,
|
||||||
|
IN HPALETTE PaletteHandle,
|
||||||
|
IN UINT Usage);
|
||||||
|
CSR_API(SrvSetConsolePalette)
|
||||||
|
{
|
||||||
|
NTSTATUS Status;
|
||||||
|
PCONSOLE_SETPALETTE SetPaletteRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetPaletteRequest;
|
||||||
|
// PCONSOLE_SCREEN_BUFFER Buffer;
|
||||||
|
PGRAPHICS_SCREEN_BUFFER Buffer;
|
||||||
|
|
||||||
|
DPRINT("SrvSetConsolePalette\n");
|
||||||
|
|
||||||
|
// NOTE: Tests show that this function is used only for graphics screen buffers
|
||||||
|
// and otherwise it returns false + sets last error to invalid handle.
|
||||||
|
Status = ConSrvGetGraphicsBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
|
||||||
|
SetPaletteRequest->OutputHandle,
|
||||||
|
&Buffer, GENERIC_WRITE, TRUE);
|
||||||
|
if (!NT_SUCCESS(Status)) return Status;
|
||||||
|
|
||||||
|
Status = ConDrvSetConsolePalette(Buffer->Header.Console,
|
||||||
|
Buffer,
|
||||||
|
SetPaletteRequest->PaletteHandle,
|
||||||
|
SetPaletteRequest->Usage);
|
||||||
|
|
||||||
|
ConSrvReleaseScreenBuffer(Buffer, TRUE);
|
||||||
|
return Status;
|
||||||
|
}
|
||||||
|
|
||||||
NTSTATUS NTAPI
|
NTSTATUS NTAPI
|
||||||
ConDrvGetConsoleCursorInfo(IN PCONSOLE Console,
|
ConDrvGetConsoleCursorInfo(IN PCONSOLE Console,
|
||||||
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
IN PTEXTMODE_SCREEN_BUFFER Buffer,
|
||||||
|
|
|
@ -220,7 +220,7 @@ CSR_API(SrvSetConsoleCursor)
|
||||||
PCONSOLE_SCREEN_BUFFER Buff;
|
PCONSOLE_SCREEN_BUFFER Buff;
|
||||||
|
|
||||||
// FIXME: Tests show that this function is used only for graphics screen buffers
|
// FIXME: Tests show that this function is used only for graphics screen buffers
|
||||||
// and otherwise it returns false + set last error to invalid handle.
|
// and otherwise it returns false + sets last error to invalid handle.
|
||||||
// NOTE: I find that behaviour is ridiculous but ok, let's accept that at the moment...
|
// NOTE: I find that behaviour is ridiculous but ok, let's accept that at the moment...
|
||||||
Status = ConSrvGetGraphicsBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
|
Status = ConSrvGetGraphicsBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
|
||||||
SetCursorRequest->OutputHandle,
|
SetCursorRequest->OutputHandle,
|
||||||
|
|
|
@ -75,7 +75,7 @@ PCSR_API_ROUTINE ConsoleServerApiDispatchTable[ConsolepMaxApiNumber - CONSRV_FIR
|
||||||
SrvSetConsoleCursor,
|
SrvSetConsoleCursor,
|
||||||
SrvShowConsoleCursor,
|
SrvShowConsoleCursor,
|
||||||
SrvConsoleMenuControl,
|
SrvConsoleMenuControl,
|
||||||
// SrvSetConsolePalette,
|
SrvSetConsolePalette,
|
||||||
SrvSetConsoleDisplayMode,
|
SrvSetConsoleDisplayMode,
|
||||||
// SrvRegisterConsoleVDM,
|
// SrvRegisterConsoleVDM,
|
||||||
SrvGetConsoleHardwareState,
|
SrvGetConsoleHardwareState,
|
||||||
|
@ -166,7 +166,7 @@ BOOLEAN ConsoleServerApiServerValidTable[ConsolepMaxApiNumber - CONSRV_FIRST_API
|
||||||
FALSE, // SrvSetConsoleCursor,
|
FALSE, // SrvSetConsoleCursor,
|
||||||
FALSE, // SrvShowConsoleCursor,
|
FALSE, // SrvShowConsoleCursor,
|
||||||
FALSE, // SrvConsoleMenuControl,
|
FALSE, // SrvConsoleMenuControl,
|
||||||
// FALSE, // SrvSetConsolePalette,
|
FALSE, // SrvSetConsolePalette,
|
||||||
FALSE, // SrvSetConsoleDisplayMode,
|
FALSE, // SrvSetConsoleDisplayMode,
|
||||||
// FALSE, // SrvRegisterConsoleVDM,
|
// FALSE, // SrvRegisterConsoleVDM,
|
||||||
FALSE, // SrvGetConsoleHardwareState,
|
FALSE, // SrvGetConsoleHardwareState,
|
||||||
|
@ -257,7 +257,7 @@ PCHAR ConsoleServerApiNameTable[ConsolepMaxApiNumber - CONSRV_FIRST_API_NUMBER]
|
||||||
"SetConsoleCursor",
|
"SetConsoleCursor",
|
||||||
"ShowConsoleCursor",
|
"ShowConsoleCursor",
|
||||||
"ConsoleMenuControl",
|
"ConsoleMenuControl",
|
||||||
// "SetConsolePalette",
|
"SetConsolePalette",
|
||||||
"SetConsoleDisplayMode",
|
"SetConsoleDisplayMode",
|
||||||
// "RegisterConsoleVDM",
|
// "RegisterConsoleVDM",
|
||||||
"GetConsoleHardwareState",
|
"GetConsoleHardwareState",
|
||||||
|
|
Loading…
Reference in a new issue