* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS Console Server DLL
* FILE: consrv/include/conio_winsrv.h
- * PURPOSE: Public Console I/O Interface
+ * PURPOSE: Public Console I/O Interface - Offers wrap-up structures
+ * over the console objects exposed by the console driver.
* PROGRAMMERS: Gé van Geldorp
* Jeffrey Morlan
* Hermes Belusca-Maito (hermes.belusca@sfr.fr)
// 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
-// #define _CONSRV_CONSOLE _WINSRV_CONSOLE
-// #define CONSRV_CONSOLE WINSRV_CONSOLE
-// #define PCONSRV_CONSOLE PWINSRV_CONSOLE
-
+#endif
#define CSR_DEFAULT_CURSOR_SIZE 25
} CHAR_CELL, *PCHAR_CELL;
C_ASSERT(sizeof(CHAR_CELL) == 2);
+// HACK!!
+struct _WINSRV_CONSOLE;
+/* HACK: */ typedef struct _WINSRV_CONSOLE *PWINSRV_CONSOLE;
+#ifdef USE_NEW_CONSOLE_WAY
+#include "conio.h"
+#endif
typedef struct _FRONTEND FRONTEND, *PFRONTEND;
/* HACK: */ typedef struct _CONSOLE_INFO *PCONSOLE_INFO;
UINT ScrolledLines,
PWCHAR Buffer,
UINT Length);
+ VOID (NTAPI *RingBell)(IN OUT PFRONTEND This);
BOOL (NTAPI *SetCursorInfo)(IN OUT PFRONTEND This,
PCONSOLE_SCREEN_BUFFER ScreenBuffer);
BOOL (NTAPI *SetScreenInfo)(IN OUT PFRONTEND This,
NTSTATUS (NTAPI *UnloadFrontEnd)(IN OUT PFRONTEND This);
struct _CONSRV_CONSOLE* Console; /* Console to which the frontend is attached to */
- PVOID Data; /* Private data */
- PVOID OldData; /* Reserved */
+ PVOID Context; /* Private context */
+ PVOID Context2; /* Private context */
};
/* PauseFlags values (internal only) */
{
/******************************* Console Set-up *******************************/
/* This **MUST** be FIRST!! */
- // CONSOLE;
- // PCONSOLE Console;
+#ifdef USE_NEW_CONSOLE_WAY
+ CONSOLE;
+ // CONSOLE Console;
+ // // PCONSOLE Console;
+#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;
// CONSOLE_STATE State; /* State of the console */
+ HANDLE InitEvents[MAX_INIT_EVENTS]; /* Initialization events */
+
FRONTEND FrontEndIFace; /* Frontend-specific interface */
/******************************* Process support ******************************/
HANDLE ErrorHardwareEvent;
/****************************** Other properties ******************************/
- COLORREF Colors[16]; /* Colour palette */
+ LIST_ENTRY PopupWindows; /* List of popup windows */
+ 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 */
+ COLORREF Colors[16]; /* Colour palette */
-} WINSRV_CONSOLE, *PWINSRV_CONSOLE;
+} WINSRV_CONSOLE; // , *PWINSRV_CONSOLE;
/* console.c */
VOID ConioPause(PCONSRV_CONSOLE Console, UINT Flags);
DWORD Scale);
NTSTATUS
-ConioAddInputEvents(PCONSRV_CONSOLE Console,
- PINPUT_RECORD InputRecords,
- ULONG NumEventsToWrite,
- PULONG NumEventsWritten,
- BOOLEAN AppendToEnd);
-NTSTATUS
ConioProcessInputEvent(PCONSRV_CONSOLE Console,
PINPUT_RECORD InputEvent);
/* conoutput.c */
-
-/*
- * From MSDN:
- * "The lpMultiByteStr and lpWideCharStr pointers must not be the same.
- * If they are the same, the function fails, and GetLastError returns
- * ERROR_INVALID_PARAMETER."
- */
-#define ConsoleUnicodeCharToAnsiChar(Console, dChar, sWChar) \
- ASSERT((ULONG_PTR)dChar != (ULONG_PTR)sWChar); \
- WideCharToMultiByte((Console)->OutputCodePage, 0, (sWChar), 1, (dChar), 1, NULL, NULL)
-
-#define ConsoleAnsiCharToUnicodeChar(Console, dWChar, sChar) \
- ASSERT((ULONG_PTR)dWChar != (ULONG_PTR)sChar); \
- MultiByteToWideChar((Console)->OutputCodePage, 0, (sChar), 1, (dWChar), 1)
-
PCHAR_INFO ConioCoordToPointer(PTEXTMODE_SCREEN_BUFFER Buff, ULONG X, ULONG Y);
-VOID ConioDrawConsole(PCONSRV_CONSOLE Console);
-NTSTATUS ConioResizeBuffer(PCONSRV_CONSOLE Console,
+NTSTATUS ConioResizeBuffer(PCONSOLE /*PCONSRV_CONSOLE*/ Console,
PTEXTMODE_SCREEN_BUFFER ScreenBuffer,
COORD Size);
+/* terminal.c */
+VOID ConioDrawConsole(PCONSRV_CONSOLE Console);
+
/* EOF */