[CONSRV]
[reactos.git] / win32ss / user / winsrv / consrv / condrv / dummyterm.c
1 /*
2 * COPYRIGHT: See COPYING in the top level directory
3 * PROJECT: ReactOS Console Server DLL
4 * FILE: condrv/dummyterm.c
5 * PURPOSE: Dummy Terminal used when no terminal
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
14 /* DUMMY TERMINAL INTERFACE ***************************************************/
15
16 static NTSTATUS NTAPI
17 DummyInitTerminal(IN OUT PTERMINAL This,
18 IN PCONSOLE Console)
19 {
20 return STATUS_SUCCESS;
21 }
22
23 static VOID NTAPI
24 DummyDeinitTerminal(IN OUT PTERMINAL This)
25 {
26 }
27
28 static VOID NTAPI
29 DummyDrawRegion(IN OUT PTERMINAL This,
30 SMALL_RECT* Region)
31 {
32 }
33
34 static VOID NTAPI
35 DummyWriteStream(IN OUT PTERMINAL This,
36 SMALL_RECT* Region,
37 SHORT CursorStartX,
38 SHORT CursorStartY,
39 UINT ScrolledLines,
40 PWCHAR Buffer,
41 UINT Length)
42 {
43 }
44
45 static BOOL NTAPI
46 DummySetCursorInfo(IN OUT PTERMINAL This,
47 PCONSOLE_SCREEN_BUFFER ScreenBuffer)
48 {
49 return TRUE;
50 }
51
52 static BOOL NTAPI
53 DummySetScreenInfo(IN OUT PTERMINAL This,
54 PCONSOLE_SCREEN_BUFFER ScreenBuffer,
55 SHORT OldCursorX,
56 SHORT OldCursorY)
57 {
58 return TRUE;
59 }
60
61 static VOID NTAPI
62 DummyResizeTerminal(IN OUT PTERMINAL This)
63 {
64 }
65
66 static VOID NTAPI
67 DummySetActiveScreenBuffer(IN OUT PTERMINAL This)
68 {
69 }
70
71 static VOID NTAPI
72 DummyReleaseScreenBuffer(IN OUT PTERMINAL This,
73 IN PCONSOLE_SCREEN_BUFFER ScreenBuffer)
74 {
75 }
76
77 static VOID NTAPI
78 DummyChangeTitle(IN OUT PTERMINAL This)
79 {
80 }
81
82 static VOID NTAPI
83 DummyGetLargestConsoleWindowSize(IN OUT PTERMINAL This,
84 PCOORD pSize)
85 {
86 }
87
88 /*
89 static BOOL NTAPI
90 DummyGetSelectionInfo(IN OUT PTERMINAL This,
91 PCONSOLE_SELECTION_INFO pSelectionInfo)
92 {
93 return TRUE;
94 }
95 */
96
97 static BOOL NTAPI
98 DummySetPalette(IN OUT PTERMINAL This,
99 HPALETTE PaletteHandle,
100 UINT PaletteUsage)
101 {
102 return TRUE;
103 }
104
105 static INT NTAPI
106 DummyShowMouseCursor(IN OUT PTERMINAL This,
107 BOOL Show)
108 {
109 return 0;
110 }
111
112 static TERMINAL_VTBL DummyVtbl =
113 {
114 DummyInitTerminal,
115 DummyDeinitTerminal,
116 DummyDrawRegion,
117 DummyWriteStream,
118 DummySetCursorInfo,
119 DummySetScreenInfo,
120 DummyResizeTerminal,
121 DummySetActiveScreenBuffer,
122 DummyReleaseScreenBuffer,
123 DummyChangeTitle,
124 DummyGetLargestConsoleWindowSize,
125 // DummyGetSelectionInfo,
126 DummySetPalette,
127 DummyShowMouseCursor,
128 };
129
130 VOID
131 ResetTerminal(IN PCONSOLE Console)
132 {
133 if (!Console) return;
134
135 /* Reinitialize the terminal interface */
136 RtlZeroMemory(&Console->TermIFace, sizeof(Console->TermIFace));
137 Console->TermIFace.Vtbl = &DummyVtbl;
138 }
139
140 /* EOF */