[NTVDM] Deduplicate IsConsoleHandle() using the correct version pointed by Herm├Ęs...
authorAmine Khaldi <amine.khaldi@reactos.org>
Sat, 23 Dec 2017 22:56:04 +0000 (23:56 +0100)
committerAmine Khaldi <amine.khaldi@reactos.org>
Sat, 23 Dec 2017 22:56:04 +0000 (23:56 +0100)
subsystems/mvdm/ntvdm/console/console.c
subsystems/mvdm/ntvdm/console/video.c
subsystems/mvdm/ntvdm/ntvdm.h

index 72200a1..db2a468 100644 (file)
@@ -500,6 +500,30 @@ ConsoleCleanup(VOID)
     if (ConsoleInput  != INVALID_HANDLE_VALUE) CloseHandle(ConsoleInput);
 }
 
+BOOL IsConsoleHandle(HANDLE hHandle)
+{
+    DWORD dwMode;
+
+    /* Check whether the handle may be that of a console... */
+    if ((GetFileType(hHandle) & ~FILE_TYPE_REMOTE) != FILE_TYPE_CHAR)
+        return FALSE;
+
+    /*
+     * It may be. Perform another test... The idea comes from the
+     * MSDN description of the WriteConsole API:
+     *
+     * "WriteConsole fails if it is used with a standard handle
+     *  that is redirected to a file. If an application processes
+     *  multilingual output that can be redirected, determine whether
+     *  the output handle is a console handle (one method is to call
+     *  the GetConsoleMode function and check whether it succeeds).
+     *  If the handle is a console handle, call WriteConsole. If the
+     *  handle is not a console handle, the output is redirected and
+     *  you should call WriteFile to perform the I/O."
+     */
+    return GetConsoleMode(hHandle, &dwMode);
+}
+
 VOID MenuEventHandler(PMENU_EVENT_RECORD MenuEvent)
 {
     switch (MenuEvent->dwCommandId)
index de2910c..d19841b 100644 (file)
@@ -436,30 +436,6 @@ static VOID DetachFromConsoleInternal(VOID)
     TextFramebuffer = NULL;
 }
 
-static BOOL IsConsoleHandle(HANDLE hHandle)
-{
-    DWORD dwMode;
-
-    /* Check whether the handle may be that of a console... */
-    if ((GetFileType(hHandle) & ~FILE_TYPE_REMOTE) != FILE_TYPE_CHAR)
-        return FALSE;
-
-    /*
-     * It may be. Perform another test... The idea comes from the
-     * MSDN description of the WriteConsole API:
-     *
-     * "WriteConsole fails if it is used with a standard handle
-     *  that is redirected to a file. If an application processes
-     *  multilingual output that can be redirected, determine whether
-     *  the output handle is a console handle (one method is to call
-     *  the GetConsoleMode function and check whether it succeeds).
-     *  If the handle is a console handle, call WriteConsole. If the
-     *  handle is not a console handle, the output is redirected and
-     *  you should call WriteFile to perform the I/O."
-     */
-    return GetConsoleMode(hHandle, &dwMode);
-}
-
 static VOID SetActiveScreenBuffer(HANDLE ScreenBuffer)
 {
     ASSERT(ScreenBuffer);
index 616cc70..60a763f 100644 (file)
@@ -103,6 +103,7 @@ UpdateVdmMenuDisks(VOID);
 BOOL ConsoleAttach(VOID);
 VOID ConsoleDetach(VOID);
 VOID ConsoleReattach(HANDLE ConOutHandle);
+BOOL IsConsoleHandle(HANDLE hHandle);
 VOID MenuEventHandler(PMENU_EVENT_RECORD MenuEvent);
 VOID FocusEventHandler(PFOCUS_EVENT_RECORD FocusEvent);