9.2.1 Object Access Types

This is a list of the object type-specific access types defined for each of the USER32 objects:

WindowStation Object

WINSTA_ACCESSCLIPBOARD (Implied by GenericWrite) This access type is needed to utilize the clipboard.
WINSTA_CREATEDESKTOP (Implied by GenericWrite) This access type is needed to create new Desktop objects on the WindowStation.
WINSTA_ENUMDESKTOPS (Implied by GenericRead) This access type is needed to enumerate existing desktop objects.
WINSTA_READATTRIBUTES (Implied by GenericRead) This access type is needed to read the attributes of a WindowStation object. The attributes include: color settings and other global windowstation properties.
WINSTA_WRITEATTRIBUTES (Implied by GenericWrite) This access type is needed to modify the attributes of a WindowStation object. The attributes include: color settings and other global windowstation properties.
WINSTA_ACCESSGLOBALATOMS (Implied by GenericExecute) This access type is needed to create/read/write/destroy global atoms.
WINSTA_ENUMERATE (Implied by GenericRead) This access type is needed for the windowstation to be enumerated.
WINSTA_READSCREEN (Implied by GenericRead) This access type is needed to access screen contents.
WINSTA_EXITWINDOWS (Implied by GenericExecute) This access type is needed to successfully call ExitWindows . Windowstations can be shared between users and this access type can be used to prevent other users of a windowstation from logging off the windowstation owner.

Desktop Object

DESKTOP_CREATEWINDOW (Implied by GenericWrite) This access type is needed to create a window associated with the desktop.
DESKTOP_CREATEMENU (Implied by GenericWrite) This access type is needed to create a menu associated with the desktop.
DESKTOP_ENUMWINDOWS (Implied by GenericRead) This access type is needed to enumerate window objects created by other processes.
DESKTOP_HOOKCONTROL (Implied by GenericWrite) This access type is needed to establish any of the window hooks on a queue belonging to another thread or to establish a system-level hook.
DESKTOP_JOURNALRECORD (Implied by GenericWrite) This access type is needed to perform journal recording.
DESKTOP_JOURNALPLAYBACK (Implied by GenericWrite) This access type is needed to perform journal playback.
DESKTOP_ENUMERATE (Implied by GenericRead) This access type is needed for the desktop to be enumerated.

Window Object

WIN_ACCESSWINDOW (Implied by GenericExecute) This access type is needed to perform any window operation.
WIN_ENUMERATE (Implied by GenericRead) This access type is needed for the window to be enumerated by processes other than the creating process.

Menu Object

MENU_ACCESSMENU (Implied by GenericExecute) This access type is needed to perform any menu operation.

DDE Access and Conversation Objects

DDE_ADVISE (Implied by GenericRead) This access type is needed for a DDE client to begin an advise loop.
DDE_EXECUTE (Implied by GenericExecute) This access type is needed for a DDE client to execute a command on a DDE server.
DDE_POKE (Implied by GenericWrite) This access type is needed for a DDE client to write data to a DDE server.
DDE_REQUEST (Implied by GenericRead) This access type is needed for a DDE client to get data from a DDE server.