[BROWSEUI] SHExplorerParseCmdLine: Fix parsing of /root (#6752)
[reactos.git] / win32ss / include / ntgdityp.h
index 956c6d2..137937e 100644 (file)
@@ -1,7 +1,7 @@
 /*
  * COPYRIGHT:       See COPYING in the top level directory
  * PROJECT:         ReactOS Win32 Graphical Subsystem (WIN32K)
- * FILE:            include/win32k/ntgdityp.h
+ * FILE:            win32ss/include/ntgdityp.h
  * PURPOSE:         Win32 Shared GDI Types for NtGdi*
  * PROGRAMMER:      Alex Ionescu (alex@relsoft.net)
  */
@@ -11,6 +11,8 @@
 #ifndef _NTGDITYP_
 #define _NTGDITYP_
 
+#include "ntwin32.h"
+
 /* ENUMERATIONS **************************************************************/
 
 typedef enum _ARCTYPE
@@ -46,7 +48,7 @@ typedef enum _GETDCDWORD
     GdiGetJournal,
     GdiGetRelAbs,
     GdiGetBreakExtra,
-    GdiGerCharBreak,
+    GdiGetCharBreak,
     GdiGetArcDirection,
     GdiGetEMFRestorDc,
     GdiGetFontLanguageInfo,
@@ -57,7 +59,8 @@ typedef enum _GETDCDWORD
 
 typedef enum _GETSETDCDWORD
 {
-    GdiGetSetCopyCount = 2,
+    GdiGetSetEPSPrintingEscape = 1,
+    GdiGetSetCopyCount,
     GdiGetSetTextAlign,
     GdiGetSetRelAbs,
     GdiGetSetTextCharExtra,
@@ -108,7 +111,7 @@ enum
     XFORM_FORMAT_LTOL = 0x20,
     XFORM_NO_TRANSLATION = 0x40,
 
-    /* Reactos specific */
+    /* ReactOS specific */
     XFORM_INTEGER = 0x1000,
 };
 
@@ -159,6 +162,8 @@ typedef enum GDILoObjType
     GDILoObjType_LO_REGION_TYPE = 0x40000,
     GDILoObjType_LO_ICMLCS_TYPE = 0x90000,
     GDILoObjType_LO_CLIENTOBJ_TYPE = 0x60000,
+    GDILoObjType_LO_UMPD_TYPE = 0x110000,
+    GDILoObjType_LO_META_TYPE = 0x150000,
     GDILoObjType_LO_ALTDC_TYPE = 0x210000,
     GDILoObjType_LO_PEN_TYPE = 0x300000,
     GDILoObjType_LO_EXTPEN_TYPE = 0x500000,
@@ -168,6 +173,12 @@ typedef enum GDILoObjType
     GDILoObjType_LO_METADC16_TYPE = 0x660000
 } GDILOOBJTYPE, *PGDILOOBJTYPE;
 
+/**
+       World Transform modification modes
+       See [MS-EMF] Section 2.1.24
+*/
+#define MWT_SET 0x04
+
 #define GdiWorldSpaceToPageSpace    0x203
 #define GdiWorldSpaceToDeviceSpace  0x204
 #define GdiPageSpaceToDeviceSpace   0x304
@@ -223,9 +234,18 @@ typedef DWORD LFTYPE;
 #define METARGN 2 // GetMetaRgn
 #define APIRGN  3
 
-/* Undocumented flag for fdwInit in CreateDIBitmap */
+/* New flag for fdwInit in CreateDIBitmap. See support.microsoft.com/kb/kbview/108497*/
 #define CBM_CREATDIB 2
 
+/* New color use parameter. See support.microsoft.com/kb/kbview/108497 */
+#define DIB_PAL_INDICES 2
+
+/* Get/SetBounds/Rect support. */
+#define DCB_WINDOWMGR 0x8000 /* Queries the Windows bounding rectangle instead of the application's */
+
+#define GDITAG_TYPE_EMF 'XEFM' // EnhMetaFile
+#define GDITAG_TYPE_MFP '_PFM' // MetaFile Picture
+
 /* TYPES *********************************************************************/
 
 typedef PVOID KERNEL_PVOID;
@@ -432,9 +452,7 @@ typedef struct _CFONT
     DWORD           dwCFCount;
 } CFONT, *PCFONT;
 
-//
-// GDI Batch structures.
-//
+/* GDI Batch structures. */
 typedef struct _GDIBATCHHDR
 {
   SHORT Size;
@@ -460,24 +478,13 @@ typedef struct _GDIBSPATBLT
   ULONG ulBrushClr;
 } GDIBSPATBLT, *PGDIBSPATBLT;
 
-#ifndef _NTUSRTYP_
+/* FIXME: this should go to some "public" GDI32 header */
 typedef struct _PATRECT
 {
   RECT r;
   HBRUSH hBrush;
 } PATRECT, * PPATRECT;
-#endif
-#ifndef __WIN32K_NTUSER_H
-typedef struct _W32CLIENTINFO
-{
-    ULONG CI_flags;
-    ULONG cSpins;
-    ULONG ulWindowsVersion;
-    ULONG ulAppCompatFlags;
-    ULONG ulAppCompatFlags2;
-    ULONG W32ClientInfo[57];
-} W32CLIENTINFO, *PW32CLIENTINFO;
-#endif
+
 typedef struct _GDIBSPPATBLT
 {
   GDIBATCHHDR gbHdr;
@@ -494,12 +501,17 @@ typedef struct _GDIBSPPATBLT
   PATRECT pRect[1]; // POLYPATBLT
 } GDIBSPPATBLT, *PGDIBSPPATBLT;
 
+//
+// Both ExtSelectClipRgn and TextOut pass a nill RECT.
+//
+#define GDIBS_NORECT 0x80000000
+
 typedef struct _GDIBSTEXTOUT
 {
   GDIBATCHHDR gbHdr;
   COLORREF crForegroundClr;
   COLORREF crBackgroundClr;
-  LONG lmBkMode;
+  LONG lBkMode;
   ULONG ulForegroundClr;
   ULONG ulBackgroundClr;
   int x;
@@ -512,7 +524,10 @@ typedef struct _GDIBSTEXTOUT
   HANDLE hlfntNew;
   FLONG flTextAlign;
   POINTL ptlViewportOrg;
+  union {
   WCHAR String[2];
+  ULONG Buffer[1];
+  };
 } GDIBSTEXTOUT, *PGDIBSTEXTOUT;
 
 typedef struct _GDIBSEXTTEXTOUT
@@ -535,26 +550,20 @@ typedef struct _GDIBSEXTSELCLPRGN
 {
   GDIBATCHHDR gbHdr;
   int fnMode;
-  RECTL;
+  RECTL rcl;
 } GDIBSEXTSELCLPRGN, *PGDIBSEXTSELCLPRGN;
-//
-//   Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn.
+
+/* Use with GdiBCSelObj, GdiBCDelObj and GdiBCDelRgn. */
 typedef struct _GDIBSOBJECT
 {
   GDIBATCHHDR gbHdr;
   HGDIOBJ hgdiobj;
 } GDIBSOBJECT, *PGDIBSOBJECT;
 
-//
-// Declarations missing in ddk/winddi.h
-//
+/* Declaration missing in ddk/winddi.h */
 typedef VOID (APIENTRY *PFN_DrvMovePanning)(LONG, LONG, FLONG);
-//typedef BOOL (APIENTRY *PFN_DrvOffset)(SURFOBJ*, LONG, LONG, FLONG);
-
 
-//
-// Most of these are defined in ddk/winddi.h
-//
+/* Most of these are defined in ddk/winddi.h */
 typedef struct _DRIVER_FUNCTIONS
 {
     PFN_DrvEnablePDEV              EnablePDEV;
@@ -564,7 +573,7 @@ typedef struct _DRIVER_FUNCTIONS
     PFN_DrvDisableSurface          DisableSurface;
     PFN_DrvAssertMode              AssertMode;
     PFN_DrvOffset                  Offset;
-    PFN_DrvResetDevice             ResetPDEV;
+    PFN_DrvResetPDEV               ResetPDEV;
     PFN_DrvDisableDriver           DisableDriver;
     PVOID                          Unknown1;
     PFN_DrvCreateDeviceBitmap      CreateDeviceBitmap;
@@ -742,5 +751,6 @@ ASSERT_PFN(DeriveSurface);
 ASSERT_PFN(QueryGlyphAttrs);
 ASSERT_PFN(Notify);
 ASSERT_PFN(SynchronizeSurface);
+ASSERT_PFN(ResetDevice);
 
 #endif