#ifndef _WINGDI_H
#define _WINGDI_H
-#if __GNUC__ >= 3
-#pragma GCC system_header
-#endif
+#define _WINGDI_
#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
#define WINGDIAPI
+#define NTM_NONNEGATIVE_AC 0x00010000
+#define NTM_PS_OPENTYPE 0x00020000
+#define NTM_TT_OPENTYPE 0x00040000
+#define NTM_MULTIPLEMASTER 0x00080000
+#define NTM_TYPE1 0x00100000
+#define NTM_DSIG 0x00200000
+
#define AC_SRC_OVER 0
#define AC_SRC_ALPHA 1
#define BI_RGB 0
#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)
#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
#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
#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
#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
#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
#define PC_EXPLICIT 2
#define PC_NOCOLLAPSE 4
#define PC_RESERVED 1
-#define CLR_NONE 0xffffffff
-#define CLR_INVALID CLR_NONE
-#define CLR_DEFAULT 0xff000000
+#define CLR_INVALID 0xFFFFFFFF
#define PT_MOVETO 6
#define PT_LINETO 2
#define PT_BEZIERTO 4
#define DC_BRUSH 18
#define DC_PEN 19
#endif
+#if (_WIN32_WINNT >= 0x0500)
+#define STOCK_LAST 19
+#elif (WINVER >= 0x0400)
+#define STOCK_LAST 17
+#else
+#define STOCK_LAST 16
+#endif
#define SYSPAL_NOSTATIC 2
#define SYSPAL_STATIC 1
#define SYSPAL_ERROR 0
#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
#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
#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_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
#define WGL_SWAP_UNDERLAY14 0x20000000
#define WGL_SWAP_UNDERLAY15 0x40000000
#define AC_SRC_OVER 0
-#define LAYOUT_RTL 1
+#define LAYOUT_RTL 1 // Right to left
+#define LAYOUT_BTT 2 // Bottom to top
+#define LAYOUT_VBH 4 // Vertical before horizontal
+#define LAYOUT_ORIENTATIONMASK (LAYOUT_RTL | LAYOUT_BTT | LAYOUT_VBH)
#define LAYOUT_BITMAPORIENTATIONPRESERVED 8
#if (WINVER > 0x400)
#define CS_ENABLE 0x00000001
#define CS_DELETE_TRANSFORM 0x00000003
#endif
-#if(WINVER >= 0x0400)
-typedef struct tagEMRGLSRECORD
-{
- EMR emr;
- DWORD cbData;
- BYTE Data[1];
-} EMRGLSRECORD, *PEMRGLSRECORD;
-#endif
+
#if (WINVER > 0x500)
#define GRADIENT_FILL_RECT_H 0x00
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
#define DISPLAY_DEVICE_REMOVABLE 0x00000020
+#define DISPLAY_DEVICE_DISCONNECT 0x02000000
+#define DISPLAY_DEVICE_REMOTE 0x04000000
#define DISPLAY_DEVICE_MODESPRUNED 0x08000000
#ifndef RC_INVOKED
typedef struct _ABC {
int abcA;
UINT abcB;
int abcC;
-} ABC,*LPABC;
+} ABC, *PABC, *LPABC;
typedef struct _ABCFLOAT {
FLOAT abcfA;
FLOAT abcfB;
FLOAT abcfC;
-} ABCFLOAT,*LPABCFLOAT;
+} ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
typedef struct tagBITMAP {
LONG bmType;
LONG bmWidth;
DWORD fsUsb[4];
DWORD fsCsb[2];
} FONTSIGNATURE, *PFONTSIGNATURE,*LPFONTSIGNATURE;
-typedef struct {
+typedef struct tagCHARSETINFO {
UINT ciCharset;
UINT ciACP;
FONTSIGNATURE fs;
-} CHARSETINFO,*LPCHARSETINFO;
+} CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
typedef struct tagCOLORADJUSTMENT {
WORD caSize;
WORD caFlags;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
+#ifdef __WINESRC__
+ } DUMMYSTRUCTNAME1;
+#else
} DUMMYSTRUCTNAME;
- POINTL dmPosition;
- DWORD dmDisplayOrientation;
- DWORD dmDisplayFixedOutput;
+#endif
+ struct {
+ POINTL dmPosition;
+ DWORD dmDisplayOrientation;
+ DWORD dmDisplayFixedOutput;
+ } DUMMYSTRUCTNAME2;
+#ifdef __WINESRC__
+ } DUMMYUNIONNAME1;
+#else
} DUMMYUNIONNAME;
+#endif
short dmColor;
short dmDuplex;
short dmCopies;
short dmDefaultSource;
short dmPrintQuality;
+#ifdef __WINESRC__
+ } DUMMYSTRUCTNAME1;
+#else
} DUMMYSTRUCTNAME;
- POINTL dmPosition;
- DWORD dmDisplayOrientation;
- DWORD dmDisplayFixedOutput;
+#endif
+ struct {
+ POINTL dmPosition;
+ DWORD dmDisplayOrientation;
+ DWORD dmDisplayFixedOutput;
+ } DUMMYSTRUCTNAME2;
+#ifdef __WINESRC__
+ } DUMMYUNIONNAME1;
+#else
} DUMMYUNIONNAME;
+#endif
short dmColor;
short dmDuplex;
DWORD dmPanningHeight;
#endif
#endif /* WINVER >= 0x0400 */
-} DEVMODEW,*LPDEVMODEW,*PDEVMODEW;
+} DEVMODEW,*LPDEVMODEW,*PDEVMODEW,*NPDEVMODEW;
typedef struct tagDIBSECTION {
BITMAP dsBm;
BITMAPINFOHEADER dsBmih;
DWORD dsBitfields[3];
HANDLE dshSection;
DWORD dsOffset;
-} DIBSECTION;
+} DIBSECTION,*PDIBSECTION,*LPDIBSECTION;
typedef struct _DOCINFOA {
int cbSize;
LPCSTR lpszDocName;
DWORD iType;
DWORD nSize;
} EMR,*PEMR;
+
+#if(WINVER >= 0x0400)
+typedef struct tagEMRGLSRECORD {
+ EMR emr;
+ DWORD cbData;
+ BYTE Data[1];
+} EMRGLSRECORD, *PEMRGLSRECORD;
+typedef struct tagEMRGLSBOUNDEDRECORD {
+ EMR emr;
+ RECTL rclBounds;
+ DWORD cbData;
+ BYTE Data[1];
+} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
+#endif
typedef struct tagEMRANGLEARC {
EMR emr;
POINTL ptlCenter;
LONG ySrc;
XFORM xformSrc;
COLORREF crBkColorSrc;
- DWORD iUsageSrc;
+ DWORD iUsageSrc;
DWORD offBmiSrc;
+ DWORD cbBmiSrc;
DWORD offBitsSrc;
DWORD cbBitsSrc;
} EMRBITBLT,*PEMRBITBLT;
LONG lbHatch;
} LOGBRUSH,*PLOGBRUSH,*LPLOGBRUSH;
typedef LOGBRUSH PATTERN,*PPATTERN,*LPPATTERN;
+typedef struct tagLOGBRUSH32 {
+ UINT lbStyle;
+ COLORREF lbColor;
+ ULONG lbHatch;
+} LOGBRUSH32, *PLOGBRUSH32;
typedef struct tagEMRCREATEBRUSHINDIRECT {
EMR emr;
DWORD ihBrush;
DWORD lcsGammaBlue;
WCHAR lcsFilename[MAX_PATH];
} LOGCOLORSPACEW,*LPLOGCOLORSPACEW;
-typedef struct tagEMRCREATECOLORSPACE {
+typedef struct tagEMRCREATECOLORSPACEW {
EMR emr;
DWORD ihCS;
LOGCOLORSPACEW lcs;
+ DWORD dwFlags;
+ DWORD cbData;
+ BYTE Data[1];
+} EMRCREATECOLORSPACEW, *PEMRCREATECOLORSPACEW;
+typedef struct tagEMRCREATECOLORSPACE {
+ EMR emr;
+ DWORD ihCS;
+ LOGCOLORSPACEA lcs;
} EMRCREATECOLORSPACE,*PEMRCREATECOLORSPACE;
typedef struct tagEMRCREATEDIBPATTERNBRUSHPT {
EMR emr;
DWORD offBits;
DWORD cbBits;
} EMRCREATEMONOBRUSH,*PEMRCREATEMONOBRUSH;
+
+#ifndef _PALETTEENTRY_DEFINED
+#define _PALETTEENTRY_DEFINED
typedef struct tagPALETTEENTRY {
BYTE peRed;
BYTE peGreen;
BYTE peBlue;
BYTE peFlags;
} PALETTEENTRY,*LPPALETTEENTRY,*PPALETTEENTRY;
+#endif
+
+#ifndef _LOGPALETTE_DEFINED
+#define _LOGPALETTE_DEFINED
typedef struct tagLOGPALETTE {
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[1];
} LOGPALETTE,*NPLOGPALETTE,*PLOGPALETTE,*LPLOGPALETTE;
+#endif
+
typedef struct tagEMRCREATEPALETTE {
EMR emr;
DWORD ihPal;
BYTE bLetterform;
BYTE bMidline;
BYTE bXHeight;
-} PANOSE;
+} PANOSE, *LPPANOSE;
typedef struct tagLOGFONTA {
LONG lfHeight;
LONG lfWidth;
LONG elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
-} EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN;
+} EXTLOGPEN,*PEXTLOGPEN,*LPEXTLOGPEN,*NPEXTLOGPEN;
typedef struct tagEMREXTCREATEPEN {
EMR emr;
DWORD ihPen;
DWORD nVersion;
DWORD cbData;
DWORD offData;
-} EMRFORMAT;
+} EMRFORMAT, *PEMRFORMAT;
+
-typedef struct tagEMRPIXELFORMAT
-{
- EMR emr;
- PIXELFORMATDESCRIPTOR pfd;
-} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
typedef struct tagEMRSETCOLORSPACE
{
EMR emr;
DWORD ihCS;
-} EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
+} EMRSETCOLORSPACE, *PEMRSETCOLORSPACE, EMRSELECTCOLORSPACE, *PEMRSELECTCOLORSPACE,
EMRDELETECOLORSPACE, *PEMRDELETECOLORSPACE;
typedef struct tagEMRFRAMERGN {
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;
LONG yNum;
LONG yDenom;
} EMRSCALEVIEWPORTEXTEX,*PEMRSCALEVIEWPORTEXTEX,EMRSCALEWINDOWEXTEX,*PEMRSCALEWINDOWEXTEX;
-typedef struct tagEMRSELECTCOLORSPACE {
- EMR emr;
- DWORD ihCS;
-} EMRSELECTCOLORSPACE,*PEMRSELECTCOLORSPACE,EMRDELETECOLORSPACE,*PEMRDELETECOLORSPACE;
+
+
typedef struct tagEMRSELECTOBJECT {
EMR emr;
DWORD ihObject;
typedef struct tagEMRSELECTCLIPPATH {
EMR emr;
DWORD iMode;
-} EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH, EMRSETBKMODE,*PEMRSETBKMODE, EMRSETMAPMODE, *PEMRSETMAPMODE,
- EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, EMRSETROP2, *PEMRSETROP2, EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
- EMRSETICMMODE, *PEMRSETICMMODE, EMRSETTEXTALIGN,
+} EMRSELECTCLIPPATH,*PEMRSELECTCLIPPATH, EMRSETBKMODE,*PEMRSETBKMODE, EMRSETMAPMODE, *PEMRSETMAPMODE,
+ EMRSETPOLYFILLMODE, *PEMRSETPOLYFILLMODE, EMRSETROP2, *PEMRSETROP2, EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
+ EMRSETICMMODE, *PEMRSETICMMODE, EMRSETTEXTALIGN,
#if(WINVER >= 0x0500)
EMRSETLAYOUT, *PEMRSETLAYOUT,
-#endif
+#endif
*PEMRSETTEXTALIGN;
#include "pshpack2.h"
typedef struct tagHANDLETABLE {
HGDIOBJ objectHandle[1];
} HANDLETABLE,*PHANDLETABLE, *LPHANDLETABLE;
+
+#ifndef _TEXTMETRIC_DEFINED
+#define _TEXTMETRIC_DEFINED
typedef struct tagTEXTMETRICA {
LONG tmHeight;
LONG tmAscent;
BYTE tmPitchAndFamily;
BYTE tmCharSet;
} TEXTMETRICW,*PTEXTMETRICW,*LPTEXTMETRICW;
+#endif
+
typedef struct _RGNDATAHEADER {
DWORD dwSize;
DWORD iType;
DWORD nCount;
DWORD nRgnSize;
RECT rcBound;
-} RGNDATAHEADER;
+} RGNDATAHEADER, *PRGNDATAHEADER;
typedef struct _RGNDATA {
RGNDATAHEADER rdh;
char Buffer[1];
DWORD dwVisibleMask;
DWORD dwDamageMask;
} PIXELFORMATDESCRIPTOR,*PPIXELFORMATDESCRIPTOR,*LPPIXELFORMATDESCRIPTOR;
+
+typedef struct tagEMRPIXELFORMAT
+{
+ EMR emr;
+ PIXELFORMATDESCRIPTOR pfd;
+} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
+
typedef struct tagMETAFILEPICT {
LONG mm;
LONG xExt;
DWORD dvReserved;
DWORD dvNumAxes;
LONG dvValues[MM_MAX_NUMAXES];
-} DESIGNVECTOR, *PDESIGNVECTOR, FAR *LPDESIGNVECTOR;
+} DESIGNVECTOR, *PDESIGNVECTOR, *LPDESIGNVECTOR;
typedef struct tagENUMLOGFONTEXDVA
{
ENUMLOGFONTEXA elfEnumLogfontEx;
WCHAR DeviceID[128];
WCHAR DeviceKey[128];
} DISPLAY_DEVICEW, *PDISPLAY_DEVICEW, *LPDISPLAY_DEVICEW;
+#define MM_MAX_AXES_NAMELEN 16
+typedef struct _AXISINFOA
+{
+ LONG axMinValue;
+ LONG axMaxValue;
+ BYTE axAxisName[MM_MAX_AXES_NAMELEN];
+} AXISINFOA, *PAXISINFOA, *LPAXISINFOA;
+typedef struct _AXISINFOW
+{
+ LONG axMinValue;
+ LONG axMaxValue;
+ WCHAR axAxisName[MM_MAX_AXES_NAMELEN];
+} AXISINFOW, *PAXISINFOW, *LPAXISINFOW;
+typedef struct _AXESLISTA
+{
+ DWORD axlReserved;
+ DWORD axlNumAxes;
+ AXISINFOA axlAxisInfo[MM_MAX_NUMAXES];
+} AXESLISTA, *PAXESLISTA, *LPAXESLISTA;
+typedef struct _AXESLISTW
+{
+ DWORD axlReserved;
+ DWORD axlNumAxes;
+ AXISINFOW axlAxisInfo[MM_MAX_NUMAXES];
+} AXESLISTW, *PAXESLISTW, *LPAXESLISTW;
+typedef struct _ENUMTEXTMETRICA
+{
+ NEWTEXTMETRICEXA etmNewTextMetricEx;
+ AXESLISTA etmAxesList;
+} ENUMTEXTMETRICA, *PENUMTEXTMETRICA, *LPENUMTEXTMETRICA;
+typedef struct _ENUMTEXTMETRICW
+{
+ NEWTEXTMETRICEXW etmNewTextMetricEx;
+ AXESLISTW etmAxesList;
+} 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);
-#if (_WIN32_WINNT >= 0x0500)
-typedef struct _RGNDATAHEADER {
- DWORD dwSize;
- DWORD iType;
- DWORD nCount;
- DWORD nRgnSize;
- RECT rcBound;
-} RGNDATAHEADER, *PRGNDATAHEADER;
#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);
+#ifdef UNICODE
+#define OLDFONTENUMPROC OLDFONTENUMPROCW
+#else
+#define OLDFONTENUMPROC OLDFONTENUMPROCA
+#endif
+
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
+typedef FONTENUMPROCW FONTENUMPROC;
+#else
+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);
HFONT WINAPI CreateFontW(int,int,int,int,int,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
+HFONT WINAPI CreateFontIndirectExA(const ENUMLOGFONTEXDVA *);
+HFONT WINAPI CreateFontIndirectExW(const ENUMLOGFONTEXDVW *);
HPALETTE WINAPI CreateHalftonePalette(HDC);
HBRUSH WINAPI CreateHatchBrush(int,COLORREF);
HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
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*);
BOOL WINAPI GdiFlush(void);
DWORD WINAPI GdiGetBatchLimit(void);
BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
+BOOL WINAPI GetCharABCWidthsI(HDC,UINT,UINT,LPWORD,LPABC);
DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,int,int,LPGCP_RESULTSA,DWORD);
DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,int,int,LPGCP_RESULTSW,DWORD);
BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
HCURSOR WINAPI GetCursor(void);
BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
+#if (_WIN32_WINNT >= 0x0500)
+COLORREF WINAPI GetDCBrushColor(HDC);
+COLORREF WINAPI GetDCPenColor(HDC);
+#endif
int WINAPI GetDeviceCaps(HDC,int);
BOOL WINAPI GetDeviceGammaRamp(HDC,PVOID);
UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
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*);
DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,PVOID,const MAT2*);
int WINAPI GetGraphicsMode(HDC);
BOOL WINAPI SetICMProfileW(HDC,LPWSTR);
int WINAPI SetMapMode(HDC,int);
DWORD WINAPI SetMapperFlags(HDC,DWORD);
+#if (_WIN32_WINNT >= 0x0500)
+DWORD WINAPI SetLayout(HDC,DWORD);
+DWORD WINAPI GetLayout(HDC);
+#endif
HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE *);
int WINAPI SetMetaRgn(HDC);
BOOL WINAPI SetMiterLimit(HDC,FLOAT,PFLOAT);
#endif
#ifdef UNICODE
+typedef AXESLISTW AXESLIST;
+typedef PAXESLISTW PAXESLIST;
+typedef LPAXESLISTW LPAXESLIST;
+typedef AXISINFOA AXISINFO;
+typedef PAXISINFOA PAXISINFO;
+typedef LPAXISINFOA LPAXISINFO;
typedef WCHAR BCHAR;
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;
typedef LPENUMLOGFONTEXDVW LPENUMLOGFONTEXDV;
+typedef ENUMTEXTMETRICW ENUMTEXTMETRIC;
+typedef PENUMTEXTMETRICW PENUMTEXTMETRIC;
+typedef LPENUMTEXTMETRICW LPENUMTEXTMETRIC;
typedef EXTLOGFONTW EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
typedef GCP_RESULTSW GCP_RESULTS,*LPGCP_RESULTS;
typedef OUTLINETEXTMETRICW OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
#define CreateEnhMetaFile CreateEnhMetaFileW
#define CreateFont CreateFontW
#define CreateFontIndirect CreateFontIndirectW
+#define CreateFontIndirectEx CreateFontIndirectExW
#define CreateIC CreateICW
#define CreateMetaFile CreateMetaFileW
#define CreateScalableFontResource CreateScalableFontResourceW
#define wglUseFontBitmaps wglUseFontBitmapsW
#define wglUseFontOutlines wglUseFontOutlinesW
#else
+typedef AXESLISTA AXESLIST;
+typedef PAXESLISTA PAXESLIST;
+typedef LPAXESLISTA LPAXESLIST;
+typedef AXISINFOA AXISINFO;
+typedef PAXISINFOA PAXISINFO;
+typedef LPAXISINFOA LPAXISINFO;
typedef BYTE BCHAR;
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;
typedef LPENUMLOGFONTEXDVA LPENUMLOGFONTEXDV;
+typedef ENUMTEXTMETRICA ENUMTEXTMETRIC;
+typedef PENUMTEXTMETRICA PENUMTEXTMETRIC;
+typedef LPENUMTEXTMETRICA LPENUMTEXTMETRIC;
typedef EXTLOGFONTA EXTLOGFONT,*PEXTLOGFONT,*LPEXTLOGFONT;
typedef GCP_RESULTSA GCP_RESULTS,*LPGCP_RESULTS;
typedef OUTLINETEXTMETRICA OUTLINETEXTMETRIC,*POUTLINETEXTMETRIC,*LPOUTLINETEXTMETRIC;
#define CreateEnhMetaFile CreateEnhMetaFileA
#define CreateFont CreateFontA
#define CreateFontIndirect CreateFontIndirectA
+#define CreateFontIndirectEx CreateFontIndirectExA
#define CreateIC CreateICA
#define CreateMetaFile CreateMetaFileA
#define CreateScalableFontResource CreateScalableFontResourceA
#define wglUseFontOutlines wglUseFontOutlinesA
#endif
#endif
+
+#ifdef _MSC_VER
+#pragma warning(pop)
+#endif
+
#ifdef __cplusplus
}
#endif