[CONSRV]: Use an optional parameter for passing things to the "line discipline" funct...
[reactos.git] / win32ss / user / winsrv / consrv / include / conio.h
index ccf21a7..271a130 100644 (file)
 
 #include "rect.h"
 
+// This is ALMOST a HACK!!!!!!!
+// Helpers for code refactoring
+#ifdef USE_NEW_CONSOLE_WAY
+
+#define _CONSRV_CONSOLE  _WINSRV_CONSOLE
+#define  CONSRV_CONSOLE   WINSRV_CONSOLE
+#define PCONSRV_CONSOLE  PWINSRV_CONSOLE
+
+#else
+
+#define _CONSRV_CONSOLE  _CONSOLE
+#define  CONSRV_CONSOLE   CONSOLE
+#define PCONSRV_CONSOLE  PCONSOLE
+
+#endif
+
 /* Default attributes */
 #define DEFAULT_SCREEN_ATTRIB   (FOREGROUND_BLUE | FOREGROUND_GREEN | FOREGROUND_RED)
 #define DEFAULT_POPUP_ATTRIB    (FOREGROUND_BLUE | FOREGROUND_RED   | \
@@ -175,7 +191,7 @@ typedef struct _CONSOLE_INPUT_BUFFER
 {
     CONSOLE_IO_OBJECT Header;       /* Object header - MUST BE IN FIRST PLACE */
 
-    ULONG       InputBufferSize;    /* Size of this input buffer */
+    ULONG       InputBufferSize;    /* Size of this input buffer -- UNUSED!! */
     LIST_ENTRY  InputEvents;        /* List head for input event queue */
     HANDLE      ActiveEvent;        /* Event set when an input event is added in its queue */
 
@@ -201,13 +217,13 @@ typedef struct _TERMINAL_VTBL
     /* Interface used only for text-mode screen buffers */
 
     NTSTATUS (NTAPI *ReadStream)(IN OUT PTERMINAL This,
-                                /**/IN PUNICODE_STRING ExeName /**/OPTIONAL/**/,/**/
-                                IN BOOLEAN Unicode,
-                                /**PWCHAR Buffer,**/
-                                OUT PVOID Buffer,
-                                IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
-                                IN ULONG NumCharsToRead,
-                                OUT PULONG NumCharsRead OPTIONAL);
+                                 IN BOOLEAN Unicode,
+                                 /**PWCHAR Buffer,**/
+                                 OUT PVOID Buffer,
+                                 IN OUT PCONSOLE_READCONSOLE_CONTROL ReadControl,
+                                 IN PVOID Parameter OPTIONAL,
+                                 IN ULONG NumCharsToRead,
+                                 OUT PULONG NumCharsRead OPTIONAL);
     NTSTATUS (NTAPI *WriteStream)(IN OUT PTERMINAL This,
                                   PTEXTMODE_SCREEN_BUFFER Buff,
                                   PWCHAR Buffer,
@@ -235,7 +251,6 @@ typedef struct _TERMINAL_VTBL
     /*
      * External interface (functions corresponding to the Console API)
      */
-    VOID (NTAPI *ChangeTitle)(IN OUT PTERMINAL This);
     VOID (NTAPI *GetLargestConsoleWindowSize)(IN OUT PTERMINAL This,
                                               PCOORD pSize);
     BOOL (NTAPI *SetPalette)(IN OUT PTERMINAL This,
@@ -277,16 +292,21 @@ typedef enum _CONSOLE_STATE
 // HACK!!
 struct _CONSOLE;
 /* HACK: */ typedef struct _CONSOLE *PCONSOLE;
+#ifndef USE_NEW_CONSOLE_WAY
 #include "conio_winsrv.h"
+#endif
 
 typedef struct _CONSOLE
 {
 /******************************* Console Set-up *******************************/
+
+#ifndef USE_NEW_CONSOLE_WAY
+    WINSRV_CONSOLE; // HACK HACK!!
+#endif
+
     LONG ReferenceCount;                    /* Is incremented each time a handle to something in the console (a screen-buffer or the input buffer of this console) gets referenced */
     CRITICAL_SECTION Lock;
 
-    /**/WINSRV_CONSOLE;/**/ // HACK HACK!!
-
     CONSOLE_STATE State;                    /* State of the console */
     TERMINAL TermIFace;                     /* Frontend-specific interface */
 
@@ -305,9 +325,6 @@ typedef struct _CONSOLE
     UINT OutputCodePage;
 
 /****************************** Other properties ******************************/
-    UNICODE_STRING OriginalTitle;           /* Original title of console, the one defined when the console leader is launched; it never changes. Always NULL-terminated */
-    UNICODE_STRING Title;                   /* Title of console. Always NULL-terminated */
-
     COORD   ConsoleSize;                    /* The current size of the console, for text-mode only */
     BOOLEAN FixedSize;                      /* TRUE if the console is of fixed size */
 
@@ -323,10 +340,15 @@ NTSTATUS
 ConSrvConsoleCtrlEvent(IN ULONG CtrlEvent,
                        IN PCONSOLE_PROCESS_DATA ProcessData);
 
+
+#define GetConsoleInputBufferMode(Console)  \
+    (Console)->InputBuffer.Mode
+
+
 /* conoutput.c */
 PCHAR_INFO ConioCoordToPointer(PTEXTMODE_SCREEN_BUFFER Buff, ULONG X, ULONG Y);
-VOID ConioDrawConsole(PCONSOLE Console);
-NTSTATUS ConioResizeBuffer(PCONSOLE Console,
+VOID ConioDrawConsole(PCONSOLE /*PCONSRV_CONSOLE*/ Console);
+NTSTATUS ConioResizeBuffer(PCONSOLE /*PCONSRV_CONSOLE*/ Console,
                            PTEXTMODE_SCREEN_BUFFER ScreenBuffer,
                            COORD Size);