Reverted latest changes.
[reactos.git] / reactos / lib / user32 / misc / desktop.c
1 /* $Id: desktop.c,v 1.6 2002/09/08 10:23:10 chorns Exp $
2 *
3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS user32.dll
5 * FILE: lib/user32/misc/desktop.c
6 * PURPOSE: Desktops
7 * PROGRAMMER: Casper S. Hornstrup (chorns@users.sourceforge.net)
8 * UPDATE HISTORY:
9 * 06-06-2001 CSH Created
10 */
11 #include <windows.h>
12 #include <user32.h>
13 #include <debug.h>
14
15 int STDCALL
16 GetSystemMetrics(int nIndex)
17 {
18 return(NtUserGetSystemMetrics(nIndex));
19 }
20
21 WINBOOL STDCALL
22 SystemParametersInfoA(UINT uiAction,
23 UINT uiParam,
24 PVOID pvParam,
25 UINT fWinIni)
26 {
27 return(SystemParametersInfoW(uiAction, uiParam, pvParam, fWinIni));
28 }
29
30 WINBOOL STDCALL
31 SystemParametersInfoW(UINT uiAction,
32 UINT uiParam,
33 PVOID pvParam,
34 UINT fWinIni)
35 {
36 switch (uiAction)
37 {
38 case SPI_GETWORKAREA:
39 {
40 ((PRECT)pvParam)->left = 0;
41 ((PRECT)pvParam)->top = 0;
42 ((PRECT)pvParam)->right = 640;
43 ((PRECT)pvParam)->bottom = 480;
44 return(TRUE);
45 }
46 }
47 return(FALSE);
48 }
49
50
51 WINBOOL
52 STDCALL
53 CloseDesktop(
54 HDESK hDesktop)
55 {
56 return NtUserCloseDesktop(hDesktop);
57 }
58
59 HDESK STDCALL
60 CreateDesktopA(LPCSTR lpszDesktop,
61 LPCSTR lpszDevice,
62 LPDEVMODEA pDevmode,
63 DWORD dwFlags,
64 ACCESS_MASK dwDesiredAccess,
65 LPSECURITY_ATTRIBUTES lpsa)
66 {
67 ANSI_STRING DesktopNameA;
68 UNICODE_STRING DesktopNameU;
69 HDESK hDesktop;
70
71 if (lpszDesktop != NULL)
72 {
73 RtlInitAnsiString(&DesktopNameA, (LPSTR)lpszDesktop);
74 RtlAnsiStringToUnicodeString(&DesktopNameU, &DesktopNameA, TRUE);
75 }
76 else
77 {
78 RtlInitUnicodeString(&DesktopNameU, NULL);
79 }
80 /* FIXME: Need to convert the DEVMODE parameter. */
81
82 hDesktop = CreateDesktopW(DesktopNameU.Buffer,
83 NULL,
84 pDevmode,
85 dwFlags,
86 dwDesiredAccess,
87 lpsa);
88
89 RtlFreeUnicodeString(&DesktopNameU);
90 return(hDesktop);
91 }
92
93 HDESK STDCALL
94 CreateDesktopW(LPCWSTR lpszDesktop,
95 LPCWSTR lpszDevice,
96 LPDEVMODEW pDevmode,
97 DWORD dwFlags,
98 ACCESS_MASK dwDesiredAccess,
99 LPSECURITY_ATTRIBUTES lpsa)
100 {
101 UNICODE_STRING DesktopName;
102 HWINSTA hWinSta;
103 HDESK hDesktop;
104
105 hWinSta = NtUserGetProcessWindowStation();
106
107 RtlInitUnicodeString(&DesktopName, lpszDesktop);
108
109 hDesktop = NtUserCreateDesktop(&DesktopName,
110 dwFlags,
111 dwDesiredAccess,
112 lpsa,
113 hWinSta);
114
115 return(hDesktop);
116 }
117
118 WINBOOL
119 STDCALL
120 EnumDesktopWindows(
121 HDESK hDesktop,
122 ENUMWINDOWSPROC lpfn,
123 LPARAM lParam)
124 {
125 return FALSE;
126 }
127
128 WINBOOL
129 STDCALL
130 EnumDesktopsA(
131 HWINSTA hwinsta,
132 DESKTOPENUMPROC lpEnumFunc,
133 LPARAM lParam)
134 {
135 return FALSE;
136 }
137
138 WINBOOL
139 STDCALL
140 EnumDesktopsW(
141 HWINSTA hwinsta,
142 DESKTOPENUMPROC lpEnumFunc,
143 LPARAM lParam)
144 {
145 return FALSE;
146 }
147
148 HDESK
149 STDCALL
150 GetThreadDesktop(
151 DWORD dwThreadId)
152 {
153 return NtUserGetThreadDesktop(dwThreadId, 0);
154 }
155
156 HDESK
157 STDCALL
158 OpenDesktopA(
159 LPSTR lpszDesktop,
160 DWORD dwFlags,
161 WINBOOL fInherit,
162 ACCESS_MASK dwDesiredAccess)
163 {
164 ANSI_STRING DesktopNameA;
165 UNICODE_STRING DesktopNameU;
166 HDESK hDesktop;
167
168 if (lpszDesktop != NULL) {
169 RtlInitAnsiString(&DesktopNameA, lpszDesktop);
170 RtlAnsiStringToUnicodeString(&DesktopNameU, &DesktopNameA, TRUE);
171 } else {
172 RtlInitUnicodeString(&DesktopNameU, NULL);
173 }
174
175 hDesktop = OpenDesktopW(
176 DesktopNameU.Buffer,
177 dwFlags,
178 fInherit,
179 dwDesiredAccess);
180
181 RtlFreeUnicodeString(&DesktopNameU);
182
183 return hDesktop;
184 }
185
186 HDESK
187 STDCALL
188 OpenDesktopW(
189 LPWSTR lpszDesktop,
190 DWORD dwFlags,
191 WINBOOL fInherit,
192 ACCESS_MASK dwDesiredAccess)
193 {
194 UNICODE_STRING DesktopName;
195
196 RtlInitUnicodeString(&DesktopName, lpszDesktop);
197
198 return NtUserOpenDesktop(
199 &DesktopName,
200 dwFlags,
201 dwDesiredAccess);
202 }
203
204 HDESK
205 STDCALL
206 OpenInputDesktop(
207 DWORD dwFlags,
208 WINBOOL fInherit,
209 ACCESS_MASK dwDesiredAccess)
210 {
211 return NtUserOpenInputDesktop(
212 dwFlags,
213 fInherit,
214 dwDesiredAccess);
215 }
216
217 WINBOOL
218 STDCALL
219 PaintDesktop(
220 HDC hdc)
221 {
222 return NtUserPaintDesktop(hdc);
223 }
224
225 WINBOOL
226 STDCALL
227 SetThreadDesktop(
228 HDESK hDesktop)
229 {
230 return NtUserSetThreadDesktop(hDesktop);
231 }
232
233 WINBOOL
234 STDCALL
235 SwitchDesktop(
236 HDESK hDesktop)
237 {
238 return NtUserSwitchDesktop(hDesktop);
239 }
240
241 /* EOF */