[PSDK]
[reactos.git] / reactos / include / psdk / wingdi.h
index 37dd6a7..b7bd62b 100644 (file)
@@ -1,14 +1,17 @@
 #ifndef _WINGDI_H
 #define _WINGDI_H
 #define _WINGDI_
-#if __GNUC__ >= 3
-#pragma GCC system_header
-#endif
 
 #ifdef __cplusplus
 extern "C" {
 #endif
 
+#ifdef _MSC_VER
+#pragma warning(push)
+#pragma warning(disable:4201)
+#pragma warning(disable:4820)
+#endif
+
 /* Get/SetSystemPaletteUse() values */
 #define SYSPAL_ERROR        0
 #define SYSPAL_STATIC       1
@@ -169,6 +172,25 @@ extern "C" {
 #define EMR_GLSRECORD 102
 #define EMR_GLSBOUNDEDRECORD 103
 #define EMR_PIXELFORMAT 104
+#if (_WIN32_WINNT >= 0x0500)
+#define EMR_DRAWESCAPE 105
+#define EMR_EXTESCAPE 106
+#define EMR_STARTDOC 107
+#define EMR_SMALLTEXTOUT 108
+#define EMR_FORCEUFIMAPPING 109
+#define EMR_NAMEDESCAPE 110
+#define EMR_COLORCORRECTPALETTE 111
+#define EMR_SETICMPROFILEA 112
+#define EMR_SETICMPROFILEW 113
+#define EMR_ALPHABLEND 114
+#define EMR_ALPHADIBBLEND 115
+#define EMR_TRANSPARENTBLT 116
+#define EMR_TRANSPARENTDIB 117
+#define EMR_GRADIENTFILL 118
+#define EMR_SETLINKEDUFIS 119
+#define EMR_SETTEXTJUSTIFICATION 120
+#define EMR_COLORMATCHTOTARGETW 121
+#endif
 #define ENHMETA_SIGNATURE 1179469088
 #define EPS_SIGNATURE 0x46535045
 #if (_WIN32_WINNT >= 0x0500)
@@ -351,6 +373,7 @@ extern "C" {
 #define BALTIC_CHARSET 186
 #define RUSSIAN_CHARSET        204
 #define THAI_CHARSET   222
+#define EE_CHARSET         238
 #define EASTEUROPE_CHARSET     238
 #define OEM_CHARSET    255
 #define JOHAB_CHARSET  130
@@ -502,6 +525,7 @@ extern "C" {
 #define FS_HEBREW 32
 #define FS_ARABIC 64
 #define FS_BALTIC 128
+#define FS_VIETNAMESE 256
 #define FS_THAI 0x10000
 #define FS_JISJAPAN 0x20000
 #define FS_CHINESESIMP 0x40000
@@ -532,6 +556,7 @@ extern "C" {
 #define PS_JOIN_BEVEL  4096
 #define PS_JOIN_MITER  8192
 #define PS_JOIN_ROUND  0
+#define PS_JOIN_MASK    0x0000F000
 #define PS_STYLE_MASK  15
 #define PS_ENDCAP_MASK 3840
 #define PS_TYPE_MASK   983040
@@ -576,10 +601,21 @@ extern "C" {
 #define DCBA_FACEDOWNRIGHT     259
 #define FLOODFILLBORDER 0
 #define FLOODFILLSURFACE 1
-#define ETO_CLIPPED 4
-#define ETO_GLYPH_INDEX 16
-#define ETO_OPAQUE 2
-#define ETO_RTLREADING 128
+#define ETO_OPAQUE            0x00002
+#define ETO_CLIPPED           0x00004
+#if (WINVER >= 0x0400)
+#define ETO_GLYPH_INDEX       0x00010
+#define ETO_RTLREADING        0x00080
+#define ETO_NUMERICSLOCAL     0x00400
+#define ETO_NUMERICSLATIN     0x00800
+#define ETO_IGNORELANGUAGE    0x01000
+#endif
+#if (_WIN32_WINNT >= _WIN32_WINNT_WIN2K)
+#define ETO_PDY               0x02000
+#endif
+#if (_WIN32_WINNT >= _WIN32_WINNT_LONGHORN)
+#define ETO_REVERSE_INDEX_MAP 0x10000
+#endif
 #define GDICOMMENT_WINDOWS_METAFILE (-2147483647)
 #define GDICOMMENT_BEGINGROUP 2
 #define GDICOMMENT_ENDGROUP 3
@@ -742,6 +778,10 @@ extern "C" {
 #define TC_VA_ABLE 16384
 #define TC_RESERVED 32768
 #define TC_SCROLLBLT 65536
+/* CLIPCAPS */
+#define CP_NONE 0
+#define CP_RECTANGLE 1
+#define CP_REGION 2
 #define GCP_DBCS 1
 #define GCP_ERROR 0x8000
 #define GCP_CLASSIN 0x80000
@@ -782,6 +822,8 @@ extern "C" {
 #define MM_TEXT 1
 #define MM_TWIPS 6
 #define MM_MAX_FIXEDSCALE      MM_TWIPS
+#define MM_MIN MM_TEXT
+#define MM_MAX MM_ANISOTROPIC
 #define ABSOLUTE       1
 #define RELATIVE       2
 #define PC_EXPLICIT 2
@@ -861,6 +903,22 @@ extern "C" {
 #define TCI_SRCCHARSET 1
 #define TCI_SRCCODEPAGE 2
 #define TCI_SRCFONTSIG 3
+#if (_WIN32_WINNT >= 0x0500)
+#define SHADEBLENDCAPS    120
+#define COLORMGMTCAPS     121
+/* SHADEBLENDCAPS */
+#define SB_NONE           0x00000000
+#define SB_CONST_ALPHA    0x00000001
+#define SB_PIXEL_ALPHA    0x00000002
+#define SB_PREMULT_ALPHA  0x00000004
+#define SB_GRAD_RECT      0x00000010
+#define SB_GRAD_TRI       0x00000020
+/* Color Management caps */
+#define CM_NONE           0x00000000
+#define CM_DEVICE_ICM     0x00000001
+#define CM_GAMMA_RAMP     0x00000002
+#define CM_CMYK_COLOR     0x00000004
+#endif
 #define ICM_ON 2
 #define ICM_OFF 1
 #define ICM_QUERY 3
@@ -965,6 +1023,10 @@ extern "C" {
 #define LCS_GM_BUSINESS        1
 #define LCS_GM_GRAPHICS        2
 #define LCS_GM_IMAGES  4
+#define LCS_GM_ABS_COLORIMETRIC 8
+#define LCS_SIGNATURE   0x50534F43 // 'PSOC'
+#define LCS_sRGB        'sRGB'
+#define LCS_WINDOWS_COLOR_SPACE 'Win '
 #define RASTER_FONTTYPE        1
 #define DEVICE_FONTTYPE        2
 #define TRUETYPE_FONTTYPE      4
@@ -1084,31 +1146,40 @@ extern "C" {
 #define DM_IN_PROMPT   DM_PROMPT
 #define DM_OUT_BUFFER  DM_COPY
 #define DM_OUT_DEFAULT DM_UPDATE
-#define DM_ORIENTATION 1
-#define DM_PAPERSIZE 2
-#define DM_PAPERLENGTH 4
-#define DM_PAPERWIDTH 8
-#define DM_POSITION 32
-#define DM_SCALE 16
-#define DM_COPIES 256
-#define DM_DEFAULTSOURCE 512
-#define DM_PRINTQUALITY 1024
-#define DM_COLOR 2048
-#define DM_DUPLEX 4096
-#define DM_YRESOLUTION 8192
-#define DM_TTOPTION 16384
-#define DM_COLLATE 32768
-#define DM_FORMNAME 65536
-#define DM_LOGPIXELS 0x20000
-#define DM_BITSPERPEL 0x40000
-#define DM_PELSWIDTH 0x80000
-#define DM_PELSHEIGHT 0x100000
-#define DM_DISPLAYFLAGS 0x200000
-#define DM_DISPLAYFREQUENCY 0x400000
-#define DM_ICMMETHOD 0x800000
-#define DM_ICMINTENT 0x1000000
-#define DM_MEDIATYPE 0x2000000
-#define DM_DITHERTYPE 0x4000000
+
+#define DM_ORIENTATION        0x00000001
+#define DM_PAPERSIZE          0x00000002
+#define DM_PAPERLENGTH        0x00000004
+#define DM_PAPERWIDTH         0x00000008
+#define DM_SCALE              0x00000010
+#define DM_POSITION           0x00000020
+#define DM_NUP                0x00000040
+#define DM_DISPLAYORIENTATION 0x00000080
+#define DM_COPIES             0x00000100
+#define DM_DEFAULTSOURCE      0x00000200
+#define DM_PRINTQUALITY       0x00000400
+#define DM_COLOR              0x00000800
+#define DM_DUPLEX             0x00001000
+#define DM_YRESOLUTION        0x00002000
+#define DM_TTOPTION           0x00004000
+#define DM_COLLATE            0x00008000
+#define DM_FORMNAME           0x00010000
+#define DM_LOGPIXELS          0x00020000
+#define DM_BITSPERPEL         0x00040000
+#define DM_PELSWIDTH          0x00080000
+#define DM_PELSHEIGHT         0x00100000
+#define DM_DISPLAYFLAGS       0x00200000
+#define DM_DISPLAYFREQUENCY   0x00400000
+#define DM_ICMMETHOD          0x00800000
+#define DM_ICMINTENT          0x01000000
+#define DM_MEDIATYPE          0x02000000
+#define DM_DITHERTYPE         0x04000000
+#define DM_PANNINGWIDTH       0x08000000
+#define DM_PANNINGHEIGHT      0x10000000
+#if (WINVER >= 0x0501)
+#define DM_DISPLAYFIXEDOUTPUT 0x20000000
+#endif
+
 #define DMICMMETHOD_NONE       1
 #define DMICMMETHOD_SYSTEM     2
 #define DMICMMETHOD_DRIVER     3
@@ -1403,9 +1474,11 @@ typedef struct _devicemodeA {
 #else
     } DUMMYSTRUCTNAME;
 #endif
-    POINTL dmPosition;
-    DWORD  dmDisplayOrientation;
-    DWORD  dmDisplayFixedOutput;
+    struct {
+      POINTL dmPosition;
+      DWORD  dmDisplayOrientation;
+      DWORD  dmDisplayFixedOutput;
+    } DUMMYSTRUCTNAME2;
 #ifdef __WINESRC__
   } DUMMYUNIONNAME1;
 #else
@@ -1462,9 +1535,11 @@ typedef struct _devicemodeW {
 #else
     } DUMMYSTRUCTNAME;
 #endif
-    POINTL dmPosition;
-    DWORD  dmDisplayOrientation;
-    DWORD  dmDisplayFixedOutput;
+    struct {
+      POINTL dmPosition;
+      DWORD  dmDisplayOrientation;
+      DWORD  dmDisplayFixedOutput;
+    } DUMMYSTRUCTNAME2;
 #ifdef __WINESRC__
   } DUMMYUNIONNAME1;
 #else
@@ -1498,7 +1573,7 @@ typedef struct _devicemodeW {
   DWORD  dmPanningHeight;
 #endif
 #endif /* WINVER >= 0x0400 */
-} DEVMODEW,*LPDEVMODEW,*PDEVMODEW;
+} DEVMODEW,*LPDEVMODEW,*PDEVMODEW,*NPDEVMODEW;
 typedef struct tagDIBSECTION {
        BITMAP dsBm;
        BITMAPINFOHEADER dsBmih;
@@ -1580,7 +1655,7 @@ typedef struct tagEMRBITBLT {
 typedef struct tagLOGBRUSH {
        UINT lbStyle;
        COLORREF lbColor;
-       LONG lbHatch;
+       ULONG_PTR lbHatch;
 } LOGBRUSH,*PLOGBRUSH,*LPLOGBRUSH;
 typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN;
 typedef struct tagLOGBRUSH32 {
@@ -1630,7 +1705,7 @@ typedef struct tagEMRCREATECOLORSPACEW {
 typedef struct tagEMRCREATECOLORSPACE {
        EMR emr;
        DWORD ihCS;
-       LOGCOLORSPACEW lcs;
+       LOGCOLORSPACEA lcs;
 } EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
 typedef struct tagEMRCREATEDIBPATTERNBRUSHPT {
        EMR emr;
@@ -1710,7 +1785,7 @@ typedef struct tagPANOSE {
        BYTE bLetterform;
        BYTE bMidline;
        BYTE bXHeight;
-} PANOSE, *LPPANOSE;;
+} PANOSE, *LPPANOSE;
 typedef struct tagLOGFONTA {
        LONG    lfHeight;
        LONG    lfWidth;
@@ -1948,7 +2023,7 @@ typedef struct tagEMRPOLYLINE16 {
        EMR emr;
        RECTL rclBounds;
        DWORD cpts;
-       POINTL apts[1];
+       POINTS apts[1];
 } EMRPOLYLINE16,*PEMRPOLYLINE16,EMRPOLYBEZIER16,*PEMRPOLYBEZIER16,EMRPOLYGON16,*PEMRPOLYGON16,EMRPOLYBEZIERTO16,*PEMRPOLYBEZIERTO16,EMRPOLYLINETO16,*PEMRPOLYLINETO16;
 typedef struct tagEMRPOLYPOLYLINE {
        EMR emr;
@@ -2662,23 +2737,62 @@ typedef struct _ENUMTEXTMETRICW
 } ENUMTEXTMETRICW, *PENUMTEXTMETRICW, *LPENUMTEXTMETRICW;
 
 
+#if defined(STRICT)
+
+#if !defined(NOTEXTMETRIC)
+
+typedef int (CALLBACK *OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST TEXTMETRICA *, DWORD, LPARAM);
+typedef int (CALLBACK *OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST TEXTMETRICW *, DWORD, LPARAM);
+
+#else
+
+typedef int (CALLBACK* OLDFONTENUMPROCA)(CONST LOGFONTA *, CONST VOID *, DWORD, LPARAM);
+typedef int (CALLBACK* OLDFONTENUMPROCW)(CONST LOGFONTW *, CONST VOID *, DWORD, LPARAM);
+
+#endif
+
+#ifdef UNICODE
+#define OLDFONTENUMPROC OLDFONTENUMPROCW
+#else
+#define OLDFONTENUMPROC OLDFONTENUMPROCA
+#endif
 
-typedef BOOL (CALLBACK *ABORTPROC)(HDC,int);
-typedef int (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM);
-typedef int (CALLBACK *ENHMFENUMPROC)(HDC,HANDLETABLE*,ENHMETARECORD*,int,LPARAM);
-typedef int (CALLBACK *OLDFONTENUMPROCA)(ENUMLOGFONTEXA*,NEWTEXTMETRICEXA*,DWORD,LPARAM);
-typedef int (CALLBACK *OLDFONTENUMPROCW)(ENUMLOGFONTEXW*,NEWTEXTMETRICEXW*,DWORD,LPARAM);
 typedef OLDFONTENUMPROCA FONTENUMPROCA;
 typedef OLDFONTENUMPROCW FONTENUMPROCW;
+
+#ifdef UNICODE
+typedef FONTENUMPROCW FONTENUMPROC;
+#else
+typedef FONTENUMPROCA FONTENUMPROC;
+#endif
+
+typedef INT (CALLBACK *GOBJENUMPROC)(LPVOID, LPARAM);
+typedef VOID (CALLBACK *LINEDDAPROC)(INT, INT, LPARAM);
+
+#else // defined(STRICT)
+
+typedef FARPROC OLDFONTENUMPROC;
+typedef FARPROC FONTENUMPROCA;
+typedef FARPROC FONTENUMPROCW;
+
 #ifdef UNICODE
-#define OLDFONTENUMPROC  OLDFONTENUMPROCW
+typedef FONTENUMPROCW FONTENUMPROC;
 #else
-#define OLDFONTENUMPROC  OLDFONTENUMPROCA
+typedef FONTENUMPROCA FONTENUMPROC;
+#endif
+
+typedef FARPROC GOBJENUMPROC;
+typedef FARPROC LINEDDAPROC;
+
 #endif
+
+
+typedef BOOL (CALLBACK *ABORTPROC)(HDC,int);
+
+typedef int (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,int,LPARAM);
+typedef int (CALLBACK *ENHMFENUMPROC)(HDC,HANDLETABLE*,const ENHMETARECORD*,int,LPARAM);
 typedef int (CALLBACK *ICMENUMPROCA)(LPSTR,LPARAM);
 typedef int (CALLBACK *ICMENUMPROCW)(LPWSTR,LPARAM);
-typedef void (CALLBACK *GOBJENUMPROC)(LPVOID,LPARAM);
-typedef void (CALLBACK *LINEDDAPROC)(int,int,LPARAM);
 typedef UINT (CALLBACK *LPFNDEVMODE)(HWND,HMODULE,LPDEVMODEA,LPSTR,LPSTR,LPDEVMODEA,LPSTR,UINT);
 typedef DWORD (CALLBACK *LPFNDEVCAPS)(LPSTR,LPSTR,UINT,LPSTR,LPDEVMODEA);
 
@@ -2801,7 +2915,9 @@ int WINAPI FillRgn(HDC,HRGN,HBRUSH);
 BOOL WINAPI FixBrushOrgEx(HDC,int,int,LPPOINT);
 BOOL WINAPI FlattenPath(HDC);
 BOOL WINAPI FloodFill(HDC,int,int,COLORREF);
+BOOL WINAPI GdiAlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
 BOOL WINAPI GdiComment(HDC,UINT,const BYTE*);
+DEVMODEW* WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
 BOOL WINAPI GdiFlush(void);
 DWORD WINAPI GdiGetBatchLimit(void);
 DWORD WINAPI GdiSetBatchLimit(DWORD);
@@ -2860,6 +2976,7 @@ UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
 UINT WINAPI GetEnhMetaFilePixelFormat(HENHMETAFILE,UINT,PIXELFORMATDESCRIPTOR*);
 DWORD WINAPI GetFontData(HDC,DWORD,DWORD,PVOID,DWORD);
 DWORD WINAPI GetFontLanguageInfo(HDC);
+DWORD WINAPI GetFontUnicodeRanges(HDC,LPGLYPHSET);
 DWORD WINAPI GetGlyphIndicesA(HDC,LPCSTR,INT,LPWORD,DWORD);
 DWORD WINAPI GetGlyphIndicesW(HDC,LPCWSTR,INT,LPWORD,DWORD);
 DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
@@ -3079,7 +3196,6 @@ typedef DOCINFOW DOCINFO, *LPDOCINFO;
 typedef LOGFONTW LOGFONT,*PLOGFONT,*LPLOGFONT;
 typedef TEXTMETRICW TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
 #define ICMENUMPROC ICMENUMPROCW
-#define FONTENUMPROC FONTENUMPROCW
 typedef DEVMODEW DEVMODE,*PDEVMODE,*LPDEVMODE;
 typedef ENUMLOGFONTEXDVW ENUMLOGFONTEXDV;
 typedef PENUMLOGFONTEXDVW PENUMLOGFONTEXDV;
@@ -3161,7 +3277,6 @@ typedef DOCINFOA DOCINFO, *LPDOCINFO;
 typedef LOGFONTA LOGFONT,*PLOGFONT,*LPLOGFONT;
 typedef TEXTMETRICA TEXTMETRIC,*PTEXTMETRIC,*LPTEXTMETRIC;
 #define ICMENUMPROC ICMENUMPROCA
-#define FONTENUMPROC FONTENUMPROCA
 typedef DEVMODEA DEVMODE,*PDEVMODE,*LPDEVMODE;
 typedef ENUMLOGFONTEXDVA ENUMLOGFONTEXDV;
 typedef PENUMLOGFONTEXDVA PENUMLOGFONTEXDV;
@@ -3233,6 +3348,11 @@ typedef DISPLAY_DEVICEA DISPLAY_DEVICE, *PDISPLAY_DEVICE, *LPDISPLAY_DEVICE;
 #define wglUseFontOutlines wglUseFontOutlinesA
 #endif
 #endif
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
 #ifdef __cplusplus
 }
 #endif