[KERNEL32]
authorHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 16 Jun 2013 21:35:18 +0000 (21:35 +0000)
committerHermès Bélusca-Maïto <hermes.belusca-maito@reactos.org>
Sun, 16 Jun 2013 21:35:18 +0000 (21:35 +0000)
- Change the argument types of both GetConsoleFontInfo() and SetConsoleFont() to be more complete. This research is based off of the examining of source code from the jockx-the-game project (licensed under a BSD license). Specifically, the files containing the functions are in both ConsoleFont.cpp and ConsoleFont.h:
  * http://code.google.com/p/jockx-the-game/source/browse/DamageCalc/ConsoleFont.cpp?r=a8ee04a8a8156de58754c4190f48435c32cfefaf
  * http://code.google.com/p/jockx-the-game/source/browse/DamageCalc/ConsoleFont.h?r=a8ee04a8a8156de58754c4190f48435c32cfefaf
- Since the code for jockx-the-game used a 0 for the boolean argument for GetConsoleFontInfo() in ConsoleFont.cpp, the patch creator currently doesn't know what the argument does exactly.
  **NOTE**: Using http://pages.videotron.com/lyra/PowerBASIC/ConsoleFont.html too, the patch committer (hbelusca) was able to deduce that the boolean has the same meaning as the bMaximumWindow parameter of the GetCurrentConsoleFont function (http://msdn.microsoft.com/en-us/library/windows/desktop/ms683176(v=vs.85).aspx).

Patch by Lee Schroeder, modified by me as explained above.
CORE-7015 #resolve #comment Committed in revision r, thanks :)

Extras:
- Fix the return type of GetCurrentConsoleFont
- Add both GetConsoleFontSize and GetCurrentConsoleFont prototypes (documented) to wincon.h

svn path=/trunk/; revision=59240

reactos/dll/win32/kernel32/client/console/console.c
reactos/include/psdk/wincon.h

index cd6f05f..249003e 100644 (file)
@@ -346,12 +346,12 @@ GetConsoleDisplayMode(LPDWORD lpModeFlags)
  */
 DWORD
 WINAPI
-GetConsoleFontInfo(DWORD Unknown0,
-                   DWORD Unknown1,
-                   DWORD Unknown2,
-                   DWORD Unknown3)
+GetConsoleFontInfo(HANDLE hConsoleOutput,
+                   BOOL bMaximumWindow,
+                   DWORD nFontCount,
+                   PCONSOLE_FONT_INFO lpConsoleFontInfo)
 {
-    DPRINT1("GetConsoleFontInfo(0x%x, 0x%x, 0x%x, 0x%x) UNIMPLEMENTED!\n", Unknown0, Unknown1, Unknown2, Unknown3);
+    DPRINT1("GetConsoleFontInfo(0x%x, %d, %d, 0x%x) UNIMPLEMENTED!\n", hConsoleOutput, bMaximumWindow, nFontCount, lpConsoleFontInfo);
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return 0;
 }
@@ -424,7 +424,7 @@ GetConsoleInputWaitHandle(VOID)
 /*
  * @unimplemented
  */
-INT
+BOOL
 WINAPI
 GetCurrentConsoleFont(HANDLE hConsoleOutput,
                       BOOL bMaximumWindow,
@@ -610,10 +610,10 @@ SetConsoleDisplayMode(HANDLE hConsoleOutput,
  */
 BOOL
 WINAPI
-SetConsoleFont(DWORD Unknown0,
-               DWORD Unknown1)
+SetConsoleFont(HANDLE hConsoleOutput,
+               DWORD nFont)
 {
-    DPRINT1("SetConsoleFont(0x%x, 0x%x) UNIMPLEMENTED!\n", Unknown0, Unknown1);
+    DPRINT1("SetConsoleFont(0x%x, %d) UNIMPLEMENTED!\n", hConsoleOutput, nFont);
     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
     return FALSE;
 }
index 1a9891c..11744dd 100644 (file)
@@ -368,6 +368,19 @@ GetConsoleTitleW(
   _Out_writes_(nSize) LPWSTR lpConsoleTitle,
   _In_ DWORD nSize);
 
+COORD
+WINAPI
+GetConsoleFontSize(
+  _In_ HANDLE hConsoleOutput,
+  _In_ DWORD nFont);
+
+BOOL
+WINAPI
+GetCurrentConsoleFont(
+  _In_  HANDLE hConsoleOutput,
+  _In_  BOOL bMaximumWindow,
+  _Out_ PCONSOLE_FONT_INFO lpConsoleCurrentFont);
+
 #if (_WIN32_WINNT >= 0x0500)
 HWND WINAPI GetConsoleWindow(VOID);
 BOOL APIENTRY GetConsoleDisplayMode(_Out_ LPDWORD lpModeFlags);