Added missing pointer types: Pxxx or LPxxx
Fixed the definition of FONTENUMPROC
Fixed typo: TA_RTLEADING is in fact TA_RTLREADING (right to left
reading I believe)
Added missing definitions: PC_TRAPEZOID
Use DUMMYxxxNAME for anonymous struct/unions in DEVMODE

diff --git a/include/wingdi.h b/include/wingdi.h
index abc36e9..008fcca 100644
--- a/include/wingdi.h
+++ b/include/wingdi.h
@@ -51,7 +51,7 @@
     DWORD dwLayerMask;
     DWORD dwVisibleMask;
     DWORD dwDamageMask;
-} PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
+} PIXELFORMATDESCRIPTOR, *PPIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
 
 #define PFD_TYPE_RGBA        0
 #define PFD_TYPE_COLORINDEX  1
@@ -429,7 +429,7 @@
     LONG paXExt;
     LONG paYExt;
     BYTE paRGBs;
-} PELARRAY, *PPELARRAY;
+} PELARRAY, *PPELARRAY, *LPPELARRAY;
 
   /* Bitmaps */
 
@@ -442,7 +442,7 @@
     WORD   bmPlanes;
     WORD   bmBitsPixel;
     LPVOID bmBits;
-} BITMAP, *LPBITMAP;
+} BITMAP, *PBITMAP, *LPBITMAP;
 
 
   /* Brushes */
@@ -452,9 +452,9 @@
     UINT     lbStyle;
     COLORREF   lbColor;
     INT      lbHatch;
-} LOGBRUSH, *LPLOGBRUSH;
+} LOGBRUSH, *PLOGBRUSH, *LPLOGBRUSH;
 
-typedef LOGBRUSH PATTERN, *PPATTERN;
+typedef LOGBRUSH PATTERN, *PPATTERN, *LPPATTERN;
 
 
   /* Brush styles */
@@ -541,6 +541,9 @@
   WCHAR      elfStyle[LF_FACESIZE];
 } ENUMLOGFONTW, *LPENUMLOGFONTW;
 
+DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
+DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
+
 typedef struct
 {
   LOGFONTA elfLogFont;
@@ -557,8 +560,7 @@
   WCHAR      elfScript[LF_FACESIZE];
 } ENUMLOGFONTEXW,*LPENUMLOGFONTEXW;
 
-DECL_WINELIB_TYPE_AW(ENUMLOGFONT)
-DECL_WINELIB_TYPE_AW(LPENUMLOGFONT)
+DECL_WINELIB_TYPE_AW(ENUMLOGFONTEX)
 DECL_WINELIB_TYPE_AW(LPENUMLOGFONTEX)
 
 /*
@@ -577,14 +579,14 @@
 {
   DWORD fsUsb[4];
   DWORD fsCsb[2];
-} FONTSIGNATURE,*LPFONTSIGNATURE;
+} FONTSIGNATURE, *PFONTSIGNATURE, *LPFONTSIGNATURE;
 
 typedef struct 
 {
   UINT	ciCharset; /* character set */
   UINT	ciACP; /* ANSI code page */
   FONTSIGNATURE	fs;
-} CHARSETINFO,*LPCHARSETINFO;
+} CHARSETINFO, *PCHARSETINFO, *LPCHARSETINFO;
 
 /* Flags for TranslateCharsetInfo */
 #define TCI_SRCCHARSET    1
@@ -596,7 +598,7 @@
     DWORD lsUsb[4];
     DWORD lsCsbDefault[2];
     DWORD lsCsbSupported[2];
-} LOCALESIGNATURE, *PLOCALESIGNATURE;
+} LOCALESIGNATURE, *PLOCALESIGNATUR, *LPLOCALESIGNATUREE;
 
 
 /* Flags for ModifyWorldTransform */
@@ -629,7 +631,7 @@
     FLOAT  eM22;
     FLOAT  eDx;
     FLOAT  eDy;
-} XFORM, *LPXFORM;
+} XFORM, *PXFORM, *LPXFORM;
 
   /* lfWeight values */
 #define FW_DONTCARE	    0
@@ -800,7 +802,7 @@
     BYTE bLetterform;
     BYTE bMidline;
     BYTE bXHeight;
-} PANOSE;
+} PANOSE, *LPPANOSE;
 
 #define PANOSE_COUNT                   10
 
@@ -936,7 +938,7 @@
   BYTE        elfVendorId[ELF_VENDOR_SIZE];
   DWORD       elfCulture;
   PANOSE      elfPanose;
-} EXTLOGFONTA, *PEXTLOGFONTA;
+} EXTLOGFONTA, *PEXTLOGFONTA, *LPEXTLOGFONTA;
 
 typedef struct
 {
@@ -950,10 +952,11 @@
   BYTE        elfVendorId[ELF_VENDOR_SIZE];
   DWORD       elfCulture;
   PANOSE      elfPanose;
-} EXTLOGFONTW, *PEXTLOGFONTW;
+} EXTLOGFONTW, *PEXTLOGFONTW, *LPEXTLOGFONTW;
 
 DECL_WINELIB_TYPE_AW(EXTLOGFONT)
 DECL_WINELIB_TYPE_AW(PEXTLOGFONT)
+DECL_WINELIB_TYPE_AW(LPEXTLOGFONT)
 
 #define ELF_VERSION         0
 #define ELF_CULTURE_LATIN   0
@@ -992,7 +995,7 @@
     LPSTR           otmpFaceName;
     LPSTR           otmpStyleName;
     LPSTR           otmpFullName;
-} OUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
+} OUTLINETEXTMETRICA, *POUTLINETEXTMETRICA, *LPOUTLINETEXTMETRICA;
 
 typedef struct _OUTLINETEXTMETRICW
 {
@@ -1028,9 +1031,10 @@
     LPSTR           otmpFaceName;
     LPSTR           otmpStyleName;
     LPSTR           otmpFullName;
-} OUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
+} OUTLINETEXTMETRICW, *POUTLINETEXTMETRICW, *LPOUTLINETEXTMETRICW;
 
 DECL_WINELIB_TYPE_AW(OUTLINETEXTMETRIC)
+DECL_WINELIB_TYPE_AW(POUTLINETEXTMETRIC)
 DECL_WINELIB_TYPE_AW(LPOUTLINETEXTMETRIC)
 
 typedef struct
@@ -1042,7 +1046,7 @@
     UINT      uiFlags;
     RECT      rcl;
     INT       *pdx;
-} POLYTEXTA, *PPOLYTEXTA;
+} POLYTEXTA, *PPOLYTEXTA, *LPPOLYTEXTA;
 
 typedef struct
 {
@@ -1053,10 +1057,11 @@
     UINT      uiFlags;
     RECT      rcl;
     INT       *pdx;
-} POLYTEXTW, *PPOLYTEXTW;
+} POLYTEXTW, *PPOLYTEXTW, *LPPOLYTEXTW;
 
 DECL_WINELIB_TYPE_AW(POLYTEXT)
 DECL_WINELIB_TYPE_AW(PPOLYTEXT)
+DECL_WINELIB_TYPE_AW(LPPOLYTEXT)
 
 
 /* ntmFlags field flags */
@@ -1090,7 +1095,7 @@
     UINT    ntmSizeEM;
     UINT    ntmCellHeight;
     UINT    ntmAvgWidth;
-} NEWTEXTMETRICA, *LPNEWTEXTMETRICA;
+} NEWTEXTMETRICA, *PNEWTEXTMETRICA, *LPNEWTEXTMETRICA;
 
 typedef struct
 {
@@ -1118,9 +1123,10 @@
     UINT      ntmSizeEM;
     UINT      ntmCellHeight;
     UINT      ntmAvgWidth;
-} NEWTEXTMETRICW, *LPNEWTEXTMETRICW;
+} NEWTEXTMETRICW, *PNEWTEXTMETRICW, *LPNEWTEXTMETRICW;
 
 DECL_WINELIB_TYPE_AW(NEWTEXTMETRIC)
+DECL_WINELIB_TYPE_AW(PNEWTEXTMETRIC)
 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRIC)
 
 typedef struct
@@ -1138,19 +1144,18 @@
 DECL_WINELIB_TYPE_AW(NEWTEXTMETRICEX)
 DECL_WINELIB_TYPE_AW(LPNEWTEXTMETRICEX)
 
-typedef INT CALLBACK (*FONTENUMPROCA)(LPENUMLOGFONTA,LPNEWTEXTMETRICA,
-                                          UINT,LPARAM);
-typedef INT CALLBACK (*FONTENUMPROCW)(LPENUMLOGFONTW,LPNEWTEXTMETRICW,
-                                          UINT,LPARAM);
-DECL_WINELIB_TYPE_AW(FONTENUMPROC)
-
-typedef FONTENUMPROCA OLDFONTENUMPROCA;
-typedef FONTENUMPROCW OLDFONTENUMPROCW;
-
+typedef int CALLBACK (*OLDFONTENUMPROCA)(const LOGFONTA*,const TEXTMETRICA*,
+                                          DWORD,LPARAM);
+typedef int CALLBACK (*OLDFONTENUMPROCW)(const LOGFONTW*,const TEXTMETRICW*,
+                                          DWORD,LPARAM);
 DECL_WINELIB_TYPE_AW(OLDFONTENUMPROC)
 
-typedef INT CALLBACK (*FONTENUMPROCEXA)(LPENUMLOGFONTEXA,LPNEWTEXTMETRICEXA,UINT,LPARAM);
-typedef INT CALLBACK (*FONTENUMPROCEXW)(LPENUMLOGFONTEXW,LPNEWTEXTMETRICEXW,UINT,LPARAM);
+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);
@@ -1171,8 +1176,8 @@
 #define TA_TOP              0x00
 #define TA_BOTTOM           0x08
 #define TA_BASELINE         0x18
-#define TA_RTLEADING        0x100
-#define TA_MASK             TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLEADING
+#define TA_RTLREADING        0x100
+#define TA_MASK             TA_BASELINE+TA_CENTER+TA_UPDATECP+TA_RTLREADING
 
 #define VTA_BASELINE        TA_BASELINE
 #define VTA_LEFT            TA_BOTTOM
@@ -1250,7 +1255,7 @@
     INT   abcA;
     UINT  abcB;
     INT   abcC;
-} ABC, *LPABC;
+} ABC, *PABC, *LPABC;
 
 
   /* for GetCharacterPlacement () */
@@ -1304,7 +1309,7 @@
     LPWSTR lpGlyphs;
     UINT   nGlyphs;
     UINT   nMaxFit;
-} GCP_RESULTSA;
+} GCP_RESULTSA, *LPGCP_RESULTSA;
 
 typedef struct tagGCP_RESULTSW
 {
@@ -1317,9 +1322,10 @@
     LPWSTR lpGlyphs;
     UINT   nGlyphs;
     UINT   nMaxFit;
-} GCP_RESULTSW;
+} GCP_RESULTSW, *LPGCP_RESULTSW;
 
 DECL_WINELIB_TYPE_AW(GCP_RESULTS)
+DECL_WINELIB_TYPE_AW(LPGCP_RESULTS)
 
   /* Rasterizer status */
 typedef struct
@@ -1552,6 +1558,7 @@
 #define PC_POLYGON        0x0001
 #define PC_RECTANGLE      0x0002
 #define PC_WINDPOLYGON    0x0004
+#define PC_TRAPEZOID      0x0004
 #define PC_SCANLINE       0x0008
 #define PC_WIDE           0x0010
 #define PC_STYLED         0x0020
@@ -1625,7 +1632,7 @@
     WORD    bfReserved1;
     WORD    bfReserved2;
     DWORD   bfOffBits;
-} BITMAPFILEHEADER;
+} BITMAPFILEHEADER, *PBITMAPFILEHEADER, *LPBITMAPFILEHEADER;
 
 #define MAKEPOINTS(l)  (*((POINTS *)&(l)))
 
@@ -1708,10 +1715,7 @@
 typedef struct {
 	BITMAPINFOHEADER bmiHeader;
 	RGBQUAD	bmiColors[1];
-} BITMAPINFO;
-typedef BITMAPINFO *LPBITMAPINFO;
-typedef BITMAPINFO *NPBITMAPINFO;
-typedef BITMAPINFO *PBITMAPINFO;
+} BITMAPINFO, *PBITMAPINFO, *LPBITMAPINFO;
 
 typedef struct
 {
@@ -1720,7 +1724,7 @@
     WORD    bcHeight;
     WORD    bcPlanes;
     WORD    bcBitCount;
-} BITMAPCOREHEADER, *LPBITMAPCOREHEADER;
+} BITMAPCOREHEADER, *PBITMAPCOREHEADER, *LPBITMAPCOREHEADER;
 
 typedef struct
 {
@@ -1739,7 +1743,7 @@
 	DWORD			dsBitfields[3];
 	HANDLE		dshSection;
 	DWORD			dsOffset;
-} DIBSECTION,*LPDIBSECTION;
+} DIBSECTION, *PDIBSECTION, *LPDIBSECTION;
 
   /* Stock GDI objects for GetStockObject() */
 
@@ -1775,7 +1779,7 @@
     WORD       mtNoObjects;
     DWORD      mtMaxRecord;
     WORD       mtNoParameters;
-} METAHEADER;
+} METAHEADER, *PMETAHEADER, *LPMETAHEADER;
 
 /* Metafile typical record structure */
 typedef struct
@@ -1783,16 +1787,14 @@
     DWORD      rdSize;
     WORD       rdFunction;
     WORD       rdParm[1];
-} METARECORD;
-typedef METARECORD *PMETARECORD;
-typedef METARECORD *LPMETARECORD;
+} METARECORD, *PMETARECORD, *LPMETARECORD;
 
 /* Handle table structure */
 
 typedef struct
 {
     HGDIOBJ objectHandle[1];
-} HANDLETABLE, *LPHANDLETABLE;
+} HANDLETABLE, *PHANDLETABLE, *LPHANDLETABLE;
 
 
 /* Clipboard metafile picture structure */
@@ -1918,7 +1920,7 @@
     /* Fields for winver >= win98 */ 
     SIZEL szlMicrometers;
 
-} ENHMETAHEADER, *LPENHMETAHEADER; 
+} ENHMETAHEADER, *PENHMETAHEADER, *LPENHMETAHEADER; 
 
 typedef struct {
     DWORD iType; 
@@ -2149,7 +2151,7 @@
     EMR   emr;
     DWORD cbData;
     BYTE  Data[1];
-} EMRGDICMMENT, *PEMRGDICOMMENT;
+} EMRGDICOMMENT, *PEMRGDICOMMENT;
 
 #if 0
 typedef struct {
@@ -2621,9 +2623,9 @@
 	SHORT  dmPaperSize;
 	SHORT  dmPaperLength;
 	SHORT  dmPaperWidth;
-      } s1;
+      } DUMMYSTRUCTNAME1;
       POINTL dmPosition;
-    } u1;
+    } DUMMYUNIONNAME1;
     SHORT  dmScale;
     SHORT  dmCopies;
     SHORT  dmDefaultSource;
@@ -2664,9 +2666,9 @@
 	SHORT  dmPaperSize;
 	SHORT  dmPaperLength;
 	SHORT  dmPaperWidth;
-      } s1;
+      } DUMMYSTRUCTNAME1;
       POINTL dmPosition;
-    } u1;
+    } DUMMYUNIONNAME1;
     SHORT  dmScale;
     SHORT  dmCopies;
     SHORT  dmDefaultSource;
@@ -2960,7 +2962,7 @@
     DWORD	nCount;
     DWORD	nRgnSize;
     RECT	rcBound;
-} RGNDATAHEADER,*LPRGNDATAHEADER;
+} RGNDATAHEADER,*PRGNDATAHEADER;
 
 typedef struct _RGNDATA {
     RGNDATAHEADER	rdh;