ws2_32: Make function declarations match definitions.
[wine] / include / wingdi.h
index 79101df..ea65928 100644 (file)
@@ -1,3 +1,21 @@
+/*
+ * 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
@@ -6,6 +24,12 @@
 extern "C" {
 #endif
 
+#ifdef _GDI32_
+#define WINGDIAPI
+#else
+#define WINGDIAPI DECLSPEC_IMPORT
+#endif
+
 typedef struct _ABCFLOAT {
     FLOAT   abcfA;
     FLOAT   abcfB;
@@ -70,6 +94,7 @@ typedef struct tagPIXELFORMATDESCRIPTOR {
 #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
@@ -106,7 +131,7 @@ typedef struct tagCOLORADJUSTMENT
 #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
 
@@ -215,6 +240,8 @@ DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
 #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
@@ -366,6 +393,8 @@ DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
 #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
@@ -387,7 +416,7 @@ DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
 #define WHITEONBLACK         2
 #define COLORONCOLOR        3
 #define HALFTONE             4
-#define MAXSTRETCHBLTMODE    4 
+#define MAXSTRETCHBLTMODE    4
 
 #define STRETCH_ANDSCANS     BLACKONWHITE
 #define STRETCH_ORSCANS      WHITEONBLACK
@@ -396,20 +425,25 @@ DECL_WINELIB_TYPE_AW(LOGCOLORSPACE)
 
   /* 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
@@ -450,12 +484,19 @@ typedef struct
   /* 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;
 
 
@@ -489,7 +530,7 @@ typedef LOGBRUSH PATTERN, *PPATTERN, *LPPATTERN;
 #define DEVICE_FONTTYPE     0x0002
 #define TRUETYPE_FONTTYPE   0x0004
 
-typedef struct
+typedef struct tagLOGFONTA
 {
     LONG   lfHeight;
     LONG   lfWidth;
@@ -507,7 +548,7 @@ typedef struct
     CHAR   lfFaceName[LF_FACESIZE];
 } LOGFONTA, *PLOGFONTA, *LPLOGFONTA;
 
-typedef struct
+typedef struct tagLOGFONTW
 {
     LONG   lfHeight;
     LONG   lfWidth;
@@ -574,7 +615,7 @@ DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
  *        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
@@ -583,7 +624,7 @@ typedef struct
   DWORD fsCsb[2];
 } FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
 
-typedef struct 
+typedef struct
 {
   UINT ciCharset; /* character set */
   UINT ciACP; /* ANSI code page */
@@ -600,7 +641,7 @@ typedef struct
     DWORD lsUsb[4];
     DWORD lsCsbDefault[2];
     DWORD lsCsbSupported[2];
-} LOCALESIGNATURE, *PLOCALESIGNATUR, *LPLOCALESIGNATUREE;
+} LOCALESIGNATURE, *PLOCALESIGNATURE, *LPLOCALESIGNATURE;
 
 
 /* Flags for ModifyWorldTransform */
@@ -608,7 +649,7 @@ typedef struct
 #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
@@ -624,8 +665,9 @@ typedef struct
 #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;
@@ -666,6 +708,7 @@ typedef struct
 #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
@@ -741,7 +784,10 @@ typedef struct
 #define FF_SCRIPT           0x40
 #define FF_DECORATIVE       0x50
 
-typedef struct
+#ifndef _TEXTMETRIC_DEFINED
+#define _TEXTMETRIC_DEFINED
+
+typedef struct tagTEXTMETRICA
 {
     LONG      tmHeight;
     LONG      tmAscent;
@@ -765,7 +811,7 @@ typedef struct
     BYTE      tmCharSet;
 } TEXTMETRICA, *LPTEXTMETRICA, *PTEXTMETRICA;
 
-typedef struct
+typedef struct tagTEXTMETRICW
 {
     LONG      tmHeight;
     LONG      tmAscent;
@@ -792,6 +838,7 @@ typedef struct
 DECL_WINELIB_TYPE_AW(TEXTMETRIC)
 DECL_WINELIB_TYPE_AW(PTEXTMETRIC)
 DECL_WINELIB_TYPE_AW(LPTEXTMETRIC)
+#endif /* _TEXTMETRIC_DEFINED */
 
 
 typedef struct tagPANOSE
@@ -810,7 +857,7 @@ 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
@@ -1073,6 +1120,14 @@ DECL_WINELIB_TYPE_AW(LPPOLYTEXT)
 #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;
@@ -1137,33 +1192,46 @@ typedef struct
 {
     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 */
@@ -1197,10 +1265,16 @@ typedef VOID    CALLBACK (*LINEDDAPROC)(INT,INT,LPARAM);
 #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;
@@ -1214,11 +1288,16 @@ typedef struct
 #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;
@@ -1322,7 +1401,7 @@ typedef struct tagGCP_RESULTSW
     UINT   *lpOrder;
     INT    *lpDx;
     INT    *lpCaretPos;
-    LPWSTR lpClass;
+    LPSTR  lpClass;
     LPWSTR lpGlyphs;
     UINT   nGlyphs;
     UINT   nMaxFit;
@@ -1342,37 +1421,90 @@ typedef struct
 #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;
@@ -1384,7 +1516,7 @@ typedef struct tagEXTLOGPEN
     DWORD    elpWidth;
     UINT     elpBrushStyle;
     COLORREF elpColor;
-    LONG     elpHatch;
+    ULONG_PTR elpHatch;
     DWORD elpNumEntries;
     DWORD elpStyleEntry[1];
 } EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
@@ -1429,6 +1561,9 @@ typedef struct tagEXTLOGPEN
 #define RGN_COPY          5
 #define RGN_MIN           RGN_AND
 #define RGN_MAX           RGN_COPY
+
+#define SYSRGN            4
+
   /* Device contexts */
 
   /* Polygon modes */
@@ -1514,7 +1649,9 @@ typedef struct tagEXTLOGPEN
 #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
@@ -1605,7 +1742,6 @@ typedef struct tagEXTLOGPEN
 #define RC_DEVBITS        0x8000
 
 /* CAPS1 */
-
 #define C1_TRANSPARENT    0x0001
 #define TC_TT_ABLE        0x0002
 #define C1_TT_CR_ANY      0x0004
@@ -1620,6 +1756,14 @@ typedef struct tagEXTLOGPEN
 #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 {
@@ -1635,7 +1779,7 @@ typedef struct {
   BYTE rgbtRed;
 } RGBTRIPLE;
 
-#include "pshpack2.h"
+#include <pshpack2.h>
 typedef struct
 {
     WORD    bfType;
@@ -1644,7 +1788,7 @@ typedef struct
     WORD    bfReserved2;
     DWORD   bfOffBits;
 } BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
-#include "poppack.h"
+#include <poppack.h>
 
 #define MAKEPOINTS(l)  (*((POINTS *)&(l)))
 
@@ -1670,7 +1814,7 @@ typedef struct
     LONG         bV4Height;
     WORD         bV4Planes;
     WORD         bV4BitCount;
-    DWORD        bV4Compression;
+    DWORD        bV4V4Compression;
     DWORD        bV4SizeImage;
     LONG         bV4XPelsPerMeter;
     LONG         bV4YPelsPerMeter;
@@ -1681,7 +1825,7 @@ typedef struct
     DWORD        bV4BlueMask;
     DWORD        bV4AlphaMask;
     DWORD        bV4CSType;
-    CIEXYZTRIPLE bV4EndPoints;
+    CIEXYZTRIPLE bV4Endpoints;
     DWORD        bV4GammaRed;
     DWORD        bV4GammaGreen;
     DWORD        bV4GammaBlue;
@@ -1714,8 +1858,8 @@ typedef struct {
     DWORD        bV5Reserved;
 } BITMAPV5HEADER, *LPBITMAPV5HEADER, *PBITMAPV5HEADER;
 
-#define PROFILE_LINKED   'LINK'
-#define PROFILE_EMBEDDED 'MBED'
+#define PROFILE_LINKED   0x4c494e4b     /* 'LINK' */
+#define PROFILE_EMBEDDED 0x4d424544     /* 'MBED' */
 
 
   /* biCompression */
@@ -1724,9 +1868,10 @@ typedef struct {
 #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
@@ -1748,7 +1893,7 @@ typedef struct
 #define DIB_PAL_COLORS   1
 #define CBM_INIT         4
 
-typedef struct 
+typedef struct
 {
        BITMAP          dsBm;
        BITMAPINFOHEADER        dsBmih;
@@ -1777,12 +1922,14 @@ typedef struct
 #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;
@@ -1793,7 +1940,7 @@ typedef struct
     DWORD      mtMaxRecord;
     WORD       mtNoParameters;
 } METAHEADER, *PMETAHEADER, *LPMETAHEADER;
-#include "poppack.h"
+#include <poppack.h>
 
 /* Metafile typical record structure */
 typedef struct
@@ -1902,7 +2049,7 @@ 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 */
@@ -1910,37 +2057,32 @@ typedef INT CALLBACK (*MFENUMPROC)(HDC,HANDLETABLE*,METARECORD*,
 /* 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;
@@ -2006,9 +2148,9 @@ typedef struct {
 } EMRBITBLT, *PEMRBITBLT;
 
 typedef struct {
-    EMR      emr;
-    DWORD    ihBrush;
-    LOGBRUSH lb;
+    EMR        emr;
+    DWORD      ihBrush;
+    LOGBRUSH32 lb;
 } EMRCREATEBRUSHINDIRECT, *PEMRCREATEBRUSHINDIRECT;
 
 typedef struct {
@@ -2146,7 +2288,7 @@ typedef struct {
 } EMRFILLRGN, *PEMRFILLRGN;
 
 typedef struct {
-    DWORD signature;
+    DWORD dSignature;
     DWORD nVersion;
     DWORD cbData;
     DWORD offData;
@@ -2232,7 +2374,7 @@ typedef struct {
 typedef struct {
     EMR      emr;
     RECTL    rclBounds;
-    POINTL   aptlDst[3];
+    POINTL   aptlDest[3];
     LONG     xSrc;
     LONG     ySrc;
     LONG     cxSrc;
@@ -2249,7 +2391,7 @@ typedef struct {
     DWORD    iUsageMask;
     DWORD    offBmiMask;
     DWORD    cbBmiMask;
-    DWORD    offBitsMask; 
+    DWORD    offBitsMask;
     DWORD    cbBitsMask;
 } EMRPLGBLT, *PEMRPLGBLT;
 
@@ -2264,13 +2406,42 @@ typedef struct {
   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;
@@ -2329,7 +2500,7 @@ typedef struct {
   EMRSETROP2,           *PEMRSETROP2,
   EMRSETSTRETCHBLTMODE, *PEMRSETSTRETCHBLTMODE,
   EMRSETTEXTALIGN,      *PEMRSETTEXTALIGN,
-  EMRSETICMMODE,        *PERMSETICMMODE,
+  EMRSETICMMODE,        *PEMRSETICMMODE,
   EMRSETLAYOUT,         *PEMRSETLAYOUT;
 
 typedef struct {
@@ -2376,7 +2547,7 @@ typedef struct {
     DWORD iUsageSrc;
     DWORD iStartScan;
     DWORD cScans;
-} EMRSETDIBITSTODEIVCE, *PEMRSETDIBITSTODEVICE;
+} EMRSETDIBITSTODEVICE, *PEMRSETDIBITSTODEVICE;
 
 typedef struct {
     EMR   emr;
@@ -2434,6 +2605,27 @@ typedef struct {
     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;
@@ -2454,8 +2646,8 @@ typedef struct {
 } EMRSTRETCHDIBITS, *PEMRSTRETCHDIBITS;
 
 typedef struct {
-    EMR                   emr; 
-    PIXELFORMATDESCRIPTOR pfd; 
+    EMR                   emr;
+    PIXELFORMATDESCRIPTOR pfd;
 } EMRPIXELFORMAT, *PEMRPIXELFORMAT;
 
 typedef struct tagEMRGLSRECORD {
@@ -2469,10 +2661,10 @@ typedef struct {
   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
@@ -2577,18 +2769,38 @@ typedef INT CALLBACK (*ENHMFENUMPROC)(HDC, LPHANDLETABLE,
 #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
@@ -2604,28 +2816,35 @@ typedef struct
     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;
@@ -2647,28 +2866,35 @@ typedef struct
     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;
@@ -2910,7 +3136,7 @@ DECL_WINELIB_TYPE_AW(LPDEVMODE)
 #define DMDITHER_GRAYSCALE      5
 #define DMDITHER_USER           256
 
-typedef struct 
+typedef struct
 {
     INT    cbSize;
     LPCSTR   lpszDocName;
@@ -2919,7 +3145,7 @@ typedef struct
     DWORD    fwType;
 } DOCINFOA, *LPDOCINFOA;
 
-typedef struct 
+typedef struct
 {
     INT    cbSize;
     LPCWSTR  lpszDocName;
@@ -2954,7 +3180,7 @@ typedef struct _RGNDATA {
     char               Buffer[1];
 } RGNDATA,*PRGNDATA,*LPRGNDATA;
 
-typedef BOOL CALLBACK (*ABORTPROC)(HDC, INT);
+typedef BOOL (CALLBACK *ABORTPROC)(HDC, INT);
 
 typedef struct {
     DWORD      cb;
@@ -2963,7 +3189,7 @@ typedef struct {
     DWORD      StateFlags;
     CHAR       DeviceID[128];
     CHAR       DeviceKey[128];
-} DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;      
+} DISPLAY_DEVICEA,*PDISPLAY_DEVICEA,*LPDISPLAY_DEVICEA;
 
 typedef struct {
     DWORD      cb;
@@ -2972,7 +3198,7 @@ typedef struct {
     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)
@@ -2984,366 +3210,536 @@ 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
 }