1 /* $Id: desktop.c,v 1.3 2002/07/04 19:56:34 dwelch 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
21 return NtUserCloseDesktop(hDesktop
);
25 CreateDesktopA(LPCSTR lpszDesktop
,
29 ACCESS_MASK dwDesiredAccess
,
30 LPSECURITY_ATTRIBUTES lpsa
)
32 ANSI_STRING DesktopNameA
;
33 UNICODE_STRING DesktopNameU
;
36 if (lpszDesktop
!= NULL
)
38 RtlInitAnsiString(&DesktopNameA
, (LPSTR
)lpszDesktop
);
39 RtlAnsiStringToUnicodeString(&DesktopNameU
, &DesktopNameA
, TRUE
);
43 RtlInitUnicodeString(&DesktopNameU
, NULL
);
45 /* FIXME: Need to convert the DEVMODE parameter. */
47 hDesktop
= CreateDesktopW(DesktopNameU
.Buffer
,
54 RtlFreeUnicodeString(&DesktopNameU
);
59 CreateDesktopW(LPCWSTR lpszDesktop
,
63 ACCESS_MASK dwDesiredAccess
,
64 LPSECURITY_ATTRIBUTES lpsa
)
66 UNICODE_STRING DesktopName
;
70 hWinSta
= NtUserGetProcessWindowStation();
72 RtlInitUnicodeString(&DesktopName
, lpszDesktop
);
74 hDesktop
= NtUserCreateDesktop(&DesktopName
,
97 DESKTOPENUMPROC lpEnumFunc
,
107 DESKTOPENUMPROC lpEnumFunc
,
118 return NtUserGetThreadDesktop(dwThreadId
, 0);
127 ACCESS_MASK dwDesiredAccess
)
129 ANSI_STRING DesktopNameA
;
130 UNICODE_STRING DesktopNameU
;
133 if (lpszDesktop
!= NULL
) {
134 RtlInitAnsiString(&DesktopNameA
, lpszDesktop
);
135 RtlAnsiStringToUnicodeString(&DesktopNameU
, &DesktopNameA
, TRUE
);
137 RtlInitUnicodeString(&DesktopNameU
, NULL
);
140 hDesktop
= OpenDesktopW(
146 RtlFreeUnicodeString(&DesktopNameU
);
157 ACCESS_MASK dwDesiredAccess
)
159 UNICODE_STRING DesktopName
;
161 RtlInitUnicodeString(&DesktopName
, lpszDesktop
);
163 return NtUserOpenDesktop(
174 ACCESS_MASK dwDesiredAccess
)
176 return NtUserOpenInputDesktop(
187 return NtUserPaintDesktop(hdc
);
195 return NtUserSetThreadDesktop(hDesktop
);
203 return NtUserSwitchDesktop(hDesktop
);