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