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