xref: /reactos/win32ss/gdi/eng/mdevobj.h (revision 7e22dc05)
1 #ifndef __WIN32K_MDEVOBJ_H
2 #define __WIN32K_MDEVOBJ_H
3 
4 /* Type definitions ***********************************************************/
5 
6 typedef struct _PDEVOBJ *PPDEVOBJ;
7 
8 typedef struct _MDEVDISPLAY
9 {
10     PPDEVOBJ ppdev;
11 } MDEVDISPLAY, *PMDEVDISPLAY;
12 
13 typedef struct _MDEVOBJ
14 {
15     ULONG cDev;
16     PPDEVOBJ ppdevGlobal;
17     MDEVDISPLAY dev[0];
18 } MDEVOBJ, *PMDEVOBJ;
19 
20 /* Globals ********************************************************************/
21 
22 extern PMDEVOBJ gpmdev; /* FIXME: should be stored in gpDispInfo->pmdev */
23 
24 /* Function prototypes ********************************************************/
25 
26 VOID
27 MDEVOBJ_vEnable(
28     _Inout_ PMDEVOBJ pmdev);
29 
30 BOOL
31 MDEVOBJ_bDisable(
32     _Inout_ PMDEVOBJ pmdev);
33 
34 /* Create a new MDEV:
35  * - pustrDeviceName: name of the device to put in MDEV. If NULL, will put all graphics devices in MDEV
36  * - pdm: settings associated to pustrDeviceName. Unused if pustrDeviceName is NULL.
37  * Return value: the new MDEV (or NULL in case of error)
38  */
39 PMDEVOBJ
40 MDEVOBJ_Create(
41     _In_opt_ PUNICODE_STRING pustrDeviceName,
42     _In_opt_ PDEVMODEW pdm);
43 
44 VOID
45 MDEVOBJ_vDestroy(
46     _Inout_ PMDEVOBJ pmdev);
47 
48 #endif /* !__WIN32K_MDEVOBJ_H */
49