- Create another branch for networking fixes
[reactos.git] / subsystems / win32 / win32k / include / winsta.h
1 #ifndef _WIN32K_WINSTA_H
2 #define _WIN32K_WINSTA_H
3
4 #include "window.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 /* Effects */
38 BOOL FontSmoothing; /* enable */
39 UINT FontSmoothingType; /* 1:Standard,2:ClearType */
40 /* FIXME: Big Icons (SPI_GETICONMETRICS?) */
41 BOOL DropShadow;
42 BOOL DragFullWindows;
43 BOOL FlatMenu;
44
45 /* ScreenSaver */
46 BOOL ScreenSaverRunning;
47 UINT ScreenSaverTimeOut;
48 /* Should this be on each desktop ? */
49 BOOL ScreenSaverActive;
50
51 /* Wallpaper */
52 HANDLE hbmWallpaper;
53 ULONG cxWallpaper, cyWallpaper;
54 WALLPAPER_MODE WallpaperMode;
55
56 ULONG Flags;
57 struct _DESKTOP* ActiveDesktop;
58
59 PCLIPBOARDSYSTEM Clipboard;
60 DWORD ClipboardSequenceNumber;
61
62 } WINSTATION_OBJECT, *PWINSTATION_OBJECT;
63
64 extern WINSTATION_OBJECT *InputWindowStation;
65 extern PPROCESSINFO LogonProcess;
66
67 NTSTATUS FASTCALL
68 InitWindowStationImpl(VOID);
69
70 NTSTATUS FASTCALL
71 CleanupWindowStationImpl(VOID);
72
73 NTSTATUS
74 APIENTRY
75 IntWinStaObjectOpen(PWIN32_OPENMETHOD_PARAMETERS Parameters);
76
77 VOID APIENTRY
78 IntWinStaObjectDelete(PWIN32_DELETEMETHOD_PARAMETERS Parameters);
79
80 NTSTATUS
81 APIENTRY
82 IntWinStaObjectParse(PWIN32_PARSEMETHOD_PARAMETERS Parameters);
83
84 NTSTATUS FASTCALL
85 IntValidateWindowStationHandle(
86 HWINSTA WindowStation,
87 KPROCESSOR_MODE AccessMode,
88 ACCESS_MASK DesiredAccess,
89 PWINSTATION_OBJECT *Object);
90
91 BOOL FASTCALL
92 IntGetWindowStationObject(PWINSTATION_OBJECT Object);
93
94 BOOL FASTCALL
95 co_IntInitializeDesktopGraphics(VOID);
96
97 VOID FASTCALL
98 IntEndDesktopGraphics(VOID);
99
100 BOOL FASTCALL
101 IntGetFullWindowStationName(
102 OUT PUNICODE_STRING FullName,
103 IN PUNICODE_STRING WinStaName,
104 IN OPTIONAL PUNICODE_STRING DesktopName);
105
106 PWINSTATION_OBJECT FASTCALL IntGetWinStaObj(VOID);
107
108 #endif /* _WIN32K_WINSTA_H */
109
110 /* EOF */