Synchronize with trunk.
[reactos.git] / win32ss / user / winsrv / consrv / condrv / dummyfrontend.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: win32ss/user/winsrv/consrv/condrv/dummyfrontend.c
5 * PURPOSE: Dummy Terminal Front-End used when no frontend
6 * is attached to the specified console.
7 * PROGRAMMERS: Hermes Belusca-Maito (hermes.belusca@sfr.fr)
8 */
9
10 /* INCLUDES *******************************************************************/
11
12 #include "consrv.h"
13 #include "include/conio.h"
14
15
16 /* DUMMY FRONTEND INTERFACE ***************************************************/
17
18 static NTSTATUS NTAPI
19 DummyInitFrontEnd(IN OUT PFRONTEND This,
20 IN PCONSOLE Console)
21 {
22 /* Load some settings ?? */
23 return STATUS_SUCCESS;
24 }
25
26 static VOID NTAPI
27 DummyDeinitFrontEnd(IN OUT PFRONTEND This)
28 {
29 /* Free some settings ?? */
30 }
31
32 static VOID NTAPI
33 DummyDrawRegion(IN OUT PFRONTEND This,
34 SMALL_RECT* Region)
35 {
36 }
37
38 static VOID NTAPI
39 DummyWriteStream(IN OUT PFRONTEND This,
40 SMALL_RECT* Region,
41 SHORT CursorStartX,
42 SHORT CursorStartY,
43 UINT ScrolledLines,
44 PWCHAR Buffer,
45 UINT Length)
46 {
47 }
48
49 static BOOL NTAPI
50 DummySetCursorInfo(IN OUT PFRONTEND This,
51 PCONSOLE_SCREEN_BUFFER Buff)
52 {
53 return TRUE;
54 }
55
56 static BOOL NTAPI
57 DummySetScreenInfo(IN OUT PFRONTEND This,
58 PCONSOLE_SCREEN_BUFFER Buff,
59 SHORT OldCursorX,
60 SHORT OldCursorY)
61 {
62 return TRUE;
63 }
64
65 static VOID NTAPI
66 DummyResizeTerminal(IN OUT PFRONTEND This)
67 {
68 }
69
70 static BOOL NTAPI
71 DummyProcessKeyCallback(IN OUT PFRONTEND This,
72 MSG* msg,
73 BYTE KeyStateMenu,
74 DWORD ShiftState,
75 UINT VirtualKeyCode,
76 BOOL Down)
77 {
78 return FALSE;
79 }
80
81 static VOID NTAPI
82 DummyRefreshInternalInfo(IN OUT PFRONTEND This)
83 {
84 }
85
86 static VOID NTAPI
87 DummyChangeTitle(IN OUT PFRONTEND This)
88 {
89 }
90
91 static BOOL NTAPI
92 DummyChangeIcon(IN OUT PFRONTEND This,
93 HICON hWindowIcon)
94 {
95 return TRUE;
96 }
97
98 static HWND NTAPI
99 DummyGetConsoleWindowHandle(IN OUT PFRONTEND This)
100 {
101 return NULL;
102 }
103
104 static VOID NTAPI
105 DummyGetLargestConsoleWindowSize(IN OUT PFRONTEND This,
106 PCOORD pSize)
107 {
108 }
109
110 static ULONG NTAPI
111 DummyGetDisplayMode(IN OUT PFRONTEND This)
112 {
113 return 0;
114 }
115
116 static BOOL NTAPI
117 DummySetDisplayMode(IN OUT PFRONTEND This,
118 ULONG NewMode)
119 {
120 return TRUE;
121 }
122
123 static INT NTAPI
124 DummyShowMouseCursor(IN OUT PFRONTEND This,
125 BOOL Show)
126 {
127 return 0;
128 }
129
130 static BOOL NTAPI
131 DummySetMouseCursor(IN OUT PFRONTEND This,
132 HCURSOR hCursor)
133 {
134 return TRUE;
135 }
136
137 static HMENU NTAPI
138 DummyMenuControl(IN OUT PFRONTEND This,
139 UINT cmdIdLow,
140 UINT cmdIdHigh)
141 {
142 return NULL;
143 }
144
145 static BOOL NTAPI
146 DummySetMenuClose(IN OUT PFRONTEND This,
147 BOOL Enable)
148 {
149 return TRUE;
150 }
151
152 static FRONTEND_VTBL DummyVtbl =
153 {
154 DummyInitFrontEnd,
155 DummyDeinitFrontEnd,
156 DummyDrawRegion,
157 DummyWriteStream,
158 DummySetCursorInfo,
159 DummySetScreenInfo,
160 DummyResizeTerminal,
161 DummyProcessKeyCallback,
162 DummyRefreshInternalInfo,
163 DummyChangeTitle,
164 DummyChangeIcon,
165 DummyGetConsoleWindowHandle,
166 DummyGetLargestConsoleWindowSize,
167 DummyGetDisplayMode,
168 DummySetDisplayMode,
169 DummyShowMouseCursor,
170 DummySetMouseCursor,
171 DummyMenuControl,
172 DummySetMenuClose,
173 };
174
175 VOID
176 ResetFrontEnd(IN PCONSOLE Console)
177 {
178 if (!Console) return;
179
180 /* Reinitialize the frontend interface */
181 RtlZeroMemory(&Console->TermIFace, sizeof(Console->TermIFace));
182 Console->TermIFace.Vtbl = &DummyVtbl;
183 }
184
185 /* EOF */