- Move NCI generated files to arch-specific directories
[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
42 /* Wallpaper */
43 HANDLE hbmWallpaper;
44 ULONG cxWallpaper, cyWallpaper;
45 WALLPAPER_MODE WallpaperMode;
46
47 ULONG Flags;
48 struct _DESKTOP_OBJECT* ActiveDesktop;
49
50 PCLIPBOARDSYSTEM Clipboard;
51 DWORD ClipboardSequenceNumber;
52
53 } WINSTATION_OBJECT, *PWINSTATION_OBJECT;
54
55 extern WINSTATION_OBJECT *InputWindowStation;
56 extern PW32PROCESS LogonProcess;
57
58 NTSTATUS FASTCALL
59 InitWindowStationImpl(VOID);
60
61 NTSTATUS FASTCALL
62 CleanupWindowStationImpl(VOID);
63
64 NTSTATUS
65 STDCALL
66 IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters);
67
68 VOID STDCALL
69 IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
70
71 NTSTATUS
72 STDCALL
73 IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters);
74
75 NTSTATUS FASTCALL
76 IntValidateWindowStationHandle(
77 HWINSTA WindowStation,
78 KPROCESSOR_MODE AccessMode,
79 ACCESS_MASK DesiredAccess,
80 PWINSTATION_OBJECT *Object);
81
82 BOOL FASTCALL
83 IntGetWindowStationObject(PWINSTATION_OBJECT Object);
84
85 BOOL FASTCALL
86 co_IntInitializeDesktopGraphics(VOID);
87
88 VOID FASTCALL
89 IntEndDesktopGraphics(VOID);
90
91 BOOL FASTCALL
92 IntGetFullWindowStationName(
93 OUT PUNICODE_STRING FullName,
94 IN PUNICODE_STRING WinStaName,
95 IN OPTIONAL PUNICODE_STRING DesktopName);
96
97 PWINSTATION_OBJECT FASTCALL IntGetWinStaObj(VOID);
98
99 #endif /* _WIN32K_WINSTA_H */
100
101 /* EOF */