OpenDesktop
The OpenDesktop
function returns a handle to an existing desktop. A desktop is a secure object
contained within a window station object. A desktop has a logical display
surface and contains windows, menus and hooks.
HDESK OpenDesktop(
LPTSTR lpszDesktop, |
// name of the
desktop to open |
DWORD dwFlags, |
// flags to control
interaction with other applications |
BOOL fInherit, |
// specifies
whether returned handle is inheritable |
DWORD dwDesiredAccess |
// specifies access
of returned handle |
); |
|
Parameters
lpszDesktop
Points to
null-terminated string specifying the name of the desktop to be opened. Desktop
names are case-insensitive.
dwFlags
A bit flag
parameter that controls how the calling application will cooperate with other
applications on the desktop. This parameter can specify zero or the following
value:
Value |
Description |
DF_ALLOWOTHERACCOUNTHOOK |
Allows
processes running in other accounts on the desktop to set hooks in this
process. |
fInherit
Specifies
whether the returned handle is inherited when a new process is created. If this
value is TRUE, new processes will inherit the handle.
dwDesiredAccess
Specifies the
type of access to the desktop. This parameter can be one or more of the
following values:
Value |
Description |
DESKTOP_CREATEMENU |
Required to
create a menu on the desktop. |
DESKTOP_CREATEWINDOW |
Required to
create a window on the desktop. |
DESKTOP_ENUMERATE |
Required
for the desktop to be enumerated. |
DESKTOP_HOOKCONTROL |
Required to
establish any of the window hooks. |
DESKTOP_JOURNALPLAYBACK |
Required to
perform journal playback on the desktop. |
DESKTOP_JOURNALRECORD |
Required to
perform journal recording on the desktop. |
DESKTOP_READOBJECTS |
Required to
read objects on the desktop. |
DESKTOP_SWITCHDESKTOP |
Required to
activate the desktop using SwitchDesktop |
DESKTOP_WRITEOBJECTS |
Required to
write objects on the desktop. |
Return Values
If the
function succeeds, the return value is the handle to the opened desktop.
If the
function fails, the return value is NULL. To get extended error information,
call GetLastError
Remarks
The calling
process must have an associated window station, either assigned by the system
at process creation time or set by the SetProcessWindowStation
See Also