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 |
); |
Value |
Description |
DF_ALLOWOTHERACCOUNTHOOK |
Allows processes running in other accounts on the desktop to set hooks in this process. |
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. |
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.
The calling process must have an associated window station, either assigned by the system at process creation time or set by the SetProcessWindowStation function.
CreateDesktop, SetProcessWindowStation, SetThreadDesktop, SwitchDesktop