Sync with trunk r64509.
[reactos.git] / win32ss / user / ntuser / winsta.h
1 #pragma once
2
3 #define WINSTA_OBJ_DIR L"\\Windows\\WindowStations"
4 #define SESSION_DIR L"\\Sessions"
5
6 /* Window Station Status Flags */
7 #define WSS_LOCKED (1)
8 #define WSS_NOINTERACTIVE (2)
9
10 typedef struct _WINSTATION_OBJECT
11 {
12 DWORD dwSessionId;
13
14 UNICODE_STRING Name;
15 LIST_ENTRY DesktopListHead;
16 PRTL_ATOM_TABLE AtomTable;
17 HANDLE ShellWindow;
18 HANDLE ShellListView;
19
20 ULONG Flags;
21 struct _DESKTOP* ActiveDesktop;
22
23 PTHREADINFO ptiClipLock;
24 PTHREADINFO ptiDrawingClipboard;
25 PWND spwndClipOpen;
26 PWND spwndClipViewer;
27 PWND spwndClipOwner;
28 PCLIP pClipBase; // Not a clip object.
29 DWORD cNumClipFormats;
30 INT iClipSerialNumber;
31 INT iClipSequenceNumber;
32 INT fClipboardChanged : 1;
33 INT fInDelayedRendering : 1;
34
35 } WINSTATION_OBJECT, *PWINSTATION_OBJECT;
36
37 extern WINSTATION_OBJECT *InputWindowStation;
38 extern PPROCESSINFO LogonProcess;
39 extern HWND hwndSAS;
40 extern UNICODE_STRING gustrWindowStationsDir;
41
42 #define WINSTA_READ STANDARD_RIGHTS_READ | \
43 WINSTA_ENUMDESKTOPS | \
44 WINSTA_ENUMERATE | \
45 WINSTA_READATTRIBUTES | \
46 WINSTA_READSCREEN
47
48 #define WINSTA_WRITE STANDARD_RIGHTS_WRITE | \
49 WINSTA_ACCESSCLIPBOARD | \
50 WINSTA_CREATEDESKTOP | \
51 WINSTA_WRITEATTRIBUTES
52
53 #define WINSTA_EXECUTE STANDARD_RIGHTS_EXECUTE | \
54 WINSTA_ACCESSGLOBALATOMS | \
55 WINSTA_EXITWINDOWS
56
57 #define WINSTA_ACCESS_ALL STANDARD_RIGHTS_REQUIRED | \
58 WINSTA_ACCESSCLIPBOARD | \
59 WINSTA_ACCESSGLOBALATOMS | \
60 WINSTA_CREATEDESKTOP | \
61 WINSTA_ENUMDESKTOPS | \
62 WINSTA_ENUMERATE | \
63 WINSTA_EXITWINDOWS | \
64 WINSTA_READATTRIBUTES | \
65 WINSTA_READSCREEN | \
66 WINSTA_WRITEATTRIBUTES
67
68 INIT_FUNCTION
69 NTSTATUS
70 NTAPI
71 InitWindowStationImpl(VOID);
72
73 NTSTATUS
74 NTAPI
75 UserCreateWinstaDirectory();
76
77 NTSTATUS
78 APIENTRY
79 IntWinStaObjectDelete(
80 _In_ PVOID Parameters);
81
82 NTSTATUS
83 APIENTRY
84 IntWinStaObjectParse(
85 _In_ PVOID Parameters);
86
87 NTSTATUS
88 NTAPI
89 IntWinstaOkToClose(
90 _In_ PVOID Parameters);
91
92 NTSTATUS
93 FASTCALL
94 IntValidateWindowStationHandle(
95 HWINSTA WindowStation,
96 KPROCESSOR_MODE AccessMode,
97 ACCESS_MASK DesiredAccess,
98 PWINSTATION_OBJECT *Object);
99
100 BOOL FASTCALL UserSetProcessWindowStation(HWINSTA hWindowStation);
101
102 BOOL FASTCALL co_IntInitializeDesktopGraphics(VOID);
103 VOID FASTCALL IntEndDesktopGraphics(VOID);
104 /* EOF */