1 /* $Id: desktop.c,v 1.6 2002/09/08 10:23:10 chorns Exp $
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
16 GetSystemMetrics(int nIndex
)
18 return(NtUserGetSystemMetrics(nIndex
));
22 SystemParametersInfoA(UINT uiAction
,
27 return(SystemParametersInfoW(uiAction
, uiParam
, pvParam
, fWinIni
));
31 SystemParametersInfoW(UINT uiAction
,
40 ((PRECT
)pvParam
)->left
= 0;
41 ((PRECT
)pvParam
)->top
= 0;
42 ((PRECT
)pvParam
)->right
= 640;
43 ((PRECT
)pvParam
)->bottom
= 480;
56 return NtUserCloseDesktop(hDesktop
);
60 CreateDesktopA(LPCSTR lpszDesktop
,
64 ACCESS_MASK dwDesiredAccess
,
65 LPSECURITY_ATTRIBUTES lpsa
)
67 ANSI_STRING DesktopNameA
;
68 UNICODE_STRING DesktopNameU
;
71 if (lpszDesktop
!= NULL
)
73 RtlInitAnsiString(&DesktopNameA
, (LPSTR
)lpszDesktop
);
74 RtlAnsiStringToUnicodeString(&DesktopNameU
, &DesktopNameA
, TRUE
);
78 RtlInitUnicodeString(&DesktopNameU
, NULL
);
80 /* FIXME: Need to convert the DEVMODE parameter. */
82 hDesktop
= CreateDesktopW(DesktopNameU
.Buffer
,
89 RtlFreeUnicodeString(&DesktopNameU
);
94 CreateDesktopW(LPCWSTR lpszDesktop
,
98 ACCESS_MASK dwDesiredAccess
,
99 LPSECURITY_ATTRIBUTES lpsa
)
101 UNICODE_STRING DesktopName
;
105 hWinSta
= NtUserGetProcessWindowStation();
107 RtlInitUnicodeString(&DesktopName
, lpszDesktop
);
109 hDesktop
= NtUserCreateDesktop(&DesktopName
,
122 ENUMWINDOWSPROC lpfn
,
132 DESKTOPENUMPROC lpEnumFunc
,
142 DESKTOPENUMPROC lpEnumFunc
,
153 return NtUserGetThreadDesktop(dwThreadId
, 0);
162 ACCESS_MASK dwDesiredAccess
)
164 ANSI_STRING DesktopNameA
;
165 UNICODE_STRING DesktopNameU
;
168 if (lpszDesktop
!= NULL
) {
169 RtlInitAnsiString(&DesktopNameA
, lpszDesktop
);
170 RtlAnsiStringToUnicodeString(&DesktopNameU
, &DesktopNameA
, TRUE
);
172 RtlInitUnicodeString(&DesktopNameU
, NULL
);
175 hDesktop
= OpenDesktopW(
181 RtlFreeUnicodeString(&DesktopNameU
);
192 ACCESS_MASK dwDesiredAccess
)
194 UNICODE_STRING DesktopName
;
196 RtlInitUnicodeString(&DesktopName
, lpszDesktop
);
198 return NtUserOpenDesktop(
209 ACCESS_MASK dwDesiredAccess
)
211 return NtUserOpenInputDesktop(
222 return NtUserPaintDesktop(hdc
);
230 return NtUserSetThreadDesktop(hDesktop
);
238 return NtUserSwitchDesktop(hDesktop
);