Author: hbelusca
Date: Sat Dec 5 00:51:48 2015
New Revision: 70268
URL:
http://svn.reactos.org/svn/reactos?rev=70268&view=rev
Log:
[CONSRV]: Implement the skeleton for the console server font APIs; reduces kernel32
console winetest failures to 5 (see r70258 also).
Modified:
trunk/reactos/win32ss/user/winsrv/consrv/frontendctl.c
Modified: trunk/reactos/win32ss/user/winsrv/consrv/frontendctl.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/winsrv/consrv…
==============================================================================
--- trunk/reactos/win32ss/user/winsrv/consrv/frontendctl.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/winsrv/consrv/frontendctl.c [iso-8859-1] Sat Dec 5
00:51:48 2015
@@ -210,9 +210,9 @@
PCONSRV_CONSOLE Console;
PCONSOLE_SCREEN_BUFFER Buff;
- // FIXME: Tests show that this function is used only for graphics screen buffers
- // 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: Tests show that this function is used only for graphics screen buffers
+ // and otherwise it returns FALSE and sets last error to ERROR_INVALID_HANDLE.
+ // I find that behaviour is ridiculous but ok, let's accept it at the moment...
Status =
ConSrvGetGraphicsBuffer(ConsoleGetPerProcessData(CsrGetClientThread()->Process),
SetCursorRequest->OutputHandle,
&Buff,
@@ -325,32 +325,115 @@
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__);
- return STATUS_NOT_IMPLEMENTED;
+ GetNumFontsRequest->NumFonts = 0;
+
+ ConSrvReleaseConsole(Console, TRUE);
+ return STATUS_SUCCESS;
}
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__);
- return STATUS_NOT_IMPLEMENTED;
+ GetFontInfoRequest->NumFonts = 0;
+
+ ConSrvReleaseScreenBuffer(Buff, TRUE);
+ return STATUS_SUCCESS;
}
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__);
- return STATUS_NOT_IMPLEMENTED;
+
+ ConSrvReleaseScreenBuffer(Buff, TRUE);
+ return STATUS_SUCCESS;
}
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__);
- return STATUS_NOT_IMPLEMENTED;
+ GetCurrentFontRequest->FontIndex = 0;
+
+ ConSrvReleaseScreenBuffer(Buff, TRUE);
+ return STATUS_SUCCESS;
}
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__);
- return STATUS_NOT_IMPLEMENTED;
+
+ ConSrvReleaseScreenBuffer(Buff, TRUE);
+ return STATUS_SUCCESS;
}
/* EOF */