[CONSRV]: Implement the skeleton for the console server font APIs; reduces kernel32 console winetest failures to 5 (see r70258 also).

svn path=/trunk/; revision=70268
This commit is contained in:
Hermès Bélusca-Maïto 2015-12-05 00:51:48 +00:00
parent 248a8191f1
commit 405c82f036

View file

@ -210,9 +210,9 @@ CSR_API(SrvSetConsoleCursor)
PCONSRV_CONSOLE Console; PCONSRV_CONSOLE Console;
PCONSOLE_SCREEN_BUFFER Buff; PCONSOLE_SCREEN_BUFFER Buff;
// FIXME: Tests show that this function is used only for graphics screen buffers // NOTE: Tests show that this function is used only for graphics screen buffers
// and otherwise it returns FALSE + sets last error to invalid handle. // and otherwise it returns FALSE and sets last error to ERROR_INVALID_HANDLE.
// NOTE: I find that behaviour is ridiculous but ok, let's accept that at the moment... // I find that behaviour is ridiculous but ok, let's accept it at the moment...
Status = ConSrvGetGraphicsBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process), Status = ConSrvGetGraphicsBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
SetCursorRequest->OutputHandle, SetCursorRequest->OutputHandle,
&Buff, &Buff,
@ -325,32 +325,115 @@ CSR_API(SrvGetConsoleSelectionInfo)
CSR_API(SrvGetConsoleNumberOfFonts) CSR_API(SrvGetConsoleNumberOfFonts)
{ {
NTSTATUS Status;
PCONSOLE_GETNUMFONTS GetNumFontsRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetNumFontsRequest;
PCONSOLE /*PCONSRV_CONSOLE*/ Console;
Status = ConSrvGetConsole(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
&Console, TRUE);
if (!NT_SUCCESS(Status)) return Status;
// FIXME!
// TermGetNumberOfFonts(Console, ...);
DPRINT1("%s not yet implemented\n", __FUNCTION__); DPRINT1("%s not yet implemented\n", __FUNCTION__);
return STATUS_NOT_IMPLEMENTED; GetNumFontsRequest->NumFonts = 0;
ConSrvReleaseConsole(Console, TRUE);
return STATUS_SUCCESS;
} }
CSR_API(SrvGetConsoleFontInfo) CSR_API(SrvGetConsoleFontInfo)
{ {
NTSTATUS Status;
PCONSOLE_GETFONTINFO GetFontInfoRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetFontInfoRequest;
// PCONSOLE /*PCONSRV_CONSOLE*/ Console;
PCONSOLE_SCREEN_BUFFER Buff;
Status = ConSrvGetTextModeBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
GetFontInfoRequest->OutputHandle,
&Buff,
GENERIC_READ,
TRUE);
if (!NT_SUCCESS(Status)) return Status;
// FIXME!
// Console = Buff->Header.Console;
// TermGetFontInfo(Console, ...);
DPRINT1("%s not yet implemented\n", __FUNCTION__); DPRINT1("%s not yet implemented\n", __FUNCTION__);
return STATUS_NOT_IMPLEMENTED; GetFontInfoRequest->NumFonts = 0;
ConSrvReleaseScreenBuffer(Buff, TRUE);
return STATUS_SUCCESS;
} }
CSR_API(SrvGetConsoleFontSize) CSR_API(SrvGetConsoleFontSize)
{ {
NTSTATUS Status;
PCONSOLE_GETFONTSIZE GetFontSizeRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetFontSizeRequest;
// PCONSOLE /*PCONSRV_CONSOLE*/ Console;
PCONSOLE_SCREEN_BUFFER Buff;
Status = ConSrvGetTextModeBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
GetFontSizeRequest->OutputHandle,
&Buff,
GENERIC_READ,
TRUE);
if (!NT_SUCCESS(Status)) return Status;
// FIXME!
// Console = Buff->Header.Console;
// TermGetFontSize(Console, ...);
DPRINT1("%s not yet implemented\n", __FUNCTION__); DPRINT1("%s not yet implemented\n", __FUNCTION__);
return STATUS_NOT_IMPLEMENTED;
ConSrvReleaseScreenBuffer(Buff, TRUE);
return STATUS_SUCCESS;
} }
CSR_API(SrvGetConsoleCurrentFont) CSR_API(SrvGetConsoleCurrentFont)
{ {
NTSTATUS Status;
PCONSOLE_GETCURRENTFONT GetCurrentFontRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.GetCurrentFontRequest;
// PCONSOLE /*PCONSRV_CONSOLE*/ Console;
PCONSOLE_SCREEN_BUFFER Buff;
Status = ConSrvGetTextModeBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
GetCurrentFontRequest->OutputHandle,
&Buff,
GENERIC_READ,
TRUE);
if (!NT_SUCCESS(Status)) return Status;
// FIXME!
// Console = Buff->Header.Console;
// TermGetCurrentFont(Console, ...);
DPRINT1("%s not yet implemented\n", __FUNCTION__); DPRINT1("%s not yet implemented\n", __FUNCTION__);
return STATUS_NOT_IMPLEMENTED; GetCurrentFontRequest->FontIndex = 0;
ConSrvReleaseScreenBuffer(Buff, TRUE);
return STATUS_SUCCESS;
} }
CSR_API(SrvSetConsoleFont) CSR_API(SrvSetConsoleFont)
{ {
NTSTATUS Status;
PCONSOLE_SETFONT SetFontRequest = &((PCONSOLE_API_MESSAGE)ApiMessage)->Data.SetFontRequest;
// PCONSOLE /*PCONSRV_CONSOLE*/ Console;
PCONSOLE_SCREEN_BUFFER Buff;
Status = ConSrvGetTextModeBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
SetFontRequest->OutputHandle,
&Buff,
GENERIC_WRITE,
TRUE);
if (!NT_SUCCESS(Status)) return Status;
// FIXME!
// Console = Buff->Header.Console;
// TermSetFont(Console, ...);
DPRINT1("%s not yet implemented\n", __FUNCTION__); DPRINT1("%s not yet implemented\n", __FUNCTION__);
return STATUS_NOT_IMPLEMENTED;
ConSrvReleaseScreenBuffer(Buff, TRUE);
return STATUS_SUCCESS;
} }
/* EOF */ /* EOF */