3 * COPYRIGHT: See COPYING in the top level directory
4 * PROJECT: ReactOS user32.dll
5 * FILE: lib/user32/misc/desktop.c
7 * PROGRAMMER: Casper S. Hornstrup (chorns@users.sourceforge.net)
9 * 06-06-2001 CSH Created
17 GetSystemMetrics(int nIndex)
19 return(NtUserGetSystemMetrics(nIndex));
23 SystemParametersInfoA(UINT uiAction,
28 return(SystemParametersInfoW(uiAction, uiParam, pvParam, fWinIni));
32 SystemParametersInfoW(UINT uiAction,
37 NONCLIENTMETRICS *nclm;
39 /* FIXME: This should be obtained from the registry */
40 static LOGFONT CaptionFont =
41 { 12, 0, 0, 0, FW_NORMAL, FALSE, FALSE, FALSE, OEM_CHARSET,
42 0, 0, DEFAULT_QUALITY, FIXED_PITCH | FF_MODERN, L"Timmons" };
48 ((PRECT)pvParam)->left = 0;
49 ((PRECT)pvParam)->top = 0;
50 ((PRECT)pvParam)->right = 640;
51 ((PRECT)pvParam)->bottom = 480;
54 case SPI_GETNONCLIENTMETRICS:
57 memcpy(&nclm->lfCaptionFont, &CaptionFont, sizeof(LOGFONT));
58 memcpy(&nclm->lfSmCaptionFont, &CaptionFont, sizeof(LOGFONT));
71 return NtUserCloseDesktop(hDesktop);
75 CreateDesktopA(LPCSTR lpszDesktop,
79 ACCESS_MASK dwDesiredAccess,
80 LPSECURITY_ATTRIBUTES lpsa)
82 ANSI_STRING DesktopNameA;
83 UNICODE_STRING DesktopNameU;
86 if (lpszDesktop != NULL)
88 RtlInitAnsiString(&DesktopNameA, (LPSTR)lpszDesktop);
89 RtlAnsiStringToUnicodeString(&DesktopNameU, &DesktopNameA, TRUE);
93 RtlInitUnicodeString(&DesktopNameU, NULL);
95 /* FIXME: Need to convert the DEVMODE parameter. */
97 hDesktop = CreateDesktopW(DesktopNameU.Buffer,
104 RtlFreeUnicodeString(&DesktopNameU);
109 CreateDesktopW(LPCWSTR lpszDesktop,
113 ACCESS_MASK dwDesiredAccess,
114 LPSECURITY_ATTRIBUTES lpsa)
116 UNICODE_STRING DesktopName;
120 hWinSta = NtUserGetProcessWindowStation();
122 RtlInitUnicodeString(&DesktopName, lpszDesktop);
124 hDesktop = NtUserCreateDesktop(&DesktopName,
137 ENUMWINDOWSPROC lpfn,
147 DESKTOPENUMPROC lpEnumFunc,
157 DESKTOPENUMPROC lpEnumFunc,
168 return NtUserGetThreadDesktop(dwThreadId, 0);
177 ACCESS_MASK dwDesiredAccess)
179 ANSI_STRING DesktopNameA;
180 UNICODE_STRING DesktopNameU;
183 if (lpszDesktop != NULL) {
184 RtlInitAnsiString(&DesktopNameA, lpszDesktop);
185 RtlAnsiStringToUnicodeString(&DesktopNameU, &DesktopNameA, TRUE);
187 RtlInitUnicodeString(&DesktopNameU, NULL);
190 hDesktop = OpenDesktopW(
196 RtlFreeUnicodeString(&DesktopNameU);
207 ACCESS_MASK dwDesiredAccess)
209 UNICODE_STRING DesktopName;
211 RtlInitUnicodeString(&DesktopName, lpszDesktop);
213 return NtUserOpenDesktop(
224 ACCESS_MASK dwDesiredAccess)
226 return NtUserOpenInputDesktop(
237 return NtUserPaintDesktop(hdc);
245 return NtUserSetThreadDesktop(hDesktop);
253 return NtUserSwitchDesktop(hDesktop);