1 /*
2  * COPYRIGHT:       See COPYING in the top level directory
3  * PROJECT:         ReactOS system libraries
4  * PURPOSE:         Vista functions
5  * PROGRAMMERS:     Thomas Weidenmueller (w3seek@reactos.com)
6  *                  Hermes Belusca-Maito (hermes.belusca@sfr.fr)
7  */
8 
9 /* INCLUDES *******************************************************************/
10 
11 #include <k32.h>
12 
13 #define NDEBUG
14 #include <debug.h>
15 
16 
17 /* PUBLIC FUNCTIONS ***********************************************************/
18 
19 #if _WIN32_WINNT >= 0x600
20 
21 /*
22  * @implemented
23  */
24 BOOL
25 WINAPI
26 DECLSPEC_HOTPATCH
27 GetConsoleHistoryInfo(PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
28 {
29     CONSOLE_API_MESSAGE ApiMessage;
30     PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &ApiMessage.Data.HistoryInfoRequest;
31 
32     if (lpConsoleHistoryInfo->cbSize != sizeof(CONSOLE_HISTORY_INFO))
33     {
34         SetLastError(ERROR_INVALID_PARAMETER);
35         return FALSE;
36     }
37 
38     CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
39                         NULL,
40                         CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepGetHistory),
41                         sizeof(*HistoryInfoRequest));
42     if (!NT_SUCCESS(ApiMessage.Status))
43     {
44         BaseSetLastNTError(ApiMessage.Status);
45         return FALSE;
46     }
47 
48     lpConsoleHistoryInfo->HistoryBufferSize      = HistoryInfoRequest->HistoryBufferSize;
49     lpConsoleHistoryInfo->NumberOfHistoryBuffers = HistoryInfoRequest->NumberOfHistoryBuffers;
50     lpConsoleHistoryInfo->dwFlags                = HistoryInfoRequest->dwFlags;
51 
52     return TRUE;
53 }
54 
55 
56 /*
57  * @implemented
58  */
59 BOOL
60 WINAPI
61 DECLSPEC_HOTPATCH
62 SetConsoleHistoryInfo(IN PCONSOLE_HISTORY_INFO lpConsoleHistoryInfo)
63 {
64     CONSOLE_API_MESSAGE ApiMessage;
65     PCONSOLE_GETSETHISTORYINFO HistoryInfoRequest = &ApiMessage.Data.HistoryInfoRequest;
66 
67     if (lpConsoleHistoryInfo->cbSize != sizeof(CONSOLE_HISTORY_INFO))
68     {
69         SetLastError(ERROR_INVALID_PARAMETER);
70         return FALSE;
71     }
72 
73     HistoryInfoRequest->HistoryBufferSize      = lpConsoleHistoryInfo->HistoryBufferSize;
74     HistoryInfoRequest->NumberOfHistoryBuffers = lpConsoleHistoryInfo->NumberOfHistoryBuffers;
75     HistoryInfoRequest->dwFlags                = lpConsoleHistoryInfo->dwFlags;
76 
77     CsrClientCallServer((PCSR_API_MESSAGE)&ApiMessage,
78                         NULL,
79                         CSR_CREATE_API_NUMBER(CONSRV_SERVERDLL_INDEX, ConsolepSetHistory),
80                         sizeof(*HistoryInfoRequest));
81     if (!NT_SUCCESS(ApiMessage.Status))
82     {
83         BaseSetLastNTError(ApiMessage.Status);
84         return FALSE;
85     }
86 
87     return TRUE;
88 }
89 
90 
91 /*
92  * @unimplemented
93  */
94 DWORD
95 WINAPI
96 DECLSPEC_HOTPATCH
97 GetConsoleOriginalTitleW(OUT LPWSTR lpConsoleTitle,
98                          IN DWORD nSize)
99 {
100     DPRINT1("GetConsoleOriginalTitleW(0x%p, 0x%x) UNIMPLEMENTED!\n", lpConsoleTitle, nSize);
101     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
102     return 0;
103 }
104 
105 
106 /*
107  * @unimplemented
108  */
109 DWORD
110 WINAPI
111 DECLSPEC_HOTPATCH
112 GetConsoleOriginalTitleA(OUT LPSTR lpConsoleTitle,
113                          IN DWORD nSize)
114 {
115     DPRINT1("GetConsoleOriginalTitleA(0x%p, 0x%x) UNIMPLEMENTED!\n", lpConsoleTitle, nSize);
116     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
117     return 0;
118 }
119 
120 
121 /*
122  * @unimplemented
123  */
124 BOOL
125 WINAPI
126 DECLSPEC_HOTPATCH
127 GetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput,
128                              OUT PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx)
129 {
130     DPRINT1("GetConsoleScreenBufferInfoEx(0x%p, 0x%p) UNIMPLEMENTED!\n", hConsoleOutput, lpConsoleScreenBufferInfoEx);
131     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
132     return FALSE;
133 }
134 
135 
136 /*
137  * @unimplemented
138  */
139 BOOL
140 WINAPI
141 DECLSPEC_HOTPATCH
142 SetConsoleScreenBufferInfoEx(IN HANDLE hConsoleOutput,
143                              IN PCONSOLE_SCREEN_BUFFER_INFOEX lpConsoleScreenBufferInfoEx)
144 {
145     DPRINT1("SetConsoleScreenBufferInfoEx(0x%p, 0x%p) UNIMPLEMENTED!\n", hConsoleOutput, lpConsoleScreenBufferInfoEx);
146     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
147     return FALSE;
148 }
149 
150 
151 /*
152  * @unimplemented
153  */
154 BOOL
155 WINAPI
156 DECLSPEC_HOTPATCH
157 GetCurrentConsoleFontEx(IN HANDLE hConsoleOutput,
158                         IN BOOL bMaximumWindow,
159                         OUT PCONSOLE_FONT_INFOEX lpConsoleCurrentFontEx)
160 {
161     DPRINT1("GetCurrentConsoleFontEx(0x%p, 0x%x, 0x%p) UNIMPLEMENTED!\n", hConsoleOutput, bMaximumWindow, lpConsoleCurrentFontEx);
162     SetLastError(ERROR_CALL_NOT_IMPLEMENTED);
163     return FALSE;
164 }
165 
166 #endif
167 
168 /* EOF */
169