Sync with trunk head (part 1 of 2)
[reactos.git] / subsystems / win32 / win32k / include / monitor.h
1 #pragma once
2
3 /* monitor object */
4 typedef struct _MONITOR
5 {
6 HEAD head;
7 //
8 FAST_MUTEX Lock; /* R/W lock */
9 UNICODE_STRING DeviceName; /* name of the monitor */
10 PDEVOBJ *GdiDevice; /* pointer to the GDI device to
11 which this monitor is attached */
12 // This is the structure Windows uses:
13 // struct _MONITOR* pMonitorNext;
14 union {
15 DWORD dwMONFlags;
16 struct {
17 DWORD IsVisible:1;
18 DWORD IsPalette:1;
19 DWORD IsPrimary:1; /* wether this is the primary monitor */
20 };};
21 RECT rcMonitor;
22 RECT rcWork;
23 HRGN hrgnMonitor;
24 SHORT Spare0;
25 SHORT cWndStack;
26 HDEV hDev;
27 HDEV hDevReal;
28 // BYTE DockTargets[4][7];
29 // Use LIST_ENTRY
30 struct _MONITOR* Next; //Flink;
31 struct _MONITOR* Prev; //Blink;
32 } MONITOR, *PMONITOR;
33
34 /* functions */
35 NTSTATUS InitMonitorImpl();
36 NTSTATUS CleanupMonitorImpl();
37
38 NTSTATUS IntAttachMonitor(PDEVOBJ *pGdiDevice, ULONG DisplayNumber);
39 NTSTATUS IntDetachMonitor(PDEVOBJ *pGdiDevice);
40 PMONITOR FASTCALL UserGetMonitorObject(IN HMONITOR);
41 PMONITOR FASTCALL IntGetPrimaryMonitor(VOID);
42
43 /* EOF */