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 function.
See Also