+/*
+ * Copyright (C) the Wine project
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+ */
+
#ifndef _WINGDI_
#define _WINGDI_
#ifndef NOGDI
extern "C" {
#endif
+#ifdef _GDI32_
+#define WINGDIAPI
+#else
+#define WINGDIAPI DECLSPEC_IMPORT
+#endif
+
typedef struct _ABCFLOAT {
FLOAT abcfA;
FLOAT abcfB;
#define PFD_SWAP_COPY 0x00000400
#define PFD_SWAP_LAYER_BUFFERS 0x00000800
#define PFD_GENERIC_ACCELERATED 0x00001000
+#define PFD_SUPPORT_COMPOSITION 0x00008000 /* Vista stuff */
#define PFD_DEPTH_DONTCARE 0x20000000
#define PFD_DOUBLEBUFFER_DONTCARE 0x40000000
#define ILLUMINANT_MAX_INDEX ILLUMINANT_F2
#define ILLUMINANT_TUNGSTEN ILLUMINANT_A
-#define ILLUMINANT_DAYLIGHT ILLUMINANT_C
+#define ILLUMINANT_DAYLIGHT ILLUMINANT_C
#define ILLUMINANT_FLUORESCENT ILLUMINANT_F2
#define ILLUMINANT_NTSC ILLUMINANT_C
#define DC_PRINTRATEPPM 31
#define DC_COLORDEVICE 32
#define DC_NUP 33
+#define DC_MEDIATYPENAMES 34
+#define DC_MEDIATYPES 35
#define DCTT_BITMAP 0x00000001L
#define DCTT_DOWNLOAD 0x00000002L
#define R2_MERGEPEN 15
#define R2_WHITE 16
+#define MAKEROP4(fore,back) (DWORD)((((back)<<8)&0xFF000000)|(fore))
+
#define SRCCOPY 0xcc0020
#define SRCPAINT 0xee0086
#define SRCAND 0x8800c6
#define WHITEONBLACK 2
#define COLORONCOLOR 3
#define HALFTONE 4
-#define MAXSTRETCHBLTMODE 4
+#define MAXSTRETCHBLTMODE 4
#define STRETCH_ANDSCANS BLACKONWHITE
#define STRETCH_ORSCANS WHITEONBLACK
/* Colors */
-#define RGB(r,g,b) ((COLORREF)((r) | ((g) << 8) | ((b) << 16)))
+#define RGB(r,g,b) ((COLORREF)((BYTE)(r) | ((BYTE)(g) << 8) | ((BYTE)(b) << 16)))
#define PALETTERGB(r,g,b) (0x02000000 | RGB(r,g,b))
#define PALETTEINDEX(i) ((COLORREF)(0x01000000 | (WORD)(i)))
-#define GetRValue(rgb) ((rgb) & 0xff)
-#define GetGValue(rgb) (((rgb) >> 8) & 0xff)
-#define GetBValue(rgb) (((rgb) >> 16) & 0xff)
+#define GetRValue(rgb) ((BYTE) (rgb) )
+#define GetGValue(rgb) ((BYTE) ((rgb) >> 8))
+#define GetBValue(rgb) ((BYTE) ((rgb) >> 16))
#define GetKValue(cmyk) ((BYTE) (cmyk) )
-#define GetYValue(cmyk) ((BYTE) ((cymk) >> 8))
-#define GetMValue(cmyk) ((BYTE) ((cymk) >> 16))
-#define GetCValue(cmyk) ((BYTE) ((cymk) >> 24))
+#define GetYValue(cmyk) ((BYTE) ((cmyk) >> 8))
+#define GetMValue(cmyk) ((BYTE) ((cmyk) >> 16))
+#define GetCValue(cmyk) ((BYTE) ((cmyk) >> 24))
+
+#define CMYK(c,m,y,k) ((COLORREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
-#define CMYK(c,m,y,k) ((COLOREF)((((BYTE)(k)|((WORD)((BYTE)(y))<<8))|(((DWORD)(BYTE)(m))<<16))|(((DWORD)(BYTE)(c))<<24)))
+/* ICM stuff */
+typedef INT (CALLBACK *ICMENUMPROCA)(LPSTR lpszFilename,LPARAM lParam);
+typedef INT (CALLBACK *ICMENUMPROCW)(LPWSTR lpszFilename,LPARAM lParam);
+DECL_WINELIB_TYPE_AW(ICMENUMPROC)
#define ICM_OFF 1
/* Brushes */
typedef struct
-{
- UINT lbStyle;
+{
+ UINT lbStyle;
COLORREF lbColor;
- INT lbHatch;
+ ULONG_PTR lbHatch;
} LOGBRUSH, *PLOGBRUSH, *LPLOGBRUSH;
+typedef struct
+{
+ UINT lbStyle;
+ COLORREF lbColor;
+ ULONG lbHatch;
+} LOGBRUSH32, *PLOGBRUSH32, *LPLOGBRUSH32;
+
typedef LOGBRUSH PATTERN, *PPATTERN, *LPPATTERN;
#define DEVICE_FONTTYPE 0x0002
#define TRUETYPE_FONTTYPE 0x0004
-typedef struct
+typedef struct tagLOGFONTA
{
LONG lfHeight;
LONG lfWidth;
CHAR lfFaceName[LF_FACESIZE];
} LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
-typedef struct
+typedef struct tagLOGFONTW
{
LONG lfHeight;
LONG lfWidth;
* for which the font provides glyphs.
*
* fsCsb 64-bit bitmap. The low 32 bits map the Windows codepages for
- * which the font provides glyphs. The high 32 bits are for
+ * which the font provides glyphs. The high 32 bits are for
* non Windows codepages.
*/
typedef struct
DWORD fsCsb[2];
} FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
-typedef struct
+typedef struct
{
UINT ciCharset; /* character set */
UINT ciACP; /* ANSI code page */
DWORD lsUsb[4];
DWORD lsCsbDefault[2];
DWORD lsCsbSupported[2];
-} LOCALESIGNATURE, *PLOCALESIGNATUR, *LPLOCALESIGNATUREE;
+} LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE;
/* Flags for ModifyWorldTransform */
#define MWT_LEFTMULTIPLY 2
#define MWT_RIGHTMULTIPLY 3
#define MWT_MIN MWT_IDENTITY
-#define MWT_MAX MWT_RIGHTMULTIPLY
+#define MWT_MAX MWT_RIGHTMULTIPLY
/* Object Definitions for EnumObjects() */
#define OBJ_PEN 1
#define OBJ_EXTPEN 11
#define OBJ_ENHMETADC 12
#define OBJ_ENHMETAFILE 13
+#define OBJ_COLORSPACE 14
-typedef struct
+typedef struct tagXFORM
{
FLOAT eM11;
FLOAT eM12;
#define HEBREW_CHARSET (BYTE)177 /* CP1255, -iso8859-8 */
#define ARABIC_CHARSET (BYTE)178 /* CP1256, -iso8859-6 */
#define BALTIC_CHARSET (BYTE)186 /* CP1257, -iso8859-13 */
+#define VIETNAMESE_CHARSET (BYTE)163 /* CP1258 */
#define RUSSIAN_CHARSET (BYTE)204 /* CP1251, -iso8859-5 */
#define EE_CHARSET (BYTE)238 /* CP1250, -iso8859-2 */
#define EASTEUROPE_CHARSET EE_CHARSET
#define FF_SCRIPT 0x40
#define FF_DECORATIVE 0x50
-typedef struct
+#ifndef _TEXTMETRIC_DEFINED
+#define _TEXTMETRIC_DEFINED
+
+typedef struct tagTEXTMETRICA
{
LONG tmHeight;
LONG tmAscent;
BYTE tmCharSet;
} TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
-typedef struct
+typedef struct tagTEXTMETRICW
{
LONG tmHeight;
LONG tmAscent;
DECL_WINELIB_TYPE_AW(TEXTMETRIC)
DECL_WINELIB_TYPE_AW(PTEXTMETRIC)
DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
+#endif /* _TEXTMETRIC_DEFINED */
typedef struct tagPANOSE
#define PANOSE_COUNT 10
-#define PANOSE_FAMILYTYPE_INDEX 0
+#define PAN_FAMILYTYPE_INDEX 0
#define PAN_SERIFSTYLE_INDEX 1
#define PAN_WEIGTH_INDEX 2
#define PAN_PROPORTION_INDEX 3
#define NTM_BOLD 0x00000020L
#define NTM_ITALIC 0x00000001L
+#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
+
+
typedef struct
{
LONG tmHeight;
{
NEWTEXTMETRICA ntmTm;
FONTSIGNATURE ntmFontSig;
-} NEWTEXTMETRICEXA,*LPNEWTEXTMETRICEXA;
+} NEWTEXTMETRICEXA;
typedef struct
{
NEWTEXTMETRICW ntmTm;
FONTSIGNATURE ntmFontSig;
-} NEWTEXTMETRICEXW,*LPNEWTEXTMETRICEXW;
+} NEWTEXTMETRICEXW;
DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
-DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
-typedef int CALLBACK (*OLDFONTENUMPROCA)(const LOGFONTA*,const TEXTMETRICA*,
- DWORD,LPARAM);
-typedef int CALLBACK (*OLDFONTENUMPROCW)(const LOGFONTW*,const TEXTMETRICW*,
- DWORD,LPARAM);
+#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 /* !defined(NOTEXTMETRIC) */
+typedef int (CALLBACK *OLDFONTENUMPROCA)(const LOGFONTA *, const VOID *, DWORD, LPARAM);
+typedef int (CALLBACK *OLDFONTENUMPROCW)(const LOGFONTW *, const VOID *, DWORD, LPARAM);
+#endif /* !defined(NOTEXTMETRIC) */
DECL_WINELIB_TYPE_AW(OLDFONTENUMPROC)
typedef OLDFONTENUMPROCA FONTENUMPROCA;
typedef OLDFONTENUMPROCW FONTENUMPROCW;
DECL_WINELIB_TYPE_AW(FONTENUMPROC)
-typedef int CALLBACK (*FONTENUMPROCEXA)(LPENUMLOGFONTEXA,LPNEWTEXTMETRICEXA,DWORD,LPARAM);
-typedef int CALLBACK (*FONTENUMPROCEXW)(LPENUMLOGFONTEXW,LPNEWTEXTMETRICEXW,DWORD,LPARAM);
-DECL_WINELIB_TYPE_AW(FONTENUMPROCEX)
+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;
+DECL_WINELIB_TYPE_AW(FONTENUMPROC)
+
+typedef FARPROC GOBJENUMPROC;
+typedef FARPROC LINEDDAPROC;
-typedef INT CALLBACK (*GOBJENUMPROC)(LPVOID,LPARAM);
-typedef VOID CALLBACK (*LINEDDAPROC)(INT,INT,LPARAM);
+#endif /* defined(STRICT) */
/* tmPitchAndFamily bits */
#define TMPF_FIXED_PITCH 1 /* means variable pitch */
#define ETO_CLIPPED 0x0004
#define ETO_GLYPH_INDEX 0x0010
#define ETO_RTLREADING 0x0080
+#define ETO_NUMERICSLOCAL 0x0400
+#define ETO_NUMERICSLATIN 0x0800
#define ETO_IGNORELANGUAGE 0x1000
+#define ETO_PDY 0x2000
#define ASPECT_FILTERING 0x0001
+ /* for GetGlyphIndices() */
+#define GGI_MARK_NONEXISTING_GLYPHS 0x0001
+
typedef struct
{
UINT gmBlackBoxX;
#define GGO_METRICS 0
#define GGO_BITMAP 1
#define GGO_NATIVE 2
+#define GGO_BEZIER 3
#define GGO_GRAY2_BITMAP 4
#define GGO_GRAY4_BITMAP 5
#define GGO_GRAY8_BITMAP 6
#define GGO_GLYPH_INDEX 0x80
-
+
+#ifdef __WINESRC__
+#define WINE_GGO_GRAY16_BITMAP 0x7f
+#endif
+
typedef struct
{
WORD fract;
UINT *lpOrder;
INT *lpDx;
INT *lpCaretPos;
- LPWSTR lpClass;
+ LPSTR lpClass;
LPWSTR lpGlyphs;
UINT nGlyphs;
UINT nMaxFit;
#define TT_AVAILABLE 0x0001
#define TT_ENABLED 0x0002
+#ifdef __WINESRC__
+#define WINE_TT_HINTER_ENABLED 0x8000
+#endif
+
#define TT_PRIM_LINE 1
#define TT_PRIM_QSPLINE 2
-#define TT_POLYGON_TYPE 24
+#define TT_PRIM_CSPLINE 3
+#define TT_POLYGON_TYPE 24
+
+ /* OpenGL defines */
+typedef struct {
+ FLOAT x;
+ FLOAT y;
+} POINTFLOAT, *PPOINTFLOAT;
+
+typedef struct {
+ FLOAT gmfBlackBoxX;
+ FLOAT gmfBlackBoxY;
+ POINTFLOAT gmfptGlyphOrigin;
+ FLOAT gmfCellIncX;
+ FLOAT gmfCellIncY;
+} GLYPHMETRICSFLOAT, *PGLYPHMETRICSFLOAT, *LPGLYPHMETRICSFLOAT;
+
+typedef struct {
+ WORD nSize;
+ WORD nVersion;
+ DWORD dwFlags;
+ BYTE iPixelType;
+ BYTE cColorBits;
+ BYTE cRedBits;
+ BYTE cRedShift;
+ BYTE cGreenBits;
+ BYTE cGreenShift;
+ BYTE cBlueBits;
+ BYTE cBlueShift;
+ BYTE cAlphaBits;
+ BYTE cAlphaShift;
+ BYTE cAccumBits;
+ BYTE cAccumRedBits;
+ BYTE cAccumGreenBits;
+ BYTE cAccumBlueBits;
+ BYTE cAccumAlphaBits;
+ BYTE cDepthBits;
+ BYTE cStencilBits;
+ BYTE cAuxBuffers;
+ BYTE iLayerPlane;
+ BYTE bReserved;
+ COLORREF crTransparent;
+} LAYERPLANEDESCRIPTOR, *PLAYERPLANEDESCRIPTOR, *LPLAYERPLANEDESCRIPTOR;
/* Get/SetSystemPaletteUse() values */
-#define SYSPAL_ERROR 0
-#define SYSPAL_STATIC 1
-#define SYSPAL_NOSTATIC 2
-
+#define SYSPAL_ERROR 0
+#define SYSPAL_STATIC 1
+#define SYSPAL_NOSTATIC 2
+#define SYSPAL_NOSTATIC256 3
+
+#ifndef _PALETTEENTRY_DEFINED
+#define _PALETTEENTRY_DEFINED
typedef struct tagPALETTEENTRY
{
BYTE peRed, peGreen, peBlue, peFlags;
} PALETTEENTRY, *PPALETTEENTRY, *LPPALETTEENTRY;
+#endif
/* Logical palette entry flags */
#define PC_RESERVED 0x01
#define PC_EXPLICIT 0x02
#define PC_NOCOLLAPSE 0x04
+#ifndef _LOGPALETTE_DEFINED
+#define _LOGPALETTE_DEFINED
typedef struct tagLOGPALETTE
-{
+{
WORD palVersion;
WORD palNumEntries;
PALETTEENTRY palPalEntry[1];
} LOGPALETTE, *PLOGPALETTE, *LPLOGPALETTE, *NPLOGPALETTE;
+#endif
/* Pens */
typedef struct
{
- UINT lopnStyle;
+ UINT lopnStyle;
POINT lopnWidth;
COLORREF lopnColor;
} LOGPEN, *LPLOGPEN;
DWORD elpWidth;
UINT elpBrushStyle;
COLORREF elpColor;
- LONG elpHatch;
+ ULONG_PTR elpHatch;
DWORD elpNumEntries;
DWORD elpStyleEntry[1];
} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
#define RGN_COPY 5
#define RGN_MIN RGN_AND
#define RGN_MAX RGN_COPY
+
+#define SYSRGN 4
+
/* Device contexts */
/* Polygon modes */
#define VREFRESH 116
#define DESKTOPVERTRES 117
#define DESKTOPHORZRES 118
-#define BTLALIGNMENT 119
+#define BLTALIGNMENT 119
+#define SHADEBLENDCAPS 120
+#define COLORMGMTCAPS 121
/* TECHNOLOGY */
#define DT_PLOTTER 0
#define RC_DEVBITS 0x8000
/* CAPS1 */
-
#define C1_TRANSPARENT 0x0001
#define TC_TT_ABLE 0x0002
#define C1_TT_CR_ANY 0x0004
#define C1_CMYK_ABLE 0x1000
#define C1_SLOW_CARD 0x2000
+/* SHADEBLENDCAPS */
+#define SB_NONE 0x0000
+#define SB_CONST_ALPHA 0x0001
+#define SB_PIXEL_ALPHA 0x0002
+#define SB_PREMULT_ALPHA 0x0004
+#define SB_GRAD_RECT 0x0010
+#define SB_GRAD_TRI 0x0020
+
/* Device-independent bitmaps */
typedef struct {
BYTE rgbtRed;
} RGBTRIPLE;
-#include "pshpack2.h"
+#include <pshpack2.h>
typedef struct
{
WORD bfType;
WORD bfReserved2;
DWORD bfOffBits;
} BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
-#include "poppack.h"
+#include <poppack.h>
#define MAKEPOINTS(l) (*((POINTS *)&(l)))
LONG bV4Height;
WORD bV4Planes;
WORD bV4BitCount;
- DWORD bV4Compression;
+ DWORD bV4V4Compression;
DWORD bV4SizeImage;
LONG bV4XPelsPerMeter;
LONG bV4YPelsPerMeter;
DWORD bV4BlueMask;
DWORD bV4AlphaMask;
DWORD bV4CSType;
- CIEXYZTRIPLE bV4EndPoints;
+ CIEXYZTRIPLE bV4Endpoints;
DWORD bV4GammaRed;
DWORD bV4GammaGreen;
DWORD bV4GammaBlue;
DWORD bV5Reserved;
} BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
-#define PROFILE_LINKED 'LINK'
-#define PROFILE_EMBEDDED 'MBED'
+#define PROFILE_LINKED 0x4c494e4b /* 'LINK' */
+#define PROFILE_EMBEDDED 0x4d424544 /* 'MBED' */
/* biCompression */
#define BI_RLE4 2
#define BI_BITFIELDS 3
-typedef struct {
- BITMAPINFOHEADER bmiHeader;
- RGBQUAD bmiColors[1];
+typedef struct tagBITMAPINFO
+{
+ BITMAPINFOHEADER bmiHeader;
+ RGBQUAD bmiColors[1];
} BITMAPINFO, *PBITMAPINFO, *LPBITMAPINFO;
typedef struct
#define DIB_PAL_COLORS 1
#define CBM_INIT 4
-typedef struct
+typedef struct
{
BITMAP dsBm;
BITMAPINFOHEADER dsBmih;
#define DEFAULT_PALETTE 15
#define SYSTEM_FIXED_FONT 16
#define DEFAULT_GUI_FONT 17
+#define DC_BRUSH 18
+#define DC_PEN 19
-#define STOCK_LAST 17
+#define STOCK_LAST 19
#define CLR_INVALID 0xffffffff
/* Metafile header structure */
-#include "pshpack2.h"
+#include <pshpack2.h>
typedef struct
{
WORD mtType;
DWORD mtMaxRecord;
WORD mtNoParameters;
} METAHEADER, *PMETAHEADER, *LPMETAHEADER;
-#include "poppack.h"
+#include <poppack.h>
/* Metafile typical record structure */
typedef struct
#define META_CREATEREGION 0x06FF
#define META_UNKNOWN 0x0529 /* FIXME: unknown meta magic */
-typedef INT CALLBACK (*MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
+typedef INT (CALLBACK *MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
INT,LPARAM);
/* enhanced metafile structures and functions */
/* note that ENHMETAHEADER is just a particular kind of ENHMETARECORD,
ie. the header is just the first record in the metafile */
typedef struct {
- DWORD iType;
- DWORD nSize;
- RECTL rclBounds;
- RECTL rclFrame;
- DWORD dSignature;
- DWORD nVersion;
- DWORD nBytes;
- DWORD nRecords;
- WORD nHandles;
- WORD sReserved;
- DWORD nDescription;
- DWORD offDescription;
- DWORD nPalEntries;
- SIZEL szlDevice;
+ DWORD iType;
+ DWORD nSize;
+ RECTL rclBounds;
+ RECTL rclFrame;
+ DWORD dSignature;
+ DWORD nVersion;
+ DWORD nBytes;
+ DWORD nRecords;
+ WORD nHandles;
+ WORD sReserved;
+ DWORD nDescription;
+ DWORD offDescription;
+ DWORD nPalEntries;
+ SIZEL szlDevice;
SIZEL szlMillimeters;
-
- /* Fields for winver >= win95 */
DWORD cbPixelFormat;
DWORD offPixelFormat;
DWORD bOpenGL;
-
- /* Fields for winver >= win98 */
SIZEL szlMicrometers;
-
-} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
+} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER;
typedef struct {
- DWORD iType;
- DWORD nSize;
- DWORD dParm[1];
-} ENHMETARECORD, *LPENHMETARECORD;
+ DWORD iType;
+ DWORD nSize;
+ DWORD dParm[1];
+} ENHMETARECORD, *LPENHMETARECORD;
typedef struct {
DWORD iType;
} EMRBITBLT, *PEMRBITBLT;
typedef struct {
- EMR emr;
- DWORD ihBrush;
- LOGBRUSH lb;
+ EMR emr;
+ DWORD ihBrush;
+ LOGBRUSH32 lb;
} EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
typedef struct {
} EMRFILLRGN, *PEMRFILLRGN;
typedef struct {
- DWORD signature;
+ DWORD dSignature;
DWORD nVersion;
DWORD cbData;
DWORD offData;
typedef struct {
EMR emr;
RECTL rclBounds;
- POINTL aptlDst[3];
+ POINTL aptlDest[3];
LONG xSrc;
LONG ySrc;
LONG cxSrc;
DWORD iUsageMask;
DWORD offBmiMask;
DWORD cbBmiMask;
- DWORD offBitsMask;
+ DWORD offBitsMask;
DWORD cbBitsMask;
} EMRPLGBLT, *PEMRPLGBLT;
EMRPOLYBEZIERTO, *PEMRPOLYBEZIERTO,
EMRPOLYLINETO, *PEMRPOLYLINETO;
+typedef struct {
+ EMR emr;
+ RECTL rclBounds;
+ DWORD cpts;
+ POINTS apts[1];
+} EMRPOLYLINE16, *PEMRPOLYLINE16,
+ EMRPOLYBEZIER16, *PEMRPOLYBEZIER16,
+ EMRPOLYGON16, *PEMRPOLYGON16,
+ EMRPOLYBEZIERTO16, *PEMRPOLYBEZIERTO16,
+ EMRPOLYLINETO16, *PEMRPOLYLINETO16;
+
+typedef struct {
+ EMR emr;
+ RECTL rclBounds;
+ DWORD cpts;
+ POINTS apts[1];
+ BYTE abTypes[1];
+} EMRPOLYDRAW16, *PEMRPOLYDRAW16;
+
+typedef struct {
+ EMR emr;
+ RECTL rclBounds;
+ DWORD nPolys;
+ DWORD cpts;
+ DWORD aPolyCounts[1];
+ POINTS apts[1];
+} EMRPOLYPOLYLINE16, *PEMRPOLYPOLYLINE16,
+ EMRPOLYPOLYGON16, *PEMRPOLYPOLYGON16;
+
typedef struct {
EMR emr;
RECTL rclBounds;
DWORD cptl;
POINTL aptl[1];
BYTE abTypes[1];
-} EMRPOLYDRAW, *PEMRPOLYDRAW;
+} EMRPOLYDRAW, *PEMRPOLYDRAW;
typedef struct {
EMR emr;
EMRSETROP2, *PEMRSETROP2,
EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
EMRSETTEXTALIGN, *PEMRSETTEXTALIGN,
- EMRSETICMMODE, *PERMSETICMMODE,
+ EMRSETICMMODE, *PEMRSETICMMODE,
EMRSETLAYOUT, *PEMRSETLAYOUT;
typedef struct {
DWORD iUsageSrc;
DWORD iStartScan;
DWORD cScans;
-} EMRSETDIBITSTODEIVCE, *PEMRSETDIBITSTODEVICE;
+} EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
typedef struct {
EMR emr;
LONG cySrc;
} EMRSTRETCHBLT, *PEMRSTRETCHBLT;
+typedef struct {
+ EMR emr;
+ RECTL rclBounds;
+ LONG xDest;
+ LONG yDest;
+ LONG cxDest;
+ LONG cyDest;
+ DWORD dwRop;
+ LONG xSrc;
+ LONG ySrc;
+ XFORM xformSrc;
+ COLORREF crBkColorSrc;
+ DWORD iUsageSrc;
+ DWORD offBmiSrc;
+ DWORD cbBmiSrc;
+ DWORD offBitsSrc;
+ DWORD cbBitsSrc;
+ LONG cxSrc;
+ LONG cySrc;
+} EMRALPHABLEND, *PEMRALPHABLEND;
+
typedef struct {
EMR emr;
RECTL rclBounds;
} EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
typedef struct {
- EMR emr;
- PIXELFORMATDESCRIPTOR pfd;
+ EMR emr;
+ PIXELFORMATDESCRIPTOR pfd;
} EMRPIXELFORMAT, *PEMRPIXELFORMAT;
typedef struct tagEMRGLSRECORD {
RECTL rclBounds;
DWORD cbData;
BYTE Data[1];
-} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
+} EMRGLSBOUNDEDRECORD, *PEMRGLSBOUNDEDRECORD;
-typedef INT CALLBACK (*ENHMFENUMPROC)(HDC, LPHANDLETABLE,
- LPENHMETARECORD, INT, LPVOID);
+typedef INT (CALLBACK *ENHMFENUMPROC)(HDC, HANDLETABLE *,
+ const ENHMETARECORD *, INT, LPARAM);
#define EMR_HEADER 1
#define EMR_POLYBEZIER 2
#define EMR_GLSRECORD 102
#define EMR_GLSBOUNDEDRECORD 103
#define EMR_PIXELFORMAT 104
+#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_SETLAYOUT 115
+#define EMR_TRANSPARENTBLT 116
+#define EMR_RESERVED_117 117
+#define EMR_GRADIENTFILL 118
+#define EMR_SETLINKEDUFI 119
+#define EMR_SETTEXTJUSTIFICATION 120
+#define EMR_COLORMATCHTOTARGETW 121
+#define EMR_CREATECOLORSPACEW 122
#define EMR_MIN 1
-#define EMR_MAX 104
+#define EMR_MAX 122
#define ENHMETA_SIGNATURE 1179469088
#define ENHMETA_STOCK_OBJECT 0x80000000
-#define GDICPMMENT_INDENTIFIER 0x43494447
-#define GDICOMMENT_WINDOWS_METAFILE 0x80000000
-#define GDICOMMENT_BEGINGROUP 0x80000001
-#define GDICOMMENT_ENDGROUP 0x80000002
-#define GDICOMMENT_MULTIFORMATS 0x80000003
+#define GDICOMMENT_IDENTIFIER 0x43494447
+#define GDICOMMENT_WINDOWS_METAFILE 0x80000001
+#define GDICOMMENT_BEGINGROUP 0x00000002
+#define GDICOMMENT_ENDGROUP 0x00000003
+#define GDICOMMENT_MULTIFORMATS 0x40000004
+#define GDICOMMENT_UNICODE_STRING 0x00000040
+#define GDICOMMENT_UNICODE_END 0x00000080
#define EPS_SIGNATURE 0x46535045
#define CCHDEVICENAME 32
DWORD dmFields;
union {
struct {
- SHORT dmOrientation;
- SHORT dmPaperSize;
- SHORT dmPaperLength;
- SHORT dmPaperWidth;
+ short dmOrientation;
+ short dmPaperSize;
+ short dmPaperLength;
+ short dmPaperWidth;
+ short dmScale;
+ short dmCopies;
+ short dmDefaultSource;
+ short dmPrintQuality;
} DUMMYSTRUCTNAME1;
- POINTL dmPosition;
+ struct {
+ POINTL dmPosition;
+ DWORD dmDisplayOrientation;
+ DWORD dmDisplayFixedOutput;
+ } DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
- SHORT dmScale;
- SHORT dmCopies;
- SHORT dmDefaultSource;
- SHORT dmPrintQuality;
- SHORT dmColor;
- SHORT dmDuplex;
- SHORT dmYResolution;
- SHORT dmTTOption;
- SHORT dmCollate;
+ short dmColor;
+ short dmDuplex;
+ short dmYResolution;
+ short dmTTOption;
+ short dmCollate;
BYTE dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
- DWORD dmDisplayFlags;
+ union {
+ DWORD dmDisplayFlags;
+ DWORD dmNup;
+ } DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
DWORD dmFields;
union {
struct {
- SHORT dmOrientation;
- SHORT dmPaperSize;
- SHORT dmPaperLength;
- SHORT dmPaperWidth;
+ short dmOrientation;
+ short dmPaperSize;
+ short dmPaperLength;
+ short dmPaperWidth;
+ short dmScale;
+ short dmCopies;
+ short dmDefaultSource;
+ short dmPrintQuality;
} DUMMYSTRUCTNAME1;
- POINTL dmPosition;
+ struct {
+ POINTL dmPosition;
+ DWORD dmDisplayOrientation;
+ DWORD dmDisplayFixedOutput;
+ } DUMMYSTRUCTNAME2;
} DUMMYUNIONNAME1;
- SHORT dmScale;
- SHORT dmCopies;
- SHORT dmDefaultSource;
- SHORT dmPrintQuality;
- SHORT dmColor;
- SHORT dmDuplex;
- SHORT dmYResolution;
- SHORT dmTTOption;
- SHORT dmCollate;
+ short dmColor;
+ short dmDuplex;
+ short dmYResolution;
+ short dmTTOption;
+ short dmCollate;
WCHAR dmFormName[CCHFORMNAME];
WORD dmLogPixels;
DWORD dmBitsPerPel;
DWORD dmPelsWidth;
DWORD dmPelsHeight;
- DWORD dmDisplayFlags;
+ union {
+ DWORD dmDisplayFlags;
+ DWORD dmNup;
+ } DUMMYUNIONNAME2;
DWORD dmDisplayFrequency;
DWORD dmICMMethod;
DWORD dmICMIntent;
#define DMDITHER_GRAYSCALE 5
#define DMDITHER_USER 256
-typedef struct
+typedef struct
{
INT cbSize;
LPCSTR lpszDocName;
DWORD fwType;
} DOCINFOA, *LPDOCINFOA;
-typedef struct
+typedef struct
{
INT cbSize;
LPCWSTR lpszDocName;
char Buffer[1];
} RGNDATA,*PRGNDATA,*LPRGNDATA;
-typedef BOOL CALLBACK (*ABORTPROC)(HDC, INT);
+typedef BOOL (CALLBACK *ABORTPROC)(HDC, INT);
typedef struct {
DWORD cb;
DWORD StateFlags;
CHAR DeviceID[128];
CHAR DeviceKey[128];
-} DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
+} DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
typedef struct {
DWORD cb;
DWORD StateFlags;
WCHAR DeviceID[128];
WCHAR DeviceKey[128];
-} DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
+} DISPLAY_DEVICEW,*PDISPLAY_DEVICEW,*LPDISPLAY_DEVICEW;
DECL_WINELIB_TYPE_AW(DISPLAY_DEVICE)
DECL_WINELIB_TYPE_AW(PDISPLAY_DEVICE)
DECL_WINELIB_TYPE_AW(LPDISPLAY_DEVICE)
#define DISPLAY_DEVICE_MIRRORING_DRIVER 0x00000008
#define DISPLAY_DEVICE_VGA_COMPATIBLE 0x00000010
+typedef USHORT COLOR16;
+
+typedef struct _TRIVERTEX
+{
+ LONG x;
+ LONG y;
+ COLOR16 Red;
+ COLOR16 Green;
+ COLOR16 Blue;
+ COLOR16 Alpha;
+} TRIVERTEX, *PTRIVERTEX, *LPTRIVERTEX;
+
+typedef struct _GRADIENT_TRIANGLE
+{
+ ULONG Vertex1;
+ ULONG Vertex2;
+ ULONG Vertex3;
+} GRADIENT_TRIANGLE, *PGRADIENT_TRIANGLE, *LPGRADIENT_TRIANGLE;
+
+typedef struct _GRADIENT_RECT
+{
+ ULONG UpperLeft;
+ ULONG LowerRight;
+} GRADIENT_RECT, *PGRADIENT_RECT, *LPGRADIENT_RECT;
+
+#define AC_SRC_OVER 0x00
+#define AC_SRC_ALPHA 0x01
+
+typedef struct _BLENDFUNCTION
+{
+ BYTE BlendOp;
+ BYTE BlendFlags;
+ BYTE SourceConstantAlpha;
+ BYTE AlphaFormat;
+} BLENDFUNCTION, *PBLENDFUNCTION;
+
+#define GRADIENT_FILL_RECT_H 0x00000000
+#define GRADIENT_FILL_RECT_V 0x00000001
+#define GRADIENT_FILL_TRIANGLE 0x00000002
+#define GRADIENT_FILL_OP_FLAG 0x000000ff
+
#define GDI_ERROR (0xFFFFFFFFL)
#define HGDI_ERROR ((HANDLE)0xFFFFFFFFL)
-INT WINAPI AbortDoc(HDC);
-BOOL WINAPI AbortPath(HDC);
-INT WINAPI AddFontResourceA(LPCSTR);
-INT WINAPI AddFontResourceW(LPCWSTR);
-#define AddFontResource WINELIB_NAME_AW(AddFontResource)
-BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
-BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
-BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
-BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
-BOOL WINAPI BeginPath(HDC);
-BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
-INT WINAPI ChoosePixelFormat(HDC,const LPPIXELFORMATDESCRIPTOR);
-BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
-HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
-BOOL WINAPI CloseFigure(HDC);
-HMETAFILE WINAPI CloseMetaFile(HDC);
-INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
-BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
-HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
-HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
-#define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
-HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
-HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
-#define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
-HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
-HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
-HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
-HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
-HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
-#define CreateColorSpace WINELIB_NAME_AW(CreateColorSpace)
-HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
-HDC WINAPI CreateCompatibleDC(HDC);
-HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
-HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
-#define CreateDC WINELIB_NAME_AW(CreateDC)
-HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,
- LPCVOID,const BITMAPINFO*,UINT);
-HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
-HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
-HBITMAP WINAPI CreateDIBSection (HDC, BITMAPINFO *, UINT,
- LPVOID *, HANDLE, DWORD offset);
-HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
-HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
-HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
-HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
-HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
-#define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
-HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,
- DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
-HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,
- DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
-#define CreateFont WINELIB_NAME_AW(CreateFont)
-HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
-HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
-#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
-HPALETTE WINAPI CreateHalftonePalette(HDC);
-HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
-HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
-HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
-#define CreateIC WINELIB_NAME_AW(CreateIC)
-HDC WINAPI CreateMetaFileA(LPCSTR);
-HDC WINAPI CreateMetaFileW(LPCWSTR);
-#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
-HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
-HBRUSH WINAPI CreatePatternBrush(HBITMAP);
-HPEN WINAPI CreatePen(INT,INT,COLORREF);
-HPEN WINAPI CreatePenIndirect(const LOGPEN*);
-HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
-HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
-HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
-HRGN WINAPI CreateRectRgnIndirect(const RECT*);
-HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
-BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
-BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
-#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
-HBRUSH WINAPI CreateSolidBrush(COLORREF);
-BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
-BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
-BOOL WINAPI DeleteDC(HDC);
-BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
-BOOL WINAPI DeleteMetaFile(HMETAFILE);
-BOOL WINAPI DeleteObject(HGDIOBJ);
-INT WINAPI DescribePixelFormat(HDC,int,UINT,
- LPPIXELFORMATDESCRIPTOR);
-INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
-BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
-INT WINAPI EndDoc(HDC);
-BOOL WINAPI EndPath(HDC);
-BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,LPVOID,const RECT*);
-INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
-INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
-#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
-INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCEXA,LPARAM,DWORD);
-INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCEXW,LPARAM,DWORD);
-#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
-INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
-INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
-#define EnumFonts WINELIB_NAME_AW(EnumFonts)
-BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
-INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
-BOOL WINAPI EqualRgn(HRGN,HRGN);
-INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
-INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
-HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
-HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
-INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
-BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
-INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
-BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,
- LPCSTR,UINT,const INT*);
-BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,
- LPCWSTR,UINT,const INT*);
-#define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
-BOOL WINAPI FillPath(HDC);
-BOOL 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 FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
-BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
-BOOL WINAPI GdiFlush(void);
-INT WINAPI GetArcDirection(HDC);
-BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
-LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
-BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
-BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
-COLORREF WINAPI GetBkColor(HDC);
-INT WINAPI GetBkMode(HDC);
-UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
-BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
-BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
-#define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
-BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
-BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
-#define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
-DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
-DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
-#define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
-BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
-BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
-#define GetCharWidthA GetCharWidth32A
-#define GetCharWidthW GetCharWidth32W
-#define GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
-#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
-BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
-BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
-#define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
-INT WINAPI GetClipBox(HDC,LPRECT);
-INT WINAPI GetClipRgn(HDC,HRGN);
-BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
-HANDLE WINAPI GetCurrentObject(HDC,UINT);
-BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
-INT WINAPI GetDeviceCaps(HDC,INT);
-BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
-COLORREF WINAPI GetDCBrushColor(HDC);
-BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
-COLORREF WINAPI GetDCPenColor(HDC);
-UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
-INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
-HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
-HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
-#define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
-UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
-UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
-UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
-#define GetEnhMetaFileDescription WINELIB_NAME_AW(GetEnhMetaFileDescription)
-UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
-UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
-DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
-DWORD WINAPI GetFontLanguageInfo(HDC);
-DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
-DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
-#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
-INT WINAPI GetGraphicsMode(HDC);
-DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
-DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
-#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
-DWORD WINAPI GetLayout(HDC);
-BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
-BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
-#define GetLogColorSpace WINELIB_NAME_AW(GetLogColorSpace)
-INT WINAPI GetMapMode(HDC);
-HMETAFILE WINAPI GetMetaFileA(LPCSTR);
-HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
-#define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
-UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
-INT WINAPI GetMetaRgn(HDC,HRGN);
-BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
-DWORD WINAPI GetNearestColor(HDC,DWORD);
-UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
-INT WINAPI GetObjectA(HANDLE,INT,LPVOID);
-INT WINAPI GetObjectW(HANDLE,INT,LPVOID);
-#define GetObject WINELIB_NAME_AW(GetObject)
-DWORD WINAPI GetObjectType(HANDLE);
-UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
-UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
-#define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
-UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
-INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
-COLORREF WINAPI GetPixel(HDC,INT,INT);
-INT WINAPI GetPixelFormat(HDC);
-INT WINAPI GetPolyFillMode(HDC);
-BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
-DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
-INT WINAPI GetRelAbs(HDC,DWORD);
-INT WINAPI GetRgnBox(HRGN,LPRECT);
-INT WINAPI GetROP2(HDC);
-HGDIOBJ WINAPI GetStockObject(INT);
-INT WINAPI GetStretchBltMode(HDC);
-UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
-UINT WINAPI GetSystemPaletteUse(HDC);
-UINT WINAPI GetTextAlign(HDC);
-INT WINAPI GetTextCharacterExtra(HDC);
-UINT WINAPI GetTextCharset(HDC);
-UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
-COLORREF WINAPI GetTextColor(HDC);
-BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,
- LPINT,LPINT,LPSIZE);
-BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,
- LPINT,LPINT,LPSIZE);
-BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
-BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
-#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
-BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
-BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
-#define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
-#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
-INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
-INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
-#define GetTextFace WINELIB_NAME_AW(GetTextFace)
-BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
-BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
-#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
-BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
-BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
-BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
-BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
-BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
-INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
-BOOL WINAPI InvertRgn(HDC,HRGN);
-BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
-BOOL WINAPI LineTo(HDC,INT,INT);
-BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
-BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
-BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
-BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
-/* FIXME This is defined in kernel32.spec !?*/
-INT WINAPI MulDiv(INT,INT,INT);
-INT WINAPI OffsetClipRgn(HDC,INT,INT);
-INT WINAPI OffsetRgn(HRGN,INT,INT);
-BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
-BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
-BOOL WINAPI PaintRgn(HDC,HRGN);
-BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
-HRGN WINAPI PathToRegion(HDC);
-BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
-BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
-BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
-BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
-BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
-BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
-BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
-BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
-BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
-BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
-BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
-BOOL WINAPI Polygon(HDC,const POINT*,INT);
-BOOL WINAPI Polyline(HDC,const POINT*,INT);
-BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
-BOOL WINAPI PtInRegion(HRGN,INT,INT);
-BOOL WINAPI PtVisible(HDC,INT,INT);
-UINT WINAPI RealizePalette(HDC);
-BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
-BOOL WINAPI RectInRegion(HRGN,const RECT *);
-BOOL WINAPI RectVisible(HDC,const RECT*);
-BOOL WINAPI RemoveFontResourceA(LPCSTR);
-BOOL WINAPI RemoveFontResourceW(LPCWSTR);
-#define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
-HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
-HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
-#define ResetDC WINELIB_NAME_AW(ResetDC)
-BOOL WINAPI ResizePalette(HPALETTE,UINT);
-BOOL WINAPI RestoreDC(HDC,INT);
-BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
-INT WINAPI SaveDC(HDC);
-BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
-BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
-BOOL WINAPI SelectClipPath(HDC,INT);
-INT WINAPI SelectClipRgn(HDC,HRGN);
-HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
-HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
-INT WINAPI SetAbortProc(HDC,ABORTPROC);
-INT WINAPI SetArcDirection(HDC,INT);
-LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
-BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
-COLORREF WINAPI SetBkColor(HDC,COLORREF);
-INT WINAPI SetBkMode(HDC,INT);
-UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
-BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
-BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
-HCOLORSPACE WINAPI SetColorSpace(HDC,HCOLORSPACE);
-BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
-UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
-INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
-INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,
- INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
-HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
-INT WINAPI SetGraphicsMode(HDC,INT);
-INT WINAPI SetICMMode(HDC,INT);
-DWORD WINAPI SetLayout(HDC,DWORD);
-INT WINAPI SetMapMode(HDC,INT);
-DWORD WINAPI SetMapperFlags(HDC,DWORD);
-HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
-INT WINAPI SetMetaRgn(HDC);
-BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
-UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
-COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
-BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
-BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
-INT WINAPI SetPolyFillMode(HDC,INT);
-BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
-INT WINAPI SetRelAbs(HDC,INT);
-INT WINAPI SetROP2(HDC,INT);
-INT WINAPI SetStretchBltMode(HDC,INT);
-UINT WINAPI SetSystemPaletteUse(HDC,UINT);
-UINT WINAPI SetTextAlign(HDC,UINT);
-INT WINAPI SetTextCharacterExtra(HDC,INT);
-COLORREF WINAPI SetTextColor(HDC,COLORREF);
-BOOL WINAPI SetTextJustification(HDC,INT,INT);
-BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
-BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
-BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
-BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
-HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
-BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
-INT WINAPI StartDocA(HDC,const DOCINFOA*);
-INT WINAPI StartDocW(HDC,const DOCINFOW*);
-#define StartDoc WINELIB_NAME_AW(StartDoc)
-INT WINAPI StartPage(HDC);
-INT WINAPI EndPage(HDC);
-BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,
- INT,INT,INT,DWORD);
-INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,
- INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
-BOOL WINAPI StrokeAndFillPath(HDC);
-BOOL WINAPI StrokePath(HDC);
-BOOL WINAPI SwapBuffers(HDC);
-BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
-BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
-#define TextOut WINELIB_NAME_AW(TextOut)
-BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
-BOOL WINAPI UnrealizeObject(HGDIOBJ);
-BOOL WINAPI UpdateColors(HDC);
-BOOL WINAPI WidenPath(HDC);
-BOOL WINAPI PolyTextOutA(HDC,PPOLYTEXTA,INT);
-BOOL WINAPI PolyTextOutW(HDC,PPOLYTEXTW,INT);
-#define PolyTextOut WINELIB_NAME_AW(PolyTextOut)
+/* AddFontResourceEx flags */
+#define FR_PRIVATE 0x10
+#define FR_NOT_ENUM 0x20
+
+/* Mirroring flags */
+#define LAYOUT_LTR 0x00000000
+#define LAYOUT_RTL 0x00000001
+#define LAYOUT_BITMAPORIENTATIONPRESERVED 0x00000008
+#define NOMIRRORBITMAP 0x80000000
+
+/* For DRAWPATTERNRECT Escape */
+typedef struct _DRAWPATRECT
+{
+ POINT ptPosition;
+ POINT ptSize;
+ WORD wStyle;
+ WORD wPattern;
+} DRAWPATRECT, *PDRAWPATRECT;
+
+typedef struct tagWCRANGE {
+ WCHAR wcLow;
+ USHORT cGlyphs;
+} WCRANGE, *PWCRANGE, *LPWCRANGE;
+
+typedef struct tagGLYPHSET {
+ DWORD cbThis;
+ DWORD flAccel;
+ DWORD cGlyphsSupported;
+ DWORD cRanges;
+ WCRANGE ranges[1];
+} GLYPHSET, *PGLYPHSET, *LPGLYPHSET;
+
+WINGDIAPI INT WINAPI AbortDoc(HDC);
+WINGDIAPI BOOL WINAPI AbortPath(HDC);
+WINGDIAPI INT WINAPI AddFontResourceA(LPCSTR);
+WINGDIAPI INT WINAPI AddFontResourceW(LPCWSTR);
+#define AddFontResource WINELIB_NAME_AW(AddFontResource)
+WINGDIAPI INT WINAPI AddFontResourceExA(LPCSTR, DWORD, PVOID);
+WINGDIAPI INT WINAPI AddFontResourceExW(LPCWSTR, DWORD, PVOID);
+#define AddFontResourceEx WINELIB_NAME_AW(AddFontResourceEx)
+WINGDIAPI HANDLE WINAPI AddFontMemResourceEx(PVOID, DWORD, PVOID, DWORD *);
+WINGDIAPI BOOL WINAPI AlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
+WINGDIAPI BOOL WINAPI AngleArc(HDC, INT, INT, DWORD, FLOAT, FLOAT);
+WINGDIAPI BOOL WINAPI AnimatePalette(HPALETTE,UINT,UINT,const PALETTEENTRY*);
+WINGDIAPI BOOL WINAPI Arc(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
+WINGDIAPI BOOL WINAPI ArcTo(HDC, INT, INT, INT, INT, INT, INT, INT, INT);
+WINGDIAPI BOOL WINAPI BeginPath(HDC);
+WINGDIAPI BOOL WINAPI BitBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,DWORD);
+WINGDIAPI INT WINAPI ChoosePixelFormat(HDC,const PIXELFORMATDESCRIPTOR*);
+WINGDIAPI BOOL WINAPI Chord(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
+WINGDIAPI HENHMETAFILE WINAPI CloseEnhMetaFile(HDC);
+WINGDIAPI BOOL WINAPI CloseFigure(HDC);
+WINGDIAPI HMETAFILE WINAPI CloseMetaFile(HDC);
+WINGDIAPI INT WINAPI CombineRgn(HRGN,HRGN,HRGN,INT);
+WINGDIAPI BOOL WINAPI CombineTransform(LPXFORM,const XFORM *,const XFORM *);
+WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileA(HENHMETAFILE,LPCSTR);
+WINGDIAPI HENHMETAFILE WINAPI CopyEnhMetaFileW(HENHMETAFILE,LPCWSTR);
+#define CopyEnhMetaFile WINELIB_NAME_AW(CopyEnhMetaFile)
+WINGDIAPI HMETAFILE WINAPI CopyMetaFileA(HMETAFILE,LPCSTR);
+WINGDIAPI HMETAFILE WINAPI CopyMetaFileW(HMETAFILE,LPCWSTR);
+#define CopyMetaFile WINELIB_NAME_AW(CopyMetaFile)
+WINGDIAPI HBITMAP WINAPI CreateBitmap(INT,INT,UINT,UINT,LPCVOID);
+WINGDIAPI HBITMAP WINAPI CreateBitmapIndirect(const BITMAP*);
+WINGDIAPI HBRUSH WINAPI CreateBrushIndirect(const LOGBRUSH*);
+WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceA(LPLOGCOLORSPACEA);
+WINGDIAPI HCOLORSPACE WINAPI CreateColorSpaceW(LPLOGCOLORSPACEW);
+#define CreateColorSpace WINELIB_NAME_AW(CreateColorSpace)
+WINGDIAPI HBITMAP WINAPI CreateCompatibleBitmap(HDC,INT,INT);
+WINGDIAPI HDC WINAPI CreateCompatibleDC(HDC);
+WINGDIAPI HDC WINAPI CreateDCA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
+WINGDIAPI HDC WINAPI CreateDCW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
+#define CreateDC WINELIB_NAME_AW(CreateDC)
+WINGDIAPI HBITMAP WINAPI CreateDIBitmap(HDC,const BITMAPINFOHEADER*,DWORD,LPCVOID,const BITMAPINFO*,UINT);
+WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrush(HGLOBAL,UINT);
+WINGDIAPI HBRUSH WINAPI CreateDIBPatternBrushPt(const void*,UINT);
+WINGDIAPI HBITMAP WINAPI CreateDIBSection(HDC, CONST BITMAPINFO *, UINT, VOID **, HANDLE, DWORD offset);
+WINGDIAPI HBITMAP WINAPI CreateDiscardableBitmap(HDC,INT,INT);
+WINGDIAPI HRGN WINAPI CreateEllipticRgn(INT,INT,INT,INT);
+WINGDIAPI HRGN WINAPI CreateEllipticRgnIndirect(const RECT *);
+WINGDIAPI HDC WINAPI CreateEnhMetaFileA(HDC,LPCSTR,const RECT*,LPCSTR);
+WINGDIAPI HDC WINAPI CreateEnhMetaFileW(HDC,LPCWSTR,const RECT*,LPCWSTR);
+#define CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
+WINGDIAPI HFONT WINAPI CreateFontA(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCSTR);
+WINGDIAPI HFONT WINAPI CreateFontW(INT,INT,INT,INT,INT,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,DWORD,LPCWSTR);
+#define CreateFont WINELIB_NAME_AW(CreateFont)
+WINGDIAPI HFONT WINAPI CreateFontIndirectA(const LOGFONTA*);
+WINGDIAPI HFONT WINAPI CreateFontIndirectW(const LOGFONTW*);
+#define CreateFontIndirect WINELIB_NAME_AW(CreateFontIndirect)
+WINGDIAPI HPALETTE WINAPI CreateHalftonePalette(HDC);
+WINGDIAPI HBRUSH WINAPI CreateHatchBrush(INT,COLORREF);
+WINGDIAPI HDC WINAPI CreateICA(LPCSTR,LPCSTR,LPCSTR,const DEVMODEA*);
+WINGDIAPI HDC WINAPI CreateICW(LPCWSTR,LPCWSTR,LPCWSTR,const DEVMODEW*);
+#define CreateIC WINELIB_NAME_AW(CreateIC)
+WINGDIAPI HDC WINAPI CreateMetaFileA(LPCSTR);
+WINGDIAPI HDC WINAPI CreateMetaFileW(LPCWSTR);
+#define CreateMetaFile WINELIB_NAME_AW(CreateMetaFile)
+WINGDIAPI HPALETTE WINAPI CreatePalette(const LOGPALETTE*);
+WINGDIAPI HBRUSH WINAPI CreatePatternBrush(HBITMAP);
+WINGDIAPI HPEN WINAPI CreatePen(INT,INT,COLORREF);
+WINGDIAPI HPEN WINAPI CreatePenIndirect(const LOGPEN*);
+WINGDIAPI HRGN WINAPI CreatePolyPolygonRgn(const POINT*,const INT*,INT,INT);
+WINGDIAPI HRGN WINAPI CreatePolygonRgn(const POINT*,INT,INT);
+WINGDIAPI HRGN WINAPI CreateRectRgn(INT,INT,INT,INT);
+WINGDIAPI HRGN WINAPI CreateRectRgnIndirect(const RECT*);
+WINGDIAPI HRGN WINAPI CreateRoundRectRgn(INT,INT,INT,INT,INT,INT);
+WINGDIAPI BOOL WINAPI CreateScalableFontResourceA(DWORD,LPCSTR,LPCSTR,LPCSTR);
+WINGDIAPI BOOL WINAPI CreateScalableFontResourceW(DWORD,LPCWSTR,LPCWSTR,LPCWSTR);
+#define CreateScalableFontResource WINELIB_NAME_AW(CreateScalableFontResource)
+WINGDIAPI HBRUSH WINAPI CreateSolidBrush(COLORREF);
+WINGDIAPI BOOL WINAPI DPtoLP(HDC,LPPOINT,INT);
+WINGDIAPI BOOL WINAPI DeleteColorSpace(HCOLORSPACE);
+WINGDIAPI BOOL WINAPI DeleteDC(HDC);
+WINGDIAPI BOOL WINAPI DeleteEnhMetaFile(HENHMETAFILE);
+WINGDIAPI BOOL WINAPI DeleteMetaFile(HMETAFILE);
+WINGDIAPI BOOL WINAPI DeleteObject(HGDIOBJ);
+WINGDIAPI INT WINAPI DescribePixelFormat(HDC,int,UINT,LPPIXELFORMATDESCRIPTOR);
+WINGDIAPI INT WINAPI DrawEscape(HDC,INT,INT,LPCSTR);
+WINGDIAPI BOOL WINAPI Ellipse(HDC,INT,INT,INT,INT);
+WINGDIAPI INT WINAPI EndDoc(HDC);
+WINGDIAPI BOOL WINAPI EndPath(HDC);
+WINGDIAPI BOOL WINAPI EnumEnhMetaFile(HDC,HENHMETAFILE,ENHMFENUMPROC,LPVOID,const RECT*);
+WINGDIAPI INT WINAPI EnumFontFamiliesA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
+WINGDIAPI INT WINAPI EnumFontFamiliesW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
+#define EnumFontFamilies WINELIB_NAME_AW(EnumFontFamilies)
+WINGDIAPI INT WINAPI EnumFontFamiliesExA(HDC,LPLOGFONTA,FONTENUMPROCA,LPARAM,DWORD);
+WINGDIAPI INT WINAPI EnumFontFamiliesExW(HDC,LPLOGFONTW,FONTENUMPROCW,LPARAM,DWORD);
+#define EnumFontFamiliesEx WINELIB_NAME_AW(EnumFontFamiliesEx)
+WINGDIAPI INT WINAPI EnumFontsA(HDC,LPCSTR,FONTENUMPROCA,LPARAM);
+WINGDIAPI INT WINAPI EnumFontsW(HDC,LPCWSTR,FONTENUMPROCW,LPARAM);
+#define EnumFonts WINELIB_NAME_AW(EnumFonts)
+WINGDIAPI INT WINAPI EnumICMProfilesA(HDC,ICMENUMPROCA,LPARAM);
+WINGDIAPI INT WINAPI EnumICMProfilesW(HDC,ICMENUMPROCW,LPARAM);
+#define EnumICMProfiles WINELIB_NAME_AW(EnumICMProfiles)
+WINGDIAPI BOOL WINAPI EnumMetaFile(HDC,HMETAFILE,MFENUMPROC,LPARAM);
+WINGDIAPI INT WINAPI EnumObjects(HDC,INT,GOBJENUMPROC,LPARAM);
+WINGDIAPI BOOL WINAPI EqualRgn(HRGN,HRGN);
+WINGDIAPI INT WINAPI Escape(HDC,INT,INT,LPCSTR,LPVOID);
+WINGDIAPI INT WINAPI ExcludeClipRect(HDC,INT,INT,INT,INT);
+WINGDIAPI HPEN WINAPI ExtCreatePen(DWORD,DWORD,const LOGBRUSH*,DWORD,const DWORD*);
+WINGDIAPI HRGN WINAPI ExtCreateRegion(const XFORM*,DWORD,const RGNDATA*);
+WINGDIAPI INT WINAPI ExtEscape(HDC,INT,INT,LPCSTR,INT,LPSTR);
+WINGDIAPI BOOL WINAPI ExtFloodFill(HDC,INT,INT,COLORREF,UINT);
+WINGDIAPI INT WINAPI ExtSelectClipRgn(HDC,HRGN,INT);
+WINGDIAPI BOOL WINAPI ExtTextOutA(HDC,INT,INT,UINT,const RECT*,LPCSTR,UINT,const INT*);
+WINGDIAPI BOOL WINAPI ExtTextOutW(HDC,INT,INT,UINT,const RECT*,LPCWSTR,UINT,const INT*);
+#define ExtTextOut WINELIB_NAME_AW(ExtTextOut)
+WINGDIAPI BOOL WINAPI FillPath(HDC);
+WINGDIAPI BOOL WINAPI FillRgn(HDC,HRGN,HBRUSH);
+WINGDIAPI BOOL WINAPI FixBrushOrgEx(HDC,INT,INT,LPPOINT);
+WINGDIAPI BOOL WINAPI FlattenPath(HDC);
+WINGDIAPI BOOL WINAPI FloodFill(HDC,INT,INT,COLORREF);
+WINGDIAPI BOOL WINAPI FrameRgn(HDC,HRGN,HBRUSH,INT,INT);
+WINGDIAPI BOOL WINAPI GdiAlphaBlend(HDC,int,int,int,int,HDC,int,int,int,int,BLENDFUNCTION);
+WINGDIAPI BOOL WINAPI GdiComment(HDC,UINT,const BYTE *);
+WINGDIAPI DEVMODEW * WINAPI GdiConvertToDevmodeW(const DEVMODEA *);
+WINGDIAPI BOOL WINAPI GdiFlush(void);
+WINGDIAPI LONG WINAPI GdiGetCharDimensions(HDC, LPTEXTMETRICW, LONG *);
+WINGDIAPI DWORD WINAPI GdiGetCodePage(HDC);
+WINGDIAPI BOOL WINAPI GdiGradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
+WINGDIAPI BOOL WINAPI GdiIsMetaFileDC(HDC);
+WINGDIAPI BOOL WINAPI GdiIsMetaPrintDC(HDC);
+WINGDIAPI BOOL WINAPI GdiIsPlayMetafileDC(HDC);
+WINGDIAPI BOOL WINAPI GdiTransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
+WINGDIAPI INT WINAPI GetArcDirection(HDC);
+WINGDIAPI BOOL WINAPI GetAspectRatioFilterEx(HDC,LPSIZE);
+WINGDIAPI LONG WINAPI GetBitmapBits(HBITMAP,LONG,LPVOID);
+WINGDIAPI BOOL WINAPI GetBitmapDimensionEx(HBITMAP,LPSIZE);
+WINGDIAPI BOOL WINAPI GetBrushOrgEx(HDC,LPPOINT);
+WINGDIAPI COLORREF WINAPI GetBkColor(HDC);
+WINGDIAPI INT WINAPI GetBkMode(HDC);
+WINGDIAPI UINT WINAPI GetBoundsRect(HDC,LPRECT,UINT);
+WINGDIAPI BOOL WINAPI GetCharABCWidthsA(HDC,UINT,UINT,LPABC);
+WINGDIAPI BOOL WINAPI GetCharABCWidthsW(HDC,UINT,UINT,LPABC);
+#define GetCharABCWidths WINELIB_NAME_AW(GetCharABCWidths)
+WINGDIAPI BOOL WINAPI GetCharABCWidthsFloatA(HDC,UINT,UINT,LPABCFLOAT);
+WINGDIAPI BOOL WINAPI GetCharABCWidthsFloatW(HDC,UINT,UINT,LPABCFLOAT);
+#define GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
+WINGDIAPI BOOL WINAPI GetCharABCWidthsI(HDC,UINT,UINT,LPWORD,LPABC);
+WINGDIAPI DWORD WINAPI GetCharacterPlacementA(HDC,LPCSTR,INT,INT,GCP_RESULTSA*,DWORD);
+WINGDIAPI DWORD WINAPI GetCharacterPlacementW(HDC,LPCWSTR,INT,INT,GCP_RESULTSW*,DWORD);
+#define GetCharacterPlacement WINELIB_NAME_AW(GetCharacterPlacement)
+WINGDIAPI BOOL WINAPI GetCharWidth32A(HDC,UINT,UINT,LPINT);
+WINGDIAPI BOOL WINAPI GetCharWidth32W(HDC,UINT,UINT,LPINT);
+#define GetCharWidth32 WINELIB_NAME_AW(GetCharWidth32)
+WINGDIAPI BOOL WINAPI GetCharWidthA(HDC,UINT,UINT,LPINT);
+WINGDIAPI BOOL WINAPI GetCharWidthI(HDC,UINT,UINT,LPWORD,LPINT);
+WINGDIAPI BOOL WINAPI GetCharWidthW(HDC,UINT,UINT,LPINT);
+#define GetCharWidth WINELIB_NAME_AW(GetCharWidth)
+WINGDIAPI BOOL WINAPI GetCharWidthFloatA(HDC,UINT,UINT,PFLOAT);
+WINGDIAPI BOOL WINAPI GetCharWidthFloatW(HDC,UINT,UINT,PFLOAT);
+#define GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
+WINGDIAPI INT WINAPI GetClipBox(HDC,LPRECT);
+WINGDIAPI INT WINAPI GetClipRgn(HDC,HRGN);
+WINGDIAPI BOOL WINAPI GetColorAdjustment(HDC, LPCOLORADJUSTMENT);
+WINGDIAPI HCOLORSPACE WINAPI GetColorSpace(HDC);
+WINGDIAPI HGDIOBJ WINAPI GetCurrentObject(HDC,UINT);
+WINGDIAPI BOOL WINAPI GetCurrentPositionEx(HDC,LPPOINT);
+WINGDIAPI INT WINAPI GetDeviceCaps(HDC,INT);
+WINGDIAPI BOOL WINAPI GetDeviceGammaRamp(HDC,LPVOID);
+WINGDIAPI COLORREF WINAPI GetDCBrushColor(HDC);
+WINGDIAPI BOOL WINAPI GetDCOrgEx(HDC,LPPOINT);
+WINGDIAPI COLORREF WINAPI GetDCPenColor(HDC);
+WINGDIAPI UINT WINAPI GetDIBColorTable(HDC,UINT,UINT,RGBQUAD*);
+WINGDIAPI INT WINAPI GetDIBits(HDC,HBITMAP,UINT,UINT,LPVOID,LPBITMAPINFO,UINT);
+WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileA(LPCSTR);
+WINGDIAPI HENHMETAFILE WINAPI GetEnhMetaFileW(LPCWSTR);
+#define GetEnhMetaFile WINELIB_NAME_AW(GetEnhMetaFile)
+WINGDIAPI UINT WINAPI GetEnhMetaFileBits(HENHMETAFILE,UINT,LPBYTE);
+WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionA(HENHMETAFILE,UINT,LPSTR);
+WINGDIAPI UINT WINAPI GetEnhMetaFileDescriptionW(HENHMETAFILE,UINT,LPWSTR);
+#define GetEnhMetaFileDescription WINELIB_NAME_AW(GetEnhMetaFileDescription)
+WINGDIAPI UINT WINAPI GetEnhMetaFileHeader(HENHMETAFILE,UINT,LPENHMETAHEADER);
+WINGDIAPI UINT WINAPI GetEnhMetaFilePaletteEntries(HENHMETAFILE,UINT,LPPALETTEENTRY);
+WINGDIAPI DWORD WINAPI GetFontData(HDC,DWORD,DWORD,LPVOID,DWORD);
+WINGDIAPI DWORD WINAPI GetFontLanguageInfo(HDC);
+WINGDIAPI DWORD WINAPI GetFontUnicodeRanges(HDC,LPGLYPHSET);
+WINGDIAPI DWORD WINAPI GetGlyphIndicesA(HDC,LPCSTR,INT,LPWORD,DWORD);
+WINGDIAPI DWORD WINAPI GetGlyphIndicesW(HDC,LPCWSTR,INT,LPWORD,DWORD);
+#define GetGlyphIndices WINELIB_NAME_AW(GetGlyphIndices)
+WINGDIAPI DWORD WINAPI GetGlyphOutlineA(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
+WINGDIAPI DWORD WINAPI GetGlyphOutlineW(HDC,UINT,UINT,LPGLYPHMETRICS,DWORD,LPVOID,const MAT2*);
+#define GetGlyphOutline WINELIB_NAME_AW(GetGlyphOutline)
+WINGDIAPI INT WINAPI GetGraphicsMode(HDC);
+WINGDIAPI BOOL WINAPI GetICMProfileA(HDC,LPDWORD,LPSTR);
+WINGDIAPI BOOL WINAPI GetICMProfileW(HDC,LPDWORD,LPWSTR);
+#define GetICMProfile WINELIB_NAME_AW(GetICMProfile)
+WINGDIAPI DWORD WINAPI GetKerningPairsA(HDC,DWORD,LPKERNINGPAIR);
+WINGDIAPI DWORD WINAPI GetKerningPairsW(HDC,DWORD,LPKERNINGPAIR);
+#define GetKerningPairs WINELIB_NAME_AW(GetKerningPairs)
+WINGDIAPI DWORD WINAPI GetLayout(HDC);
+WINGDIAPI BOOL WINAPI GetLogColorSpaceA(HCOLORSPACE,LPLOGCOLORSPACEA,DWORD);
+WINGDIAPI BOOL WINAPI GetLogColorSpaceW(HCOLORSPACE,LPLOGCOLORSPACEW,DWORD);
+#define GetLogColorSpace WINELIB_NAME_AW(GetLogColorSpace)
+WINGDIAPI INT WINAPI GetMapMode(HDC);
+WINGDIAPI HMETAFILE WINAPI GetMetaFileA(LPCSTR);
+WINGDIAPI HMETAFILE WINAPI GetMetaFileW(LPCWSTR);
+#define GetMetaFile WINELIB_NAME_AW(GetMetaFile)
+WINGDIAPI UINT WINAPI GetMetaFileBitsEx(HMETAFILE,UINT,LPVOID);
+WINGDIAPI INT WINAPI GetMetaRgn(HDC,HRGN);
+WINGDIAPI BOOL WINAPI GetMiterLimit(HDC, PFLOAT);
+WINGDIAPI DWORD WINAPI GetNearestColor(HDC,DWORD);
+WINGDIAPI UINT WINAPI GetNearestPaletteIndex(HPALETTE,COLORREF);
+WINGDIAPI INT WINAPI GetObjectA(HGDIOBJ,INT,LPVOID);
+WINGDIAPI INT WINAPI GetObjectW(HGDIOBJ,INT,LPVOID);
+#define GetObject WINELIB_NAME_AW(GetObject)
+WINGDIAPI DWORD WINAPI GetObjectType(HGDIOBJ);
+WINGDIAPI UINT WINAPI GetOutlineTextMetricsA(HDC,UINT,LPOUTLINETEXTMETRICA);
+WINGDIAPI UINT WINAPI GetOutlineTextMetricsW(HDC,UINT,LPOUTLINETEXTMETRICW);
+#define GetOutlineTextMetrics WINELIB_NAME_AW(GetOutlineTextMetrics)
+WINGDIAPI UINT WINAPI GetPaletteEntries(HPALETTE,UINT,UINT,LPPALETTEENTRY);
+WINGDIAPI INT WINAPI GetPath(HDC,LPPOINT,LPBYTE,INT);
+WINGDIAPI COLORREF WINAPI GetPixel(HDC,INT,INT);
+WINGDIAPI INT WINAPI GetPixelFormat(HDC);
+WINGDIAPI INT WINAPI GetPolyFillMode(HDC);
+WINGDIAPI INT WINAPI GetRandomRgn(HDC,HRGN,INT);
+WINGDIAPI BOOL WINAPI GetRasterizerCaps(LPRASTERIZER_STATUS,UINT);
+WINGDIAPI DWORD WINAPI GetRegionData(HRGN,DWORD,LPRGNDATA);
+WINGDIAPI INT WINAPI GetRelAbs(HDC,DWORD);
+WINGDIAPI INT WINAPI GetRgnBox(HRGN,LPRECT);
+WINGDIAPI INT WINAPI GetROP2(HDC);
+WINGDIAPI HGDIOBJ WINAPI GetStockObject(INT);
+WINGDIAPI INT WINAPI GetStretchBltMode(HDC);
+WINGDIAPI UINT WINAPI GetSystemPaletteEntries(HDC,UINT,UINT,LPPALETTEENTRY);
+WINGDIAPI UINT WINAPI GetSystemPaletteUse(HDC);
+WINGDIAPI UINT WINAPI GetTextAlign(HDC);
+WINGDIAPI INT WINAPI GetTextCharacterExtra(HDC);
+WINGDIAPI UINT WINAPI GetTextCharset(HDC);
+WINGDIAPI UINT WINAPI GetTextCharsetInfo(HDC,LPFONTSIGNATURE,DWORD);
+WINGDIAPI COLORREF WINAPI GetTextColor(HDC);
+WINGDIAPI BOOL WINAPI GetTextExtentExPointA(HDC,LPCSTR,INT,INT,LPINT,LPINT,LPSIZE);
+WINGDIAPI BOOL WINAPI GetTextExtentExPointW(HDC,LPCWSTR,INT,INT,LPINT,LPINT,LPSIZE);
+#define GetTextExtentExPoint WINELIB_NAME_AW(GetTextExtentExPoint)
+WINGDIAPI BOOL WINAPI GetTextExtentPointA(HDC,LPCSTR,INT,LPSIZE);
+WINGDIAPI BOOL WINAPI GetTextExtentPointW(HDC,LPCWSTR,INT,LPSIZE);
+#define GetTextExtentPoint WINELIB_NAME_AW(GetTextExtentPoint)
+WINGDIAPI BOOL WINAPI GetTextExtentPoint32A(HDC,LPCSTR,INT,LPSIZE);
+WINGDIAPI BOOL WINAPI GetTextExtentPoint32W(HDC,LPCWSTR,INT,LPSIZE);
+#define GetTextExtentPoint32 WINELIB_NAME_AW(GetTextExtentPoint32)
+WINGDIAPI BOOL WINAPI GetTextExtentExPointI(HDC,const WORD*,INT,INT,LPINT,LPINT,LPSIZE);
+WINGDIAPI BOOL WINAPI GetTextExtentPointI(HDC,const WORD*,INT,LPSIZE);
+WINGDIAPI INT WINAPI GetTextFaceA(HDC,INT,LPSTR);
+WINGDIAPI INT WINAPI GetTextFaceW(HDC,INT,LPWSTR);
+#define GetTextFace WINELIB_NAME_AW(GetTextFace)
+WINGDIAPI BOOL WINAPI GetTextMetricsA(HDC,LPTEXTMETRICA);
+WINGDIAPI BOOL WINAPI GetTextMetricsW(HDC,LPTEXTMETRICW);
+#define GetTextMetrics WINELIB_NAME_AW(GetTextMetrics)
+WINGDIAPI BOOL WINAPI GetViewportExtEx(HDC,LPSIZE);
+WINGDIAPI BOOL WINAPI GetViewportOrgEx(HDC,LPPOINT);
+WINGDIAPI BOOL WINAPI GetWindowExtEx(HDC,LPSIZE);
+WINGDIAPI BOOL WINAPI GetWindowOrgEx(HDC,LPPOINT);
+WINGDIAPI UINT WINAPI GetWinMetaFileBits(HENHMETAFILE,UINT,LPBYTE,INT,HDC);
+WINGDIAPI BOOL WINAPI GetWorldTransform(HDC,LPXFORM);
+WINGDIAPI BOOL WINAPI GradientFill(HDC,PTRIVERTEX,ULONG,PVOID,ULONG,ULONG);
+WINGDIAPI INT WINAPI IntersectClipRect(HDC,INT,INT,INT,INT);
+WINGDIAPI BOOL WINAPI InvertRgn(HDC,HRGN);
+WINGDIAPI BOOL WINAPI LineDDA(INT,INT,INT,INT,LINEDDAPROC,LPARAM);
+WINGDIAPI BOOL WINAPI LineTo(HDC,INT,INT);
+WINGDIAPI BOOL WINAPI LPtoDP(HDC,LPPOINT,INT);
+WINGDIAPI BOOL WINAPI MaskBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,HBITMAP,INT,INT,DWORD);
+WINGDIAPI BOOL WINAPI ModifyWorldTransform(HDC,const XFORM *, DWORD);
+WINGDIAPI BOOL WINAPI MoveToEx(HDC,INT,INT,LPPOINT);
+WINGDIAPI INT WINAPI OffsetClipRgn(HDC,INT,INT);
+WINGDIAPI INT WINAPI OffsetRgn(HRGN,INT,INT);
+WINGDIAPI BOOL WINAPI OffsetViewportOrgEx(HDC,INT,INT,LPPOINT);
+WINGDIAPI BOOL WINAPI OffsetWindowOrgEx(HDC,INT,INT,LPPOINT);
+WINGDIAPI BOOL WINAPI PaintRgn(HDC,HRGN);
+WINGDIAPI BOOL WINAPI PatBlt(HDC,INT,INT,INT,INT,DWORD);
+WINGDIAPI HRGN WINAPI PathToRegion(HDC);
+WINGDIAPI BOOL WINAPI Pie(HDC,INT,INT,INT,INT,INT,INT,INT,INT);
+WINGDIAPI BOOL WINAPI PlayEnhMetaFile(HDC,HENHMETAFILE,const RECT*);
+WINGDIAPI BOOL WINAPI PlayEnhMetaFileRecord(HDC,LPHANDLETABLE,const ENHMETARECORD*,UINT);
+WINGDIAPI BOOL WINAPI PlayMetaFile(HDC,HMETAFILE);
+WINGDIAPI BOOL WINAPI PlayMetaFileRecord(HDC,LPHANDLETABLE,LPMETARECORD,UINT);
+WINGDIAPI BOOL WINAPI PlgBlt(HDC,const POINT*,HDC,INT,INT,INT,INT,HBITMAP,INT,INT);
+WINGDIAPI BOOL WINAPI PolyBezier(HDC,const POINT*,DWORD);
+WINGDIAPI BOOL WINAPI PolyBezierTo(HDC,const POINT*,DWORD);
+WINGDIAPI BOOL WINAPI PolyDraw(HDC,const POINT*,const BYTE*,DWORD);
+WINGDIAPI BOOL WINAPI PolyPolygon(HDC,const POINT*,const INT*,UINT);
+WINGDIAPI BOOL WINAPI PolyPolyline(HDC,const POINT*,const DWORD*,DWORD);
+WINGDIAPI BOOL WINAPI Polygon(HDC,const POINT*,INT);
+WINGDIAPI BOOL WINAPI Polyline(HDC,const POINT*,INT);
+WINGDIAPI BOOL WINAPI PolylineTo(HDC,const POINT*,DWORD);
+WINGDIAPI BOOL WINAPI PtInRegion(HRGN,INT,INT);
+WINGDIAPI BOOL WINAPI PtVisible(HDC,INT,INT);
+WINGDIAPI UINT WINAPI RealizePalette(HDC);
+WINGDIAPI BOOL WINAPI Rectangle(HDC,INT,INT,INT,INT);
+WINGDIAPI BOOL WINAPI RectInRegion(HRGN,const RECT *);
+WINGDIAPI BOOL WINAPI RectVisible(HDC,const RECT*);
+WINGDIAPI BOOL WINAPI RemoveFontResourceA(LPCSTR);
+WINGDIAPI BOOL WINAPI RemoveFontResourceW(LPCWSTR);
+#define RemoveFontResource WINELIB_NAME_AW(RemoveFontResource)
+WINGDIAPI BOOL WINAPI RemoveFontResourceExA(LPCSTR, DWORD, PVOID);
+WINGDIAPI BOOL WINAPI RemoveFontResourceExW(LPCWSTR, DWORD, PVOID);
+#define RemoveFontResourceEx WINELIB_NAME_AW(RemoveFontResourceEx)
+WINGDIAPI HDC WINAPI ResetDCA(HDC,const DEVMODEA *);
+WINGDIAPI HDC WINAPI ResetDCW(HDC,const DEVMODEW *);
+#define ResetDC WINELIB_NAME_AW(ResetDC)
+WINGDIAPI BOOL WINAPI ResizePalette(HPALETTE,UINT);
+WINGDIAPI BOOL WINAPI RestoreDC(HDC,INT);
+WINGDIAPI BOOL WINAPI RoundRect(HDC,INT,INT,INT,INT,INT,INT);
+WINGDIAPI INT WINAPI SaveDC(HDC);
+WINGDIAPI BOOL WINAPI ScaleViewportExtEx(HDC,INT,INT,INT,INT,LPSIZE);
+WINGDIAPI BOOL WINAPI ScaleWindowExtEx(HDC,INT,INT,INT,INT,LPSIZE);
+WINGDIAPI BOOL WINAPI SelectClipPath(HDC,INT);
+WINGDIAPI INT WINAPI SelectClipRgn(HDC,HRGN);
+WINGDIAPI HGDIOBJ WINAPI SelectObject(HDC,HGDIOBJ);
+WINGDIAPI HPALETTE WINAPI SelectPalette(HDC,HPALETTE,BOOL);
+WINGDIAPI INT WINAPI SetAbortProc(HDC,ABORTPROC);
+WINGDIAPI INT WINAPI SetArcDirection(HDC,INT);
+WINGDIAPI LONG WINAPI SetBitmapBits(HBITMAP,LONG,LPCVOID);
+WINGDIAPI BOOL WINAPI SetBitmapDimensionEx(HBITMAP,INT,INT,LPSIZE);
+WINGDIAPI COLORREF WINAPI SetBkColor(HDC,COLORREF);
+WINGDIAPI INT WINAPI SetBkMode(HDC,INT);
+WINGDIAPI UINT WINAPI SetBoundsRect(HDC,const RECT*,UINT);
+WINGDIAPI BOOL WINAPI SetBrushOrgEx(HDC,INT,INT,LPPOINT);
+WINGDIAPI BOOL WINAPI SetColorAdjustment(HDC,const COLORADJUSTMENT*);
+WINGDIAPI HCOLORSPACE WINAPI SetColorSpace(HDC,HCOLORSPACE);
+WINGDIAPI BOOL WINAPI SetDeviceGammaRamp(HDC,LPVOID);
+WINGDIAPI COLORREF WINAPI SetDCBrushColor(HDC,COLORREF);
+WINGDIAPI COLORREF WINAPI SetDCPenColor(HDC, COLORREF);
+WINGDIAPI UINT WINAPI SetDIBColorTable(HDC,UINT,UINT,CONST RGBQUAD*);
+WINGDIAPI INT WINAPI SetDIBits(HDC,HBITMAP,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
+WINGDIAPI INT WINAPI SetDIBitsToDevice(HDC,INT,INT,DWORD,DWORD,INT,INT,UINT,UINT,LPCVOID,const BITMAPINFO*,UINT);
+WINGDIAPI HENHMETAFILE WINAPI SetEnhMetaFileBits(UINT,const BYTE *);
+WINGDIAPI INT WINAPI SetGraphicsMode(HDC,INT);
+WINGDIAPI INT WINAPI SetICMMode(HDC,INT);
+WINGDIAPI BOOL WINAPI SetICMProfileA(HDC,LPSTR);
+WINGDIAPI BOOL WINAPI SetICMProfileW(HDC,LPWSTR);
+#define SetICMProfile WINELIB_NAME_AW(SetICMProfile)
+WINGDIAPI DWORD WINAPI SetLayout(HDC,DWORD);
+WINGDIAPI INT WINAPI SetMapMode(HDC,INT);
+WINGDIAPI DWORD WINAPI SetMapperFlags(HDC,DWORD);
+WINGDIAPI HMETAFILE WINAPI SetMetaFileBitsEx(UINT,const BYTE*);
+WINGDIAPI INT WINAPI SetMetaRgn(HDC);
+WINGDIAPI BOOL WINAPI SetMiterLimit(HDC, FLOAT, PFLOAT);
+WINGDIAPI UINT WINAPI SetPaletteEntries(HPALETTE,UINT,UINT,const PALETTEENTRY*);
+WINGDIAPI COLORREF WINAPI SetPixel(HDC,INT,INT,COLORREF);
+WINGDIAPI BOOL WINAPI SetPixelV(HDC,INT,INT,COLORREF);
+WINGDIAPI BOOL WINAPI SetPixelFormat(HDC,int,const PIXELFORMATDESCRIPTOR*);
+WINGDIAPI INT WINAPI SetPolyFillMode(HDC,INT);
+WINGDIAPI BOOL WINAPI SetRectRgn(HRGN,INT,INT,INT,INT);
+WINGDIAPI INT WINAPI SetRelAbs(HDC,INT);
+WINGDIAPI INT WINAPI SetROP2(HDC,INT);
+WINGDIAPI INT WINAPI SetStretchBltMode(HDC,INT);
+WINGDIAPI UINT WINAPI SetSystemPaletteUse(HDC,UINT);
+WINGDIAPI UINT WINAPI SetTextAlign(HDC,UINT);
+WINGDIAPI INT WINAPI SetTextCharacterExtra(HDC,INT);
+WINGDIAPI COLORREF WINAPI SetTextColor(HDC,COLORREF);
+WINGDIAPI BOOL WINAPI SetTextJustification(HDC,INT,INT);
+WINGDIAPI BOOL WINAPI SetViewportExtEx(HDC,INT,INT,LPSIZE);
+WINGDIAPI BOOL WINAPI SetViewportOrgEx(HDC,INT,INT,LPPOINT);
+WINGDIAPI BOOL WINAPI SetWindowExtEx(HDC,INT,INT,LPSIZE);
+WINGDIAPI BOOL WINAPI SetWindowOrgEx(HDC,INT,INT,LPPOINT);
+WINGDIAPI HENHMETAFILE WINAPI SetWinMetaFileBits(UINT,CONST BYTE*,HDC,CONST METAFILEPICT *);
+WINGDIAPI BOOL WINAPI SetWorldTransform(HDC,const XFORM*);
+WINGDIAPI INT WINAPI StartDocA(HDC,const DOCINFOA*);
+WINGDIAPI INT WINAPI StartDocW(HDC,const DOCINFOW*);
+#define StartDoc WINELIB_NAME_AW(StartDoc)
+WINGDIAPI INT WINAPI StartPage(HDC);
+WINGDIAPI INT WINAPI EndPage(HDC);
+WINGDIAPI BOOL WINAPI StretchBlt(HDC,INT,INT,INT,INT,HDC,INT,INT,INT,INT,DWORD);
+WINGDIAPI INT WINAPI StretchDIBits(HDC,INT,INT,INT,INT,INT,INT,INT,INT,const VOID*,const BITMAPINFO*,UINT,DWORD);
+WINGDIAPI BOOL WINAPI StrokeAndFillPath(HDC);
+WINGDIAPI BOOL WINAPI StrokePath(HDC);
+WINGDIAPI BOOL WINAPI SwapBuffers(HDC);
+WINGDIAPI BOOL WINAPI TextOutA(HDC,INT,INT,LPCSTR,INT);
+WINGDIAPI BOOL WINAPI TextOutW(HDC,INT,INT,LPCWSTR,INT);
+#define TextOut WINELIB_NAME_AW(TextOut)
+WINGDIAPI BOOL WINAPI TranslateCharsetInfo(LPDWORD,LPCHARSETINFO,DWORD);
+WINGDIAPI BOOL WINAPI TransparentBlt(HDC,int,int,int,int,HDC,int,int,int,int,UINT);
+WINGDIAPI BOOL WINAPI UnrealizeObject(HGDIOBJ);
+WINGDIAPI BOOL WINAPI UpdateColors(HDC);
+WINGDIAPI BOOL WINAPI UpdateICMRegKeyA(DWORD,LPSTR,LPSTR,UINT);
+WINGDIAPI BOOL WINAPI UpdateICMRegKeyW(DWORD,LPWSTR,LPWSTR,UINT);
+#define UpdateICMRegKey WINELIB_NAME_AW(UpdateICMRegKey)
+WINGDIAPI BOOL WINAPI WidenPath(HDC);
+WINGDIAPI BOOL WINAPI PolyTextOutA(HDC,const POLYTEXTA*,INT);
+WINGDIAPI BOOL WINAPI PolyTextOutW(HDC,const POLYTEXTW*,INT);
+#define PolyTextOut WINELIB_NAME_AW(PolyTextOut)
+
+/* These defines are used by wglSwapLayerBuffers */
+#define WGL_SWAP_MAIN_PLANE (1 << 0)
+#define WGL_SWAP_OVERLAY1 (1 << 1)
+#define WGL_SWAP_OVERLAY2 (1 << 2)
+#define WGL_SWAP_OVERLAY3 (1 << 3)
+#define WGL_SWAP_OVERLAY4 (1 << 4)
+#define WGL_SWAP_OVERLAY5 (1 << 5)
+#define WGL_SWAP_OVERLAY6 (1 << 6)
+#define WGL_SWAP_OVERLAY7 (1 << 7)
+#define WGL_SWAP_OVERLAY8 (1 << 8)
+#define WGL_SWAP_OVERLAY9 (1 << 9)
+#define WGL_SWAP_OVERLAY10 (1 << 10)
+#define WGL_SWAP_OVERLAY11 (1 << 11)
+#define WGL_SWAP_OVERLAY12 (1 << 12)
+#define WGL_SWAP_OVERLAY13 (1 << 13)
+#define WGL_SWAP_OVERLAY14 (1 << 14)
+#define WGL_SWAP_OVERLAY15 (1 << 15)
+#define WGL_SWAP_UNDERLAY1 (1 << 16)
+#define WGL_SWAP_UNDERLAY2 (1 << 17)
+#define WGL_SWAP_UNDERLAY3 (1 << 18)
+#define WGL_SWAP_UNDERLAY4 (1 << 19)
+#define WGL_SWAP_UNDERLAY5 (1 << 20)
+#define WGL_SWAP_UNDERLAY6 (1 << 21)
+#define WGL_SWAP_UNDERLAY7 (1 << 22)
+#define WGL_SWAP_UNDERLAY8 (1 << 23)
+#define WGL_SWAP_UNDERLAY9 (1 << 24)
+#define WGL_SWAP_UNDERLAY10 (1 << 25)
+#define WGL_SWAP_UNDERLAY11 (1 << 26)
+#define WGL_SWAP_UNDERLAY12 (1 << 27)
+#define WGL_SWAP_UNDERLAY13 (1 << 28)
+#define WGL_SWAP_UNDERLAY14 (1 << 29)
+#define WGL_SWAP_UNDERLAY15 (1 << 30)
+
+/* WGL prototypes */
+WINGDIAPI HGLRC WINAPI wglCreateContext(HDC);
+WINGDIAPI HGLRC WINAPI wglCreateLayerContext(HDC,INT);
+WINGDIAPI BOOL WINAPI wglCopyContext(HGLRC,HGLRC,UINT);
+WINGDIAPI BOOL WINAPI wglDeleteContext(HGLRC);
+WINGDIAPI BOOL WINAPI wglDescribeLayerPlane(HDC,INT,INT,UINT,LPLAYERPLANEDESCRIPTOR);
+WINGDIAPI HGLRC WINAPI wglGetCurrentContext(void);
+WINGDIAPI HDC WINAPI wglGetCurrentDC(void);
+WINGDIAPI INT WINAPI wglGetLayerPaletteEntries(HDC,INT,INT,INT,const COLORREF *);
+WINGDIAPI PROC WINAPI wglGetProcAddress(LPCSTR);
+WINGDIAPI BOOL WINAPI wglMakeCurrent(HDC,HGLRC);
+WINGDIAPI BOOL WINAPI wglRealizeLayerPalette(HDC,INT,BOOL);
+WINGDIAPI INT WINAPI wglSetLayerPaletteEntries(HDC,INT,INT,INT,const COLORREF *);
+WINGDIAPI BOOL WINAPI wglShareLists(HGLRC,HGLRC);
+WINGDIAPI BOOL WINAPI wglSwapLayerBuffers(HDC,UINT);
+WINGDIAPI BOOL WINAPI wglUseFontBitmaps(HDC,DWORD,DWORD,DWORD);
+WINGDIAPI BOOL WINAPI wglUseFontOutlines(HDC,DWORD,DWORD,DWORD,FLOAT,FLOAT,INT,LPGLYPHMETRICSFLOAT);
+
+#ifdef __WINESRC__
+/* the DC hook support is only exported on Win16, the 32-bit version is a Wine extension */
+
+#define DCHC_INVALIDVISRGN 0x0001
+#define DCHC_DELETEDC 0x0002
+#define DCHF_INVALIDATEVISRGN 0x0001
+#define DCHF_VALIDATEVISRGN 0x0002
+
+typedef BOOL (CALLBACK *DCHOOKPROC)(HDC,WORD,DWORD_PTR,LPARAM);
+
+WINGDIAPI DWORD_PTR WINAPI GetDCHook(HDC,DCHOOKPROC*);
+WINGDIAPI BOOL WINAPI SetDCHook(HDC,DCHOOKPROC,DWORD_PTR);
+WINGDIAPI WORD WINAPI SetHookFlags(HDC,WORD);
+WINGDIAPI INT WINAPI SelectVisRgn(HDC,HRGN);
+#endif /* __WINESRC__ */
#ifdef __cplusplus
}