adding SPI_SETSCREENSAVEACTIVE now, it can be set to false or true
[reactos.git] / reactos / subsystems / win32 / win32k / include / winsta.h
1 #ifndef _WIN32K_WINSTA_H
2 #define _WIN32K_WINSTA_H
3
4 #include "msgqueue.h"
5 #include "clipboard.h"
6
7 #define WINSTA_ROOT_NAME L"\\Windows\\WindowStations"
8 #define WINSTA_ROOT_NAME_LENGTH 23
9
10 /* Window Station Status Flags */
11 #define WSS_LOCKED (1)
12 #define WSS_NOINTERACTIVE (2)
13
14 typedef enum
15 {
16 wmCenter = 0,
17 wmTile,
18 wmStretch
19 } WALLPAPER_MODE;
20
21 typedef struct _WINSTATION_OBJECT
22 {
23 PVOID SharedHeap; /* points to kmode memory! */
24
25 CSHORT Type;
26 CSHORT Size;
27 KSPIN_LOCK Lock;
28 UNICODE_STRING Name;
29 LIST_ENTRY DesktopListHead;
30 PRTL_ATOM_TABLE AtomTable;
31 HANDLE SystemMenuTemplate;
32 PVOID SystemCursor;
33 UINT CaretBlinkRate;
34 HANDLE ShellWindow;
35 HANDLE ShellListView;
36
37 BOOL FlatMenu;
38 /* ScreenSaver */
39 BOOL ScreenSaverRunning;
40 UINT ScreenSaverTimeOut;
41 /* Should this be on each desktop ? */
42 BOOL ScreenSaverActive;
43
44 /* Wallpaper */
45 HANDLE hbmWallpaper;
46 ULONG cxWallpaper, cyWallpaper;
47 WALLPAPER_MODE WallpaperMode;
48
49 ULONG Flags;
50 struct _DESKTOP_OBJECT* ActiveDesktop;
51
52 PCLIPBOARDSYSTEM Clipboard;
53 DWORD ClipboardSequenceNumber;
54
55 } WINSTATION_OBJECT, *PWINSTATION_OBJECT;
56
57 extern WINSTATION_OBJECT *InputWindowStation;
58 extern PW32PROCESS LogonProcess;
59
60 NTSTATUS FASTCALL
61 InitWindowStationImpl(VOID);
62
63 NTSTATUS FASTCALL
64 CleanupWindowStationImpl(VOID);
65
66 NTSTATUS
67 STDCALL
68 IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters);
69
70 VOID STDCALL
71 IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
72
73 NTSTATUS
74 STDCALL
75 IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters);
76
77 NTSTATUS FASTCALL
78 IntValidateWindowStationHandle(
79 HWINSTA WindowStation,
80 KPROCESSOR_MODE AccessMode,
81 ACCESS_MASK DesiredAccess,
82 PWINSTATION_OBJECT *Object);
83
84 BOOL FASTCALL
85 IntGetWindowStationObject(PWINSTATION_OBJECT Object);
86
87 BOOL FASTCALL
88 co_IntInitializeDesktopGraphics(VOID);
89
90 VOID FASTCALL
91 IntEndDesktopGraphics(VOID);
92
93 BOOL FASTCALL
94 IntGetFullWindowStationName(
95 OUT PUNICODE_STRING FullName,
96 IN PUNICODE_STRING WinStaName,
97 IN OPTIONAL PUNICODE_STRING DesktopName);
98
99 PWINSTATION_OBJECT FASTCALL IntGetWinStaObj(VOID);
100
101 #endif /* _WIN32K_WINSTA_H */
102
103 /* EOF */