From 1beaae5f9ee219de62031d4e895803c22607d2bf Mon Sep 17 00:00:00 2001
From: Paul Quinn <paulq@COREL.CA>
Date: Tue, 15 Dec 1998 15:38:36 +0000
Subject: [PATCH] Lots of new defines and stubs.

---
 controls/menu.c             |  36 ++++
 dlls/comctl32/commctrl.c    |   1 -
 graphics/bitblt.c           |  26 +++
 graphics/escape.c           |  10 +
 graphics/metafiledrv/init.c |   4 +-
 graphics/painting.c         |  38 +++-
 graphics/path.c             |  45 +++++
 if1632/user.spec            |   4 +-
 include/commctrl.h          | 364 +++++++++++++++++++++++++++++++++---
 include/commdlg.h           |  68 ++++++-
 include/ddeml.h             |   2 +
 include/mouse.h             |  34 ++++
 include/shlobj.h            |   3 -
 include/winbase.h           |   2 +-
 include/windows.h           |  52 ++++--
 include/winerror.h          |  59 ++++++
 include/wingdi.h            |  69 +++++++
 include/wintypes.h          |  23 ++-
 misc/ddeml.c                |  19 +-
 objects/bitmap.c            |  19 --
 objects/brush.c             |   4 +-
 objects/dc.c                |   9 +
 objects/font.c              |  50 +++++
 objects/gdiobj.c            |  54 ++++++
 relay32/gdi32.spec          |  40 ++--
 relay32/user32.spec         |  12 +-
 windows/message.c           |  25 ++-
 windows/win.c               |  12 +-
 28 files changed, 952 insertions(+), 132 deletions(-)

diff --git a/controls/menu.c b/controls/menu.c
index cb9c04844e5..1a131bc3d99 100644
--- a/controls/menu.c
+++ b/controls/menu.c
@@ -4069,3 +4069,39 @@ BOOL16 WINAPI GetMenuItemRect16 (HWND16 hwnd, HMENU16 hMenu, UINT16 uItem,
      CONV_RECT32TO16 (&r32, rect);
      return res;
 }
+
+/**********************************************************************
+ *         SetMenuContextHelpId16    (USER.384)
+ */
+BOOL16 WINAPI SetMenuContextHelpId16( HMENU16 hMenu, DWORD dwContextHelpId)
+{
+	return SetMenuContextHelpId32( hMenu, dwContextHelpId );
+}
+
+
+/**********************************************************************
+ *         SetMenuContextHelpId32    (USER32.488)
+ */
+BOOL32 WINAPI SetMenuContextHelpId32( HMENU32 hMenu, DWORD dwContextHelpId)
+{
+        FIXME(menu, "SetMenuContextHelpId, stub\n");
+	return 0;
+}
+
+/**********************************************************************
+ *         GetMenuContextHelpId16    (USER.385)
+ */
+DWORD WINAPI GetMenuContextHelpId16( HMENU16 hMenu )
+{
+	return GetMenuContextHelpId16( hMenu );
+}
+ 
+/**********************************************************************
+ *         GetMenuContextHelpId32    (USER32.488)
+ */
+DWORD WINAPI GetMenuContextHelpId32( HMENU32 hMenu )
+{
+        FIXME(menu, "GetMenuContextHelpId, stub\n");
+        return 0;
+}
+ 
diff --git a/dlls/comctl32/commctrl.c b/dlls/comctl32/commctrl.c
index 1e6e7606704..f579b6cbfdb 100644
--- a/dlls/comctl32/commctrl.c
+++ b/dlls/comctl32/commctrl.c
@@ -857,4 +857,3 @@ COMCTL32_DllGetVersion (DLLVERSIONINFO *pdvi)
 
     return S_OK;
 }
-
diff --git a/graphics/bitblt.c b/graphics/bitblt.c
index 2c2453bec47..4576d0b74a6 100644
--- a/graphics/bitblt.c
+++ b/graphics/bitblt.c
@@ -146,3 +146,29 @@ BOOL16 WINAPI FastWindowFrame( HDC16 hdc, const RECT16 *rect,
     SelectObject32( hdc, hbrush );
     return TRUE;
 }
+/***********************************************************************
+ *           MaskBlt32 [GDI32.252]
+ */
+BOOL32 WINAPI MaskBlt32(HDC32 hdcDest, INT32 nXDest, INT32 nYDest,
+                        INT32 nWidth, INT32 nHeight, HDC32 hdcSource,
+			INT32 nXSrc, INT32 nYSrc, HBITMAP32 hbmMask,
+			INT32 xMask, INT32 yMask, DWORD dwRop)
+{
+    FIXME(bitmap, "(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%ld): stub\n",
+             hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSource,nXSrc,nYSrc,
+             hbmMask,xMask,yMask,dwRop);
+    return 1;
+}
+  
+/*********************************************************************
+ *      PlgBlt [GDI.267]
+ *
+ */
+BOOL32 WINAPI PlgBlt32( HDC32 hdcDest, const POINT32 *lpPoint,
+                        HDC32 hdcSrc, INT32 nXDest, INT32 nYDest, INT32 nWidth,
+                        INT32 nHeight, HBITMAP32 hbmMask, INT32 xMask, INT32 yMask)
+{
+        FIXME(gdi, "PlgBlt, stub\n");
+        return 1;
+}
+ 
diff --git a/graphics/escape.c b/graphics/escape.c
index 6528f188702..da8f35fe044 100644
--- a/graphics/escape.c
+++ b/graphics/escape.c
@@ -161,3 +161,13 @@ INT32 WINAPI ExtEscape32( HDC32 hdc, INT32 nEscape, INT32 cbInput,
     return 0;
 }
 
+/*******************************************************************
+ *      DrawEscape [GDI32.74]
+ *
+ *
+ */
+INT32 WINAPI DrawEscape32(HDC32 hdc, INT32 nEscape, INT32 cbInput, LPCSTR lpszInData)
+{
+    FIXME(gdi, "DrawEscape, stub\n");
+    return 0;
+}
diff --git a/graphics/metafiledrv/init.c b/graphics/metafiledrv/init.c
index 8684b0ad2e5..4dd562a2751 100644
--- a/graphics/metafiledrv/init.c
+++ b/graphics/metafiledrv/init.c
@@ -407,9 +407,7 @@ HDC32 WINAPI CreateEnhMetaFile32W(
     return hReturnDC;
 }
 
-HENHMETAFILE32 WINAPI CloseEnhMetaFile32( 
-               HDC32 hdc  /* metafile DC */
-	       )
+HENHMETAFILE32 WINAPI CloseEnhMetaFile32( HDC32 hdc /* metafile DC */ )
 {
   /* write EMR_EOF(0x0, 0x10, 0x14) */
   return 0;
diff --git a/graphics/painting.c b/graphics/painting.c
index 6ec773dfca4..363e2fa766e 100644
--- a/graphics/painting.c
+++ b/graphics/painting.c
@@ -130,10 +130,10 @@ BOOL32 WINAPI Arc32( HDC32 hdc, INT32 left, INT32 top, INT32 right,
  *           ArcTo32    (GDI32.8)
  */
 BOOL32 WINAPI ArcTo32( HDC32 hdc, 
-                      INT32 left,   INT32 top, 
-                      INT32 right,  INT32 bottom,
-                      INT32 xstart, INT32 ystart,
-                      INT32 xend,   INT32 yend )
+                       INT32 left,   INT32 top, 
+                       INT32 right,  INT32 bottom,
+                       INT32 xstart, INT32 ystart,
+                       INT32 xend,   INT32 yend )
 {
     BOOL32 result;
 
@@ -724,6 +724,14 @@ BOOL32 WINAPI Polyline32( HDC32 hdc, const POINT32* pt, INT32 count )
     	   dc->funcs->pPolyline(dc,pt,count);
 }
 
+/**********************************************************************
+ *          PolylineTo32   (GDI32.277)
+ */
+BOOL32 WINAPI PolylineTo32( HDC32 hdc, const POINT32* pt, DWORD cCount )
+{
+        FIXME(gdi,"PolylineTo, stub\n");
+        return 0;
+}
 
 /**********************************************************************
  *          Polygon16  (GDI.36)
@@ -1181,12 +1189,24 @@ BOOL32 WINAPI PolyBezierTo32( HDC32 hdc, const POINT32* lppt, DWORD cPoints )
     return ret;
 }
 
+/***************************************************************
+ *      AngleArc32 (GDI32.5)
+ *
+ */
+BOOL32 WINAPI AngleArc32(HDC32 hdc, INT32 x, INT32 y, DWORD dwRadius,
+                         FLOAT eStartAngle, FLOAT eSweepAngle)
+{
+        FIXME(gdi,"AngleArc, stub\n");
+        return 0;
+}
 
-/******************************************************************************
- *                 PolylineTo32      [GDI32.277]
+/***************************************************************
+ *      PolyDraw (GDI32.270)
+ *
  */
-BOOL32 WINAPI PolylineTo32(HDC32 hdc, const POINT32 *lppt, DWORD cCount)
+BOOL32 WINAPI PolyDraw(HDC32 hdc, const POINT32 *lppt, const BYTE *lpbTypes,
+                       DWORD cCount)
 {
-    FIXME(gdi, "(%d,%p,%ld): stub\n", hdc, lppt, cCount);
-    return 1;
+        FIXME(gdi,"PolyDraw, stub\n");
+        return 0;
 }
diff --git a/graphics/path.c b/graphics/path.c
index ccd87090a48..6f1c208ec49 100644
--- a/graphics/path.c
+++ b/graphics/path.c
@@ -1116,3 +1116,48 @@ static void PATH_NormalizePoint(FLOAT_POINT corners[],
    *pY=(double)(pPoint->y-corners[0].y)/(double)(corners[1].y-corners[0].y) *
       2.0 - 1.0;
 }
+
+/*******************************************************************
+ *      FlattenPath32 [GDI32.103]
+ *
+ *
+ */
+BOOL32 WINAPI FlattenPath32(HDC32 hdc)
+{
+        FIXME(gdi, "FlattenPath, stub\n");
+        return 0;
+}
+
+/*******************************************************************
+ *      StrokeAndFillPath [GDI32.352]
+ *
+ *
+ */
+BOOL32 WINAPI StrokeAndFillPath32(HDC32 hdc)
+{
+        FIXME(gdi, "StrokeAndFillPath, stub\n");
+        return 0;
+}
+
+/*******************************************************************
+ *      StrokePath [GDI32.353]
+ *
+ *
+ */
+BOOL32 WINAPI StrokePath32(HDC32 hdc)
+{
+        FIXME(gdi, "StrokePath, stub\n");
+        return 0;
+}
+
+/*******************************************************************
+ *      WidenPath [GDI32.360]
+ *
+ *
+ */
+BOOL32 WINAPI WidenPath32(HDC32 hdc)
+{
+        FIXME(gdi, "WidenPath, stub\n");
+        return 0;
+}
+   
diff --git a/if1632/user.spec b/if1632/user.spec
index b7801e7e013..d2349e67bcb 100644
--- a/if1632/user.spec
+++ b/if1632/user.spec
@@ -357,8 +357,8 @@ file	user.exe
 381 stub UsrMPR_ThunkData16
 382 stub SetWindowContextHelpID
 383 stub GetWindowContextHelpID
-384 stub SetMenuContextHelpID
-385 stub GetMenuContextHelpID
+384 pascal16 SetMenuContextHelpId(word word) SetMenuContextHelpId16
+385 pascal16 GetMenuContextHelpId(word) GetMenuContextHelpId16
 389 pascal LoadImage(word segstr word word word word) LoadImage16
 390 stub CopyImage
 391 stub SignalProc32
diff --git a/include/commctrl.h b/include/commctrl.h
index fc6b1a82ff9..4c919191f81 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -173,7 +173,30 @@ VOID WINAPI DrawStatusText32W (HDC32, LPRECT32, LPCWSTR, UINT32);
 VOID WINAPI MenuHelp (UINT32, WPARAM32, LPARAM, HMENU32,
                       HINSTANCE32, HWND32, LPUINT32);
 
-
+/* Drag List */
+
+typedef struct tagDRAGLISTINFO {
+	UINT32 uNotification;
+	HWND32 hWnd;
+	POINT32 ptCursor;
+} DRAGLISTINFO, *LPDRAGLISTINFO;
+
+#define DL_BEGINDRAG            (WM_USER+133)
+#define DL_DRAGGING             (WM_USER+134)
+#define DL_DROPPED              (WM_USER+135)
+#define DL_CANCELDRAG           (WM_USER+136)
+
+#define DL_CURSORSET            0
+#define DL_STOPCURSOR           1
+#define DL_COPYCURSOR           2
+#define DL_MOVECURSOR           3
+
+#define DRAGLISTMSGSTRING       TEXT("commctrl_DragListMsg")
+
+BOOL32 WINAPI MakeDragList(HWND32 hLB);
+void WINAPI DrawInsert(HWND32 handParent, HWND32 hLB, int nItem);
+int WINAPI LBItemFromPt(HWND32 hLB, POINT32 pt, BOOL32 bAutoScroll);
+  
 /* UpDown */
 
 #define UPDOWN_CLASS16          "msctls_updown"
@@ -843,8 +866,8 @@ typedef struct tagTBSAVEPARAMSW {
     LPCWSTR pszValueName;
 } TBSAVEPARAMSA32W, *LPTBSAVEPARAMSA32W;
 
-#define TBSAVEPARAMS   WINELIB_NAMEAW(TBSAVEPARAMS)
-#define LPTBSAVEPARAMS WINELIB_NAMEAW(LPTBSAVEPARAMS)
+#define TBSAVEPARAMS   WINELIB_NAME_AW(TBSAVEPARAMS)
+#define LPTBSAVEPARAMS WINELIB_NAME_AW(LPTBSAVEPARAMS)
 
 typedef struct
 {
@@ -874,8 +897,8 @@ typedef struct
     INT32  cchText;
 } TBBUTTONINFO32W, *LPTBBUTTONINFO32W;
 
-#define TBBUTTONINFO   WINELIB_NAMEAW(TBBUTTONINFO)
-#define LPTBBUTTONINFO WINELIB_NAMEAW(LPTBBUTTONINFO)
+#define TBBUTTONINFO   WINELIB_NAME_AW(TBBUTTONINFO)
+#define LPTBBUTTONINFO WINELIB_NAME_AW(LPTBBUTTONINFO)
 
 typedef struct tagNMTBGETINFOTIPA
 {
@@ -895,9 +918,17 @@ typedef struct tagNMTBGETINFOTIPW
     LPARAM lParam;
 } NMTBGETINFOTIP32W, *LPNMTBGETINFOTIP32W;
 
-#define NMTBGETINFOTIP   WINELIB_NAMEAW(NMTBGETINFOFTIP)
-#define LPNMTBGETINFOTIP WINELIB_NAMEAW(LPNMTBGETINFOTIP)
+#define NMTBGETINFOTIP   WINELIB_NAME_AW(NMTBGETINFOFTIP)
+#define LPNMTBGETINFOTIP WINELIB_NAME_AW(LPNMTBGETINFOTIP)
 
+typedef struct
+{
+	HINSTANCE32 hInstOld;
+	UINT32      nIDOld;
+	HINSTANCE32 hInstNew;
+	UINT32      nIDNew;
+	INT32       nButtons;
+} TBREPLACEBITMAP, *LPTBREPLACEBITMAP;
 
 HWND32 WINAPI
 CreateToolbar(HWND32, DWORD, UINT32, INT32, HINSTANCE32,
@@ -998,6 +1029,10 @@ CreateMappedBitmap (HINSTANCE32, INT32, UINT32, LPCOLORMAP, INT32);
 #define TTN_SHOW                (TTN_FIRST-1)
 #define TTN_POP                 (TTN_FIRST-2)
 
+#define TTN_NEEDTEXT TTN_GETDISPINFO
+#define TTN_NEEDTEXTA TTN_GETDISPINFO32A
+#define TTN_NEEDTEXTW TTN_GETDISPINFO32W
+
 typedef struct tagTOOLINFOA {
     UINT32 cbSize;
     UINT32 uFlags;
@@ -1007,7 +1042,7 @@ typedef struct tagTOOLINFOA {
     HINSTANCE32 hinst;
     LPSTR lpszText;
     LPARAM lParam;
-} TTTOOLINFO32A, *PTOOLINFO32A, *LPTTTOOLINFO32A;
+} TTTOOLINFO32A, *LPTOOLINFO32A, *PTOOLINFO32A, *LPTTTOOLINFO32A;
 
 typedef struct tagTOOLINFOW {
     UINT32 cbSize;
@@ -1018,12 +1053,13 @@ typedef struct tagTOOLINFOW {
     HINSTANCE32 hinst;
     LPWSTR lpszText;
     LPARAM lParam;
-} TTTOOLINFO32W, *PTOOLINFO32W, *LPTTTOOLINFO32W;
+} TTTOOLINFO32W, *LPTOOLINFO32W, *PTOOLINFO32W, *LPTTTOOLINFO32W;
 
 #define TTTOOLINFO WINELIB_NAME_AW(TTTOOLINFO)
 #define TOOLINFO WINELIB_NAME_AW(TTTOOLINFO)
 #define PTOOLINFO WINELIB_NAME_AW(PTOOLINFO)
 #define LPTTTOOLINFO WINELIB_NAME_AW(LPTTTOOLINFO)
+#define LPTOOLINFO WINELIB_NAME_AW(LPTOOLINFO)
 
 #define TTTOOLINFO_V1_SIZE32A CCSIZEOF_STRUCT(TTTOOLINFO32A, lpszText)
 #define TTTOOLINFO_V1_SIZE32W CCSIZEOF_STRUCT(TTTOOLINFO32W, lpszText)
@@ -1073,6 +1109,12 @@ typedef struct tagNMTTDISPINFOW
 #define NMTTDISPINFO_V1_SIZE32W CCSIZEOF_STRUCT(NMTTDISPINFO32W, uFlags)
 #define NMTTDISPINFO_V1_SIZE WINELIB_NAME_AW(NMTTDISPINFO_V1_SIZE)
 
+#define TOOLTIPTEXTW    NMTTDISPINFO32W
+#define TOOLTIPTEXTA    NMTTDISPINFO32A
+#define TOOLTIPTEXT     NMTTDISPINFO
+#define LPTOOLTIPTEXTW  LPNMTTDISPINFOW
+#define LPTOOLTIPTEXTA  LPNMTTDISPINFOA
+#define LPTOOLTIPTEXT   LPNMTTDISPINFO
 
 /* Rebar control */
 
@@ -1647,6 +1689,9 @@ typedef struct tagTVINSERTSTRUCT {
         TV_ITEM item;
 } TVINSERTSTRUCT, *LPTVINSERTSTRUCT;
 
+#define TV_INSERTSTRUCT TVINSERTSTRUCT
+#define LPTV_INSERTSTRUCT LPTVINSERTSTRUCT
+
 typedef struct tagNMTREEVIEW {
 	NMHDR	hdr;
 	UINT32	action;
@@ -1660,7 +1705,17 @@ typedef struct tagTVDISPINFO {
 	TVITEM	item;
 } NMTVDISPINFO, *LPNMTVDISPINFO;
 
+typedef INT32 (CALLBACK *PFNTVCOMPARE)(LPARAM, LPARAM, LPARAM);
+
+typedef struct tagTVSORTCB
+{
+	HTREEITEM hParent;
+	PFNTVCOMPARE lpfnCompare;
+	LPARAM lParam;
+} TVSORTCB, *LPTVSORTCB;
 
+#define TV_SORTCB TVSORTCB
+#define LPTV_SORTCB LPTVSORTCB
 
 typedef struct tagTVHITTESTINFO {
         POINT32 pt;
@@ -1668,6 +1723,7 @@ typedef struct tagTVHITTESTINFO {
         HTREEITEM hItem;
 } TVHITTESTINFO, *LPTVHITTESTINFO;
 
+#define TV_HITTESTINFO TVHITTESTINFO
 
 #define TreeView_InsertItem(hwndHD, phdi) \
   (INT32)SendMessage32A((hwnd), TVM_INSERTITEM, 0, \
@@ -2161,6 +2217,25 @@ typedef struct tagLVHITTESTINFO
 #define _LV_HITTESTINFO tagLVHITTESTINFO
 #define LVHITTESTINFO_V1_SIZE CCSIZEOF_STRUCT(LVHITTESTINFO,iItem)
 
+typedef struct tagLVFINDINFO
+{
+	UINT32 flags;
+	LPCSTR psz;
+	LPARAM lParam;
+	POINT32 pt;
+	UINT32 vkDirection;
+} LVFINDINFO, *LPLVFINDINFO;
+
+#define LV_FINDINFO LVFINDINFO
+
+typedef struct tagTCHITTESTINFO
+{
+	POINT32 pt;
+	UINT32 flags;
+} TCHITTESTINFO, *LPTCHITTESTINFO;
+
+#define TC_HITTESTINFO TCHITTESTINFO
+
 typedef INT32 (CALLBACK *PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM);
 
 #define ListView_SetBkColor(hwnd,clrBk) \
@@ -2206,12 +2281,53 @@ typedef INT32 (CALLBACK *PFNLVCOMPARE)(LPARAM, LPARAM, LPARAM);
 
 #define WC_TABCONTROL		WINELIB_NAME_AW(WC_TABCONTROL)
 
+/* tab control styles */
+#define TCS_SCROLLOPPOSITE      0x0001   // assumes multiline tab
+#define TCS_BOTTOM              0x0002
+#define TCS_RIGHT               0x0002
+#define TCS_MULTISELECT         0x0004  // allow multi-select in button mode
+#define TCS_FORCEICONLEFT       0x0010
+#define TCS_FORCELABELLEFT      0x0020
+#define TCS_HOTTRACK            0x0040
+#define TCS_VERTICAL            0x0080
+#define TCS_TABS                0x0000
+#define TCS_BUTTONS             0x0100
+#define TCS_SINGLELINE          0x0000
+#define TCS_MULTILINE           0x0200
+#define TCS_RIGHTJUSTIFY        0x0000
+#define TCS_FIXEDWIDTH          0x0400
+#define TCS_RAGGEDRIGHT         0x0800
+#define TCS_FOCUSONBUTTONDOWN   0x1000
+#define TCS_OWNERDRAWFIXED      0x2000
+#define TCS_TOOLTIPS            0x4000
+#define TCS_FOCUSNEVER          0x8000
+
 #define TCM_FIRST		0x1300
 
+#define TCM_GETIMAGELIST        (TCM_FIRST + 2)
+#define TCM_SETIMAGELIST        (TCM_FIRST + 3)
 #define TCM_GETITEMCOUNT	(TCM_FIRST + 4)
+#define TCM_GETITEM             (TCM_FIRST + 5)
+#define TCM_SETITEM             (TCM_FIRST + 6)
 #define	TCM_INSERTITEM		(TCM_FIRST + 7)
+#define TCM_DELETEITEM          (TCM_FIRST + 8)
+#define TCM_DELETEALLITEMS      (TCM_FIRST + 9)
+#define TCM_GETITEMRECT         (TCM_FIRST + 10)
 #define TCM_GETCURSEL		(TCM_FIRST + 11)
+#define TCM_SETCURSEL           (TCM_FIRST + 12)
+#define TCM_HITTEST             (TCM_FIRST + 13)
 #define TCM_SETITEMEXTRA	(TCM_FIRST + 14)
+#define TCM_ADJUSTRECT          (TCM_FIRST + 40)
+#define TCM_SETITEMSIZE         (TCM_FIRST + 41)
+#define TCM_REMOVEIMAGE         (TCM_FIRST + 42)
+#define TCM_SETPADDING          (TCM_FIRST + 43)
+#define TCM_GETROWCOUNT         (TCM_FIRST + 44)
+#define TCM_GETTOOLTIPS         (TCM_FIRST + 45)
+#define TCM_SETTOOLTIPS         (TCM_FIRST + 46)
+#define TCM_GETCURFOCUS         (TCM_FIRST + 47)
+#define TCM_SETCURFOCUS         (TCM_FIRST + 48)
+#define TCM_SETMINTTABWIDTH     (TCM_FIRST + 49)
+#define TCM_DESELECTALL         (TCM_FIRST + 50)
 
 #define TCIF_TEXT		0x0001
 #define TCIF_IMAGE		0x0002
@@ -2508,10 +2624,31 @@ LRESULT WINAPI COMCTL32_SendNotifyEx (HWND32, HWND32, UINT32, LPNMHDR, DWORD);
  */
 struct _PROPSHEETPAGE32A;  /** need to forward declare those structs **/
 struct _PROPSHEETPAGE32W;
+struct _PSP;
+typedef struct _PSP *HPROPSHEETPAGE;
+
 
 typedef UINT32 (CALLBACK *LPFNPSPCALLBACK32A)(HWND32, UINT32, struct _PROPSHEETPAGE32A*);
 typedef UINT32 (CALLBACK *LPFNPSPCALLBACK32W)(HWND32, UINT32, struct _PROPSHEETPAGE32W*);
 typedef INT32  (CALLBACK *PFNPROPSHEETCALLBACK32)(HWND32, UINT32, LPARAM);
+typedef BOOL32 (CALLBACK *LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
+typedef BOOL32 (CALLBACK *LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE, LPARAM);
+
+/* c++ likes nameless unions whereas c doesnt */
+/* (used in property sheet structures)        */
+#ifdef __cplusplus
+#define DUMMYUNIONNAME1
+#define DUMMYUNIONNAME2
+#define DUMMYUNIONNAME3
+#define DUMMYUNIONNAME4
+#define DUMMYUNIONNAME5
+#else
+#define DUMMYUNIONNAME1  u1
+#define DUMMYUNIONNAME2  u2
+#define DUMMYUNIONNAME3  u3
+#define DUMMYUNIONNAME4  u4
+#define DUMMYUNIONNAME5  u5
+#endif
 
 /*
  * Property sheet support (structures)
@@ -2523,14 +2660,14 @@ typedef struct _PROPSHEETPAGE32A
     HINSTANCE32        hInstance;
     union 
     {
-        LPCSTR           lpszTemplate;
+        LPCSTR           pszTemplate;
         LPCDLGTEMPLATE   pResource;
-    }u;
+    }DUMMYUNIONNAME1;
     union
     {
         HICON32          hIcon;
         LPCSTR           pszIcon;
-    }u1;
+    }DUMMYUNIONNAME2;
     LPCSTR             pszTitle;
     DLGPROC32          pfnDlgProc;
     LPARAM             lParam;
@@ -2549,14 +2686,14 @@ typedef struct _PROPSHEETPAGE32W
     HINSTANCE32         hInstance;
     union 
     {
-        LPCWSTR          lpszTemplate;
+        LPCWSTR          pszTemplate;
         LPCDLGTEMPLATE   pResource;
-    }u;
+    }DUMMYUNIONNAME1;
     union
     {
         HICON32          hIcon;
         LPCWSTR          pszIcon;
-    }u2;
+    }DUMMYUNIONNAME2;
     LPCWSTR            pszTitle;
     DLGPROC32          pfnDlgProc;
     LPARAM             lParam;
@@ -2568,9 +2705,6 @@ typedef struct _PROPSHEETPAGE32W
 
 typedef const PROPSHEETPAGE32W *LPCPROPSHEETPAGE32W;
 
-struct _PSP;
-typedef struct _PSP *HPROPSHEETPAGE;
-
 
 typedef struct _PROPSHEETHEADER32A
 {
@@ -2582,31 +2716,31 @@ typedef struct _PROPSHEETHEADER32A
     {
       HICON32                  hIcon;
       LPCSTR                   pszIcon;
-    }u;
+    }DUMMYUNIONNAME1;
     LPCSTR                   pszCaption;
     UINT32                   nPages;
     union
     {
         UINT32                 nStartPage;
         LPCSTR                 pStartPage;
-    }u2;
+    }DUMMYUNIONNAME2;
     union
     {
         LPCPROPSHEETPAGE32A    ppsp;
         HPROPSHEETPAGE*        phpage;
-    }u3;
+    }DUMMYUNIONNAME3;
     PFNPROPSHEETCALLBACK32   pfnCallback;
     union
     {
         HBITMAP32              hbmWatermark;
         LPCSTR                 pszbmWatermark;
-    }u4;
+    }DUMMYUNIONNAME4;
     HPALETTE32               hplWatermark;
     union
     {
         HBITMAP32              hbmHeader;
         LPCSTR                 pszbmHeader;
-    }u5;
+    }DUMMYUNIONNAME5;
 } PROPSHEETHEADER32A, *LPPROPSHEETHEADER32A;
 
 typedef const PROPSHEETHEADER32A *LPCPROPSHEETHEADER32A;
@@ -2621,31 +2755,31 @@ typedef struct _PROPSHEETHEADER32W
     {
       HICON32                  hIcon;
       LPCSTR                   pszIcon;
-    }u;
+    }DUMMYUNIONNAME1;
     LPCWSTR                  pszCaption;
     UINT32                   nPages;
     union
     {
         UINT32                 nStartPage;
         LPCWSTR                pStartPage;
-    }u2;
+    }DUMMYUNIONNAME2;
     union
     {
         LPCPROPSHEETPAGE32W    ppsp;
         HPROPSHEETPAGE*        phpage;
-    }u3;
+    }DUMMYUNIONNAME3;
     PFNPROPSHEETCALLBACK32   pfnCallback;
     union
     {
         HBITMAP32              hbmWatermark;
         LPCWSTR                pszbmWatermark;
-    }u4;
+    }DUMMYUNIONNAME4;
     HPALETTE32               hplWatermark;
     union
     {
         HBITMAP32              hbmHeader;
         LPCWSTR                pszbmHeader;
-    }u5;
+    }DUMMYUNIONNAME5;
 } PROPSHEETHEADER32W, *LPPROPSHEETHEADER32W;
 
 typedef const PROPSHEETHEADER32W *LPCPROPSHEETHEADER32W;
@@ -2656,7 +2790,7 @@ typedef const PROPSHEETHEADER32W *LPCPROPSHEETHEADER32W;
  */
 INT32 WINAPI PropertySheet32A(LPCPROPSHEETHEADER32A);
 INT32 WINAPI PropertySheet32W(LPCPROPSHEETHEADER32W);
-#define PropertySheet WINELIB_NAME(PropertySheet)
+#define PropertySheet WINELIB_NAME_AW(PropertySheet)
 HPROPSHEETPAGE WINAPI CreatePropertySheetPage32A(LPCPROPSHEETPAGE32A);
 HPROPSHEETPAGE WINAPI  CreatePropertySheetPage32W(LPCPROPSHEETPAGE32W);
 #define CreatePropertySheetPage WINELIB_NAME_AW(CreatePropertySheetPage)
@@ -2675,6 +2809,178 @@ DECL_WINELIB_TYPE_AW(LPCPROPSHEETHEADER)
 DECL_WINELIB_TYPE_AW(LPFNPSPCALLBACK) 
 DECL_WINELIB_TYPE(PFNPROPSHEETCALLBACK) 
 
+/*
+ * Property sheet support (defines)
+ */
+#define PSP_DEFAULT             0x0000
+#define PSP_DLGINDIRECT         0x0001
+#define PSP_USEHICON            0x0002
+#define PSP_USEICONID           0x0004
+#define PSP_USETITLE            0x0008
+#define PSP_RTLREADING          0x0010
+
+#define PSP_HASHELP             0x0020
+#define PSP_USEREFPARENT        0x0040
+#define PSP_USECALLBACK         0x0080
+
+
+#define PSPCB_RELEASE           1
+#define PSPCB_CREATE            2
+
+#define PSH_DEFAULT             0x0000
+#define PSH_PROPTITLE           0x0001
+#define PSH_USEHICON            0x0002
+#define PSH_USEICONID           0x0004
+#define PSH_PROPSHEETPAGE       0x0008
+#define PSH_WIZARD              0x0020
+#define PSH_USEPSTARTPAGE       0x0040
+#define PSH_NOAPPLYNOW          0x0080
+#define PSH_USECALLBACK         0x0100
+#define PSH_HASHELP             0x0200
+#define PSH_MODELESS            0x0400
+#define PSH_RTLREADING          0x0800
+
+#define PSCB_INITIALIZED  1
+#define PSCB_PRECREATE    2
+
+#define PSN_FIRST               (0U-200U)
+#define PSN_LAST                (0U-299U)
+
+
+#define PSN_SETACTIVE           (PSN_FIRST-0)
+#define PSN_KILLACTIVE          (PSN_FIRST-1)
+// #define PSN_VALIDATE            (PSN_FIRST-1)
+#define PSN_APPLY               (PSN_FIRST-2)
+#define PSN_RESET               (PSN_FIRST-3)
+// #define PSN_CANCEL              (PSN_FIRST-3)
+#define PSN_HELP                (PSN_FIRST-5)
+#define PSN_WIZBACK             (PSN_FIRST-6)
+#define PSN_WIZNEXT             (PSN_FIRST-7)
+#define PSN_WIZFINISH           (PSN_FIRST-8)
+#define PSN_QUERYCANCEL         (PSN_FIRST-9)
+
+#define PSNRET_NOERROR              0
+#define PSNRET_INVALID              1
+#define PSNRET_INVALID_NOCHANGEPAGE 2
+ 
+
+#define PSM_SETCURSEL           (WM_USER + 101)
+#define PSM_REMOVEPAGE          (WM_USER + 102)
+#define PSM_ADDPAGE             (WM_USER + 103)
+#define PSM_CHANGED             (WM_USER + 104)
+#define PSM_RESTARTWINDOWS      (WM_USER + 105)
+#define PSM_REBOOTSYSTEM        (WM_USER + 106)
+#define PSM_CANCELTOCLOSE       (WM_USER + 107)
+#define PSM_QUERYSIBLINGS       (WM_USER + 108)
+#define PSM_UNCHANGED           (WM_USER + 109)
+#define PSM_APPLY               (WM_USER + 110)
+#define PSM_SETTITLE32A         (WM_USER + 111)
+#define PSM_SETTITLE32W         (WM_USER + 120)
+#define PSM_SETTITLE WINELIB_NAME_AW(PSM_SETTITLE)
+#define PSM_SETWIZBUTTONS       (WM_USER + 112)
+#define PSM_PRESSBUTTON         (WM_USER + 113)
+#define PSM_SETCURSELID         (WM_USER + 114)
+#define PSM_SETFINISHTEXT32A    (WM_USER + 115)
+#define PSM_SETFINISHTEXT32W    (WM_USER + 121)
+#define PSM_SETFINISHTEXT WINELIB_NAME_AW(PSM_SETFINISHTEXT)
+#define PSM_GETTABCONTROL       (WM_USER + 116)
+#define PSM_ISDIALOGMESSAGE     (WM_USER + 117)
+#define PSM_GETCURRENTPAGEHWND  (WM_USER + 118)
+
+#define PSWIZB_BACK             0x00000001
+#define PSWIZB_NEXT             0x00000002
+#define PSWIZB_FINISH           0x00000004
+#define PSWIZB_DISABLEDFINISH   0x00000008
+
+#define PSBTN_BACK              0
+#define PSBTN_NEXT              1
+#define PSBTN_FINISH            2
+#define PSBTN_OK                3
+#define PSBTN_APPLYNOW          4
+#define PSBTN_CANCEL            5
+#define PSBTN_HELP              6
+#define PSBTN_MAX               6
+
+#define ID_PSRESTARTWINDOWS     0x2
+#define ID_PSREBOOTSYSTEM       (ID_PSRESTARTWINDOWS | 0x1)
+
+
+#define WIZ_CXDLG               276
+#define WIZ_CYDLG               140
+
+#define WIZ_CXBMP               80
+
+#define WIZ_BODYX               92
+#define WIZ_BODYCX              184
+
+#define PROP_SM_CXDLG           212
+#define PROP_SM_CYDLG           188
+
+#define PROP_MED_CXDLG          227
+#define PROP_MED_CYDLG          215
+
+#define PROP_LG_CXDLG           252
+#define PROP_LG_CYDLG           218
+
+/*
+ * Property sheet support (macros)
+ */
+
+#define PropSheet_SetCurSel(hDlg, hpage, index) \
+	SNDMSG(hDlg, PSM_SETCURSEL, (WPARAM)index, (LPARAM)hpage)
+	 
+#define PropSheet_RemovePage(hDlg, index, hpage) \
+	SNDMSG(hDlg, PSM_REMOVEPAGE, index, (LPARAM)hpage)
+	 
+#define PropSheet_AddPage(hDlg, hpage) \
+	SNDMSG(hDlg, PSM_ADDPAGE, 0, (LPARAM)hpage)
+	 
+#define PropSheet_Changed(hDlg, hwnd) \
+	SNDMSG(hDlg, PSM_CHANGED, (WPARAM)hwnd, 0L)
+	 
+#define PropSheet_RestartWindows(hDlg) \
+	SNDMSG(hDlg, PSM_RESTARTWINDOWS, 0, 0L)
+	 
+#define PropSheet_RebootSystem(hDlg) \
+	SNDMSG(hDlg, PSM_REBOOTSYSTEM, 0, 0L)
+	 
+#define PropSheet_CancelToClose(hDlg) \
+	PostMessage(hDlg, PSM_CANCELTOCLOSE, 0, 0L)
+	 
+#define PropSheet_QuerySiblings(hDlg, wParam, lParam) \
+	SNDMSG(hDlg, PSM_QUERYSIBLINGS, wParam, lParam)
+	 
+#define PropSheet_UnChanged(hDlg, hwnd) \
+	SNDMSG(hDlg, PSM_UNCHANGED, (WPARAM)hwnd, 0L)
+	 
+#define PropSheet_Apply(hDlg) \
+	SNDMSG(hDlg, PSM_APPLY, 0, 0L)
+	  
+#define PropSheet_SetTitle(hDlg, wStyle, lpszText)\
+	SNDMSG(hDlg, PSM_SETTITLE, wStyle, (LPARAM)(LPCTSTR)lpszText)
+	 
+#define PropSheet_SetWizButtons(hDlg, dwFlags) \
+	PostMessage(hDlg, PSM_SETWIZBUTTONS, 0, (LPARAM)dwFlags)
+	 
+#define PropSheet_PressButton(hDlg, iButton) \
+	PostMessage(hDlg, PSM_PRESSBUTTON, (WPARAM)iButton, 0)
+	 
+#define PropSheet_SetCurSelByID(hDlg, id) \
+	SNDMSG(hDlg, PSM_SETCURSELID, 0, (LPARAM)id)
+
+#define PropSheet_SetFinishText(hDlg, lpszText) \
+	SNDMSG(hDlg, PSM_SETFINISHTEXT, 0, (LPARAM)lpszText)
+	 
+#define PropSheet_GetTabControl(hDlg) \
+	(HWND)SNDMSG(hDlg, PSM_GETTABCONTROL, 0, 0)
+	 
+#define PropSheet_IsDialogMessage(hDlg, pMsg) \
+	(BOOL)SNDMSG(hDlg, PSM_ISDIALOGMESSAGE, 0, (LPARAM)pMsg)
+	 
+#define PropSheet_GetCurrentPageHwnd(hDlg) \
+	(HWND)SNDMSG(hDlg, PSM_GETCURRENTPAGEHWND, 0, 0L)
+	 
+
 #ifdef __cplusplus
 }
 #endif
diff --git a/include/commdlg.h b/include/commdlg.h
index 69bfabe1027..1ff96252bb2 100644
--- a/include/commdlg.h
+++ b/include/commdlg.h
@@ -116,6 +116,23 @@ typedef struct {
 DECL_WINELIB_TYPE_AW(OPENFILENAME)
 DECL_WINELIB_TYPE_AW(LPOPENFILENAME)
 
+typedef struct
+{
+	NMHDR           hdr;
+	LPOPENFILENAME32A lpOFN;
+	LPSTR           pszFile;
+} OFNOTIFY32A, *LPOFNOTIFY32A;
+
+typedef struct
+{
+	NMHDR           hdr;
+	LPOPENFILENAME32W lpOFN;
+	LPWSTR          pszFile;
+} OFNOTIFY32W, *LPOFNOTIFY32W;
+
+DECL_WINELIB_TYPE_AW(OFNOTIFY)
+DECL_WINELIB_TYPE_AW(LPOFNOTIFY)
+ 
 typedef UINT32 (CALLBACK *LPCCHOOKPROC) (HWND32, UINT32, WPARAM32, LPARAM);
 
 typedef struct {
@@ -361,6 +378,28 @@ DECL_WINELIB_TYPE_AW(LPCHOOSEFONT)
 #define CD_LBSELSUB      1
 #define CD_LBSELADD      2
 
+#define CDN_FIRST   (0U-601U)
+#define CDN_LAST    (0U-699U)
+
+#define CDN_INITDONE            (CDN_FIRST - 0x0000)
+#define CDN_SELCHANGE           (CDN_FIRST - 0x0001)
+#define CDN_FOLDERCHANGE        (CDN_FIRST - 0x0002)
+#define CDN_SHAREVIOLATION      (CDN_FIRST - 0x0003)
+#define CDN_HELP                (CDN_FIRST - 0x0004)
+#define CDN_FILEOK              (CDN_FIRST - 0x0005)
+#define CDN_TYPECHANGE          (CDN_FIRST - 0x0006)
+
+#define CDM_FIRST               (WM_USER + 100)
+#define CDM_LAST                (WM_USER + 200)
+
+#define CDM_GETSPEC             (CDM_FIRST + 0x0000)
+#define CDM_GETFILEPATH         (CDM_FIRST + 0x0001)
+#define CDM_GETFOLDERPATH       (CDM_FIRST + 0x0002)
+#define CDM_GETFOLDERLIST       (CDM_FIRST + 0x0003)
+#define CDM_SETCONTROLTEXT      (CDM_FIRST + 0x0004)
+#define CDM_HIDECONTROL         (CDM_FIRST + 0x0005)
+#define CDM_SETDEFEXT           (CDM_FIRST + 0x0006)
+
 typedef struct
 {
     DWORD            lStructSize;
@@ -387,7 +426,7 @@ typedef struct
 typedef UINT32 (CALLBACK *LPPRINTHOOKPROC) (HWND32, UINT32, WPARAM32, LPARAM);
 typedef UINT32 (CALLBACK *LPSETUPHOOKPROC) (HWND32, UINT32, WPARAM32, LPARAM);
 
-typedef struct
+typedef struct tagPDA
 {
     DWORD            lStructSize;
     HWND32           hwndOwner;
@@ -410,7 +449,7 @@ typedef struct
     HGLOBAL32        hSetupTemplate;
 } PRINTDLG32A, *LPPRINTDLG32A;
 
-typedef struct
+typedef struct tagPDW
 {
     DWORD            lStructSize;
     HWND32           hwndOwner;
@@ -459,6 +498,17 @@ DECL_WINELIB_TYPE_AW(LPPRINTDLG)
 #define PD_DISABLEPRINTTOFILE        0x00080000
 #define PD_HIDEPRINTTOFILE           0x00100000
 
+typedef enum __MIDL_IPrint_0001
+{
+	PRINTFLAG_MAYBOTHERUSER = 1,
+	PRINTFLAG_PROMPTUSER    = 2,
+	PRINTFLAG_USERMAYCHANGEPRINTER  = 4,
+	PRINTFLAG_RECOMPOSETODEVICE     = 8,
+	PRINTFLAG_DONTACTUALLYPRINT     = 16,
+	PRINTFLAG_FORCEPROPERTIES       = 32,
+	PRINTFLAG_PRINTTOFILE   = 64
+} PRINTFLAG;
+ 
 typedef struct {
 	UINT16 	wDriverOffset;
 	UINT16 	wDeviceOffset;
@@ -485,6 +535,20 @@ typedef DEVNAMES * LPDEVNAMES;
 #define CDERR_NOHOOK           0x000B
 #define CDERR_REGISTERMSGFAIL  0x000C
 
+#define PDERR_PRINTERCODES     0x1000
+#define PDERR_SETUPFAILURE     0x1001
+#define PDERR_PARSEFAILURE     0x1002
+#define PDERR_RETDEFFAILURE    0x1003
+#define PDERR_LOADDRVFAILURE   0x1004
+#define PDERR_GETDEVMODEFAIL   0x1005
+#define PDERR_INITFAILURE      0x1006
+#define PDERR_NODEVICES        0x1007
+#define PDERR_NODEFAULTPRN     0x1008
+#define PDERR_DNDMMISMATCH     0x1009
+#define PDERR_CREATEICFAILURE  0x100A
+#define PDERR_PRINTERNOTFOUND  0x100B
+#define PDERR_DEFAULTDIFFERENT 0x100C
+
 /* PageSetupDlg stuff ... */
 #define WM_PSD_PAGESETUPDLG	(WM_USER  )
 #define WM_PSD_FULLPAGERECT	(WM_USER+1)
diff --git a/include/ddeml.h b/include/ddeml.h
index 0f5838460e3..79c12f00a03 100644
--- a/include/ddeml.h
+++ b/include/ddeml.h
@@ -10,6 +10,8 @@
 
 #include "wintypes.h"
 
+#define MSGF_DDEMGR 0x8001
+
 typedef DWORD HCONVLIST;
 typedef DWORD HCONV;
 typedef DWORD HSZ;
diff --git a/include/mouse.h b/include/mouse.h
index 703384c7b91..7c0c88a13ca 100644
--- a/include/mouse.h
+++ b/include/mouse.h
@@ -43,5 +43,39 @@ typedef struct _WINE_MOUSEEVENT
 void MOUSE_SendEvent( DWORD mouseStatus, DWORD posX, DWORD posY,
                       DWORD keyState, DWORD time, HWND32 hWnd );
 
+/***********************************
+ * 	MouseWheel support (defines)
+ */
+
+#define MSH_MOUSEWHEEL "MSWHEEL_ROLLMSG"
+
+#define WHEEL_DELTA      120
+
+#ifndef WM_MOUSEWHEEL
+#define WM_MOUSEWHEEL (WM_MOUSELAST+1)
+#endif
+
+#define MOUSEZ_CLASSNAME  "MouseZ"          
+#define MOUSEZ_TITLE      "Magellan MSWHEEL"
+
+#define MSH_WHEELMODULE_CLASS (MOUSEZ_CLASSNAME)
+#define MSH_WHEELMODULE_TITLE (MOUSEZ_TITLE)
+
+#define MSH_WHEELSUPPORT "MSH_WHEELSUPPORT_MSG"
+
+#define MSH_SCROLL_LINES "MSH_SCROLL_LINES_MSG"
+
+#ifndef  WHEEL_PAGESCROLL  
+#define WHEEL_PAGESCROLL  (UINT_MAX)
+#endif 
+
+#ifndef SPI_SETWHEELSCROLLLINES
+#define SPI_SETWHEELSCROLLLINES   105
+#endif
+
+
+/* 	MouseWheel support
+***********************************/
+
 #endif /* __WINE_MOUSE_H */
 
diff --git a/include/shlobj.h b/include/shlobj.h
index 5d482338c06..c2c5db63925 100644
--- a/include/shlobj.h
+++ b/include/shlobj.h
@@ -568,9 +568,6 @@ typedef struct
 
 typedef const FOLDERSETTINGS * LPCFOLDERSETTINGS;
 
-typedef BOOL32 (CALLBACK FAR * LPFNADDPROPSHEETPAGE)(HPROPSHEETPAGE, LPARAM);
-typedef BOOL32 (CALLBACK FAR * LPFNADDPROPSHEETPAGES)(LPVOID, LPFNADDPROPSHEETPAGE,LPARAM);
-
 /************************************************************************
  * IShellFolder interface
  */
diff --git a/include/winbase.h b/include/winbase.h
index 1f32748bd33..3dbc9b90122 100644
--- a/include/winbase.h
+++ b/include/winbase.h
@@ -117,7 +117,7 @@ extern "C" {
 typedef struct 
 {
   int type;
-} exception;
+} wine_exception;
 
 typedef struct 
 {
diff --git a/include/windows.h b/include/windows.h
index 9e29b140312..fb0043a8144 100644
--- a/include/windows.h
+++ b/include/windows.h
@@ -219,7 +219,7 @@ typedef struct
     INT16   cx;
     INT16   cy;
     UINT16  flags;
-} WINDOWPOS16;
+} WINDOWPOS16, *LPWINDOWPOS16;
 
 typedef struct
 {
@@ -230,9 +230,10 @@ typedef struct
     INT32   cx;
     INT32   cy;
     UINT32  flags;
-} WINDOWPOS32;
+} WINDOWPOS32, *LPWINDOWPOS32;
 
 DECL_WINELIB_TYPE(WINDOWPOS)
+DECL_WINELIB_TYPE(LPWINDOWPOS)
 
   /* SetWindowPlacement() struct */
 typedef struct
@@ -327,6 +328,8 @@ DECL_WINELIB_TYPE(LPNCCALCSIZE_PARAMS)
 #define HTOBJECT            19
 #define HTCLOSE             20
 #define HTHELP              21
+#define HTSIZEFIRST         HTLEFT
+#define HTSIZELAST          HTBOTTOMRIGHT
 
   /* WM_SYSCOMMAND parameters */
 #ifdef SC_SIZE /* at least HP-UX: already defined in /usr/include/sys/signal.h */
@@ -1012,9 +1015,9 @@ typedef struct {
     LPSID Group;
     LPACL Sacl;
     LPACL Dacl;
-} SECURITY_DESCRIPTOR, *LPSECURITY_DESCRIPTOR;
+} SECURITY_DESCRIPTOR, *PSECURITY_DESCRIPTOR, *LPSECURITY_DESCRIPTOR;
 
-typedef DWORD   SECURITY_INFORMATION;
+typedef DWORD SECURITY_INFORMATION;
 
 
 /* 64 bit number of 100 nanoseconds intervals since January 1, 1601 */
@@ -1164,7 +1167,7 @@ DECL_WINELIB_TYPE_AW(LPWIN32_FIND_DATA)
 
 #define CN_RECEIVE	0x0001
 #define CN_TRANSMIT	0x0002
-#define CN_EVENT	0x0004
+/*#define CN_EVENT	0x0004*/
 
 typedef struct tagDCB16
 {
@@ -1596,6 +1599,10 @@ typedef struct tagHIGHCONTRASTW
 #define IDC_SIZENS32A      MAKEINTRESOURCE32A(32645)
 #define IDC_SIZENS32W      MAKEINTRESOURCE32W(32645)
 #define IDC_SIZENS         WINELIB_NAME_AW(IDC_SIZENS)
+#define IDC_SIZEALL16      MAKEINTRESOURCE16(32646)
+#define IDC_SIZEALL32A     MAKEINTRESOURCE32A(32646)
+#define IDC_SIZEALL32W     MAKEINTRESOURCE32W(32646)
+#define IDC_SIZEALL        WINELIB_NAME_AW(IDC_SIZEALL)
 #define IDC_NO16           MAKEINTRESOURCE16(32648)
 #define IDC_NO32A          MAKEINTRESOURCE32A(32648)
 #define IDC_NO32W          MAKEINTRESOURCE32W(32648)
@@ -1737,6 +1744,7 @@ typedef struct
 #define WM_SHOWWINDOW           0x0018
 #define WM_CTLCOLOR             0x0019
 #define WM_WININICHANGE         0x001a
+#define WM_SETTINGCHANGE        WM_WININICHANGE
 #define WM_DEVMODECHANGE        0x001b
 #define WM_ACTIVATEAPP          0x001c
 #define WM_FONTCHANGE           0x001d
@@ -1791,7 +1799,7 @@ typedef struct
 #define WM_CONTEXTMENU		0x007b
 #define WM_STYLECHANGING 	0x007c
 #define WM_STYLECHANGED		0x007d
-
+#define WM_DISPLAYCHANGE        0x007e
 #define WM_GETICON		0x007f
 #define WM_SETICON		0x0080
 
@@ -3390,6 +3398,8 @@ DECL_WINELIB_TYPE(LPCOMPAREITEMSTRUCT)
 #define LMEM_DISCARDED	    0x4000
 #define LMEM_LOCKCOUNT	    0x00FF
 
+#define LPTR (LMEM_FIXED | LMEM_ZEROINIT)
+
 #define GMEM_FIXED          0x0000
 #define GMEM_MOVEABLE       0x0002
 #define GMEM_NOCOMPACT      0x0010
@@ -4848,8 +4858,9 @@ BOOL32      WINAPI GetFileAttributesEx32A(LPCSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
 BOOL32      WINAPI GetFileAttributesEx32W(LPCWSTR,GET_FILEEX_INFO_LEVELS,LPVOID);
 #define     GetFileattributesEx WINELIB_NAME_AW(GetFileAttributesEx)
 DWORD       WINAPI GetFileInformationByHandle(HFILE32,BY_HANDLE_FILE_INFORMATION*);
-BOOL32      WINAPI GetFileSecurityA(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
-BOOL32      WINAPI GetFileSecurityW(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
+BOOL32      WINAPI GetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
+BOOL32      WINAPI GetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR,DWORD,LPDWORD);
+#define     GetFileSecurity WINELIB_NAME_AW(GetFileSecurity)
 DWORD       WINAPI GetFileSize(HFILE32,LPDWORD);
 BOOL32      WINAPI GetFileTime(HFILE32,LPFILETIME,LPFILETIME,LPFILETIME);
 DWORD       WINAPI GetFileType(HFILE32);
@@ -4864,6 +4875,8 @@ DWORD       WINAPI GetLogicalDrives(void);
 DWORD       WINAPI GetLongPathName32A(LPCSTR,LPSTR,DWORD);
 DWORD       WINAPI GetLongPathName32W(LPCWSTR,LPWSTR,DWORD);
 #define     GetLongPathName WINELIB_NAME_AW(GetLongPathName)
+DWORD       WINAPI GetMenuContextHelpId32(HMENU32);
+#define     GetMenuContextHelpId WINELIB_NAME(GetMenuContextHelpId)
 UINT32      WINAPI GetMenuDefaultItem32(HMENU32,UINT32,UINT32);
 #define     GetMenuDefaultItem WINELIB_NAME(GetMenuDefaultItem)
 BOOL32      WINAPI GetMenuItemInfo32A(HMENU32,UINT32,BOOL32,MENUITEMINFO32A*);
@@ -4877,6 +4890,7 @@ BOOL32      WINAPI GetNumberOfConsoleMouseButtons(LPDWORD);
 UINT32      WINAPI GetOEMCP(void);
 DWORD       WINAPI GetPriorityClass(HANDLE32);
 HANDLE32    WINAPI GetProcessHeap(void);
+DWORD       WINAPI GetProcessVersion(DWORD);
 DWORD       WINAPI GetShortPathName32A(LPCSTR,LPSTR,DWORD);
 DWORD       WINAPI GetShortPathName32W(LPCWSTR,LPWSTR,DWORD);
 #define     GetShortPathName WINELIB_NAME_AW(GetShortPathName)
@@ -4966,6 +4980,9 @@ HANDLE32    WINAPI OpenService32A(HANDLE32,LPCSTR,DWORD);
 HANDLE32    WINAPI OpenService32W(HANDLE32,LPCWSTR,DWORD);
 #define     OpenService WINELIB_NAME_AW(OpenService)
 BOOL32      WINAPI PaintDesktop(HDC32);
+BOOL32      WINAPI PostThreadMessage32A(DWORD, UINT32, WPARAM32, LPARAM);
+BOOL32      WINAPI PostThreadMessage32W(DWORD, UINT32, WPARAM32, LPARAM);
+#define     PostThreadMessage WINELIB_NAME_AW(PostThreadMessage)
 BOOL32      WINAPI PulseEvent(HANDLE32);
 BOOL32      WINAPI PurgeComm(HANDLE32,DWORD);
 DWORD       WINAPI QueryDosDevice32A(LPCSTR,LPSTR,DWORD);
@@ -5026,12 +5043,16 @@ LONG        WINAPI RegUnLoadKey32W(HKEY,LPCWSTR);
 BOOL32      WINAPI ReleaseSemaphore(HANDLE32,LONG,LPLONG);
 BOOL32      WINAPI ResetEvent(HANDLE32);
 DWORD       WINAPI ResumeThread(HANDLE32);
+UINT32      WINAPI ReuseDDElParam(UINT32,UINT32,UINT32,UINT32,UINT32);
 VOID        WINAPI RtlFillMemory(LPVOID,UINT32,UINT32);
 VOID        WINAPI RtlMoveMemory(LPVOID,LPCVOID,UINT32);
 VOID        WINAPI RtlZeroMemory(LPVOID,UINT32);
 DWORD       WINAPI SearchPath32A(LPCSTR,LPCSTR,LPCSTR,DWORD,LPSTR,LPSTR*);
 DWORD       WINAPI SearchPath32W(LPCWSTR,LPCWSTR,LPCWSTR,DWORD,LPWSTR,LPWSTR*);
 #define     SearchPath WINELIB_NAME(SearchPath)
+BOOL32      WINAPI SendNotifyMessage32A(HWND32,UINT32,WPARAM32,LPARAM);
+BOOL32      WINAPI SendNotifyMessage32W(HWND32,UINT32,WPARAM32,LPARAM);
+#define     SendNotifyMessage WINELIB_NAME_AW(SendNotifyMessage)
 BOOL32      WINAPI SetCommMask(INT32,DWORD);
 BOOL32      WINAPI SetCommTimeouts(INT32,LPCOMMTIMEOUTS);
 BOOL32      WINAPI SetComputerName32A(LPCSTR);
@@ -5051,6 +5072,9 @@ BOOL32      WINAPI SetEvent(HANDLE32);
 VOID        WINAPI SetFileApisToANSI(void);
 VOID        WINAPI SetFileApisToOEM(void);
 DWORD       WINAPI SetFilePointer(HFILE32,LONG,LPLONG,DWORD);
+BOOL32      WINAPI SetFileSecurity32A(LPCSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR);
+BOOL32      WINAPI SetFileSecurity32W(LPCWSTR,SECURITY_INFORMATION,LPSECURITY_DESCRIPTOR);
+#define     SetFileSecurity WINELIB_NAME_AW(SetFileSecurity)
 BOOL32      WINAPI SetFileTime(HFILE32,const FILETIME*,const FILETIME*,
                                const FILETIME*);
 BOOL32      WINAPI SetHandleInformation(HANDLE32,DWORD,DWORD);
@@ -5085,6 +5109,7 @@ BOOL32      WINAPI TlsSetValue(DWORD,LPVOID);
 VOID        WINAPI UnMapLS(SEGPTR);
 BOOL32      WINAPI UnlockFile(HFILE32,DWORD,DWORD,DWORD,DWORD);
 BOOL32      WINAPI UnmapViewOfFile(LPVOID);
+UINT32      WINAPI UnpackDDElParam(UINT32,UINT32,UINT32*,UINT32*);
 LPVOID      WINAPI VirtualAlloc(LPVOID,DWORD,DWORD,DWORD);
 BOOL32      WINAPI VirtualFree(LPVOID,DWORD,DWORD);
 BOOL32      WINAPI VirtualLock(LPVOID,DWORD);
@@ -6209,7 +6234,7 @@ HACCEL32    WINAPI LoadAccelerators32W(HINSTANCE32,LPCWSTR);
 HBITMAP16   WINAPI LoadBitmap16(HANDLE16,SEGPTR);
 HBITMAP32   WINAPI LoadBitmap32A(HANDLE32,LPCSTR);
 HBITMAP32   WINAPI LoadBitmap32W(HANDLE32,LPCWSTR);
-#define     LoadBitmap WINELIB_NAME(LoadBitmap)
+#define     LoadBitmap WINELIB_NAME_AW(LoadBitmap)
 HCURSOR16   WINAPI LoadCursor16(HINSTANCE16,SEGPTR);
 HCURSOR32   WINAPI LoadCursor32A(HINSTANCE32,LPCSTR);
 HCURSOR32   WINAPI LoadCursor32W(HINSTANCE32,LPCWSTR);
@@ -6589,6 +6614,9 @@ void        WINAPI SetInternalWindowPos32(HWND32,UINT32,LPRECT32,LPPOINT32);
 BOOL16      WINAPI SetMenu16(HWND16,HMENU16);
 BOOL32      WINAPI SetMenu32(HWND32,HMENU32);
 #define     SetMenu WINELIB_NAME(SetMenu)
+BOOL16      WINAPI SetMenuContextHelpId16(HMENU16,DWORD);
+BOOL32      WINAPI SetMenuContextHelpId32(HMENU32,DWORD);
+#define     SetMenuContextHelpId WINELIB_NAME(SetMenuContextHelpId)
 BOOL16      WINAPI SetMenuItemBitmaps16(HMENU16,UINT16,UINT16,HBITMAP16,HBITMAP16);
 BOOL32      WINAPI SetMenuItemBitmaps32(HMENU32,UINT32,UINT32,HBITMAP32,HBITMAP32);
 #define     SetMenuItemBitmaps WINELIB_NAME(SetMenuItemBitmaps)
@@ -6674,9 +6702,9 @@ BOOL32      WINAPI SetWindowPos32(HWND32,HWND32,INT32,INT32,INT32,INT32,WORD);
 INT16       WINAPI SetWindowRgn16(HWND16,HRGN16,BOOL16);
 INT32       WINAPI SetWindowRgn32(HWND32,HRGN32,BOOL32);
 #define     SetWindowRgn WINELIB_NAME(SetWindowRgn)
-void        WINAPI SetWindowText16(HWND16,SEGPTR);
-void        WINAPI SetWindowText32A(HWND32,LPCSTR);
-void        WINAPI SetWindowText32W(HWND32,LPCWSTR);
+BOOL16      WINAPI SetWindowText16(HWND16,SEGPTR);
+BOOL32      WINAPI SetWindowText32A(HWND32,LPCSTR);
+BOOL32      WINAPI SetWindowText32W(HWND32,LPCWSTR);
 #define     SetWindowText WINELIB_NAME_AW(SetWindowText)
 WORD        WINAPI SetWindowWord16(HWND16,INT16,WORD);
 WORD        WINAPI SetWindowWord32(HWND32,INT32,WORD);
diff --git a/include/winerror.h b/include/winerror.h
index 588da558e63..90a593cecbc 100644
--- a/include/winerror.h
+++ b/include/winerror.h
@@ -26,7 +26,9 @@ extern int WIN32_LastError;
 #define SEVERITY_SUCCESS    0
 #define SEVERITY_ERROR      1
 
+#define NO_ERROR                    0
 #define ERROR_SUCCESS               0
+#define ERROR_INVALID_FUNCTION      1
 #define ERROR_FILE_NOT_FOUND        2
 #define ERROR_PATH_NOT_FOUND        3
 #define ERROR_TOO_MANY_OPEN_FILES   4
@@ -37,30 +39,87 @@ extern int WIN32_LastError;
 #define ERROR_INVALID_ACCESS        12
 #define ERROR_INVALID_DATA          13
 #define ERROR_OUTOFMEMORY           14
+#define ERROR_INVALID_DRIVE         15
+#define ERROR_CURRENT_DIRECTORY     16
+#define ERROR_NOT_SAME_DEVICE       17
 #define ERROR_NO_MORE_FILES         18
+#define ERROR_WRITE_PROTECT         19
+#define ERROR_BAD_UNIT              20
+#define ERROR_NOT_READY             21
+#define ERROR_BAD_COMMAND           22
+#define ERROR_CRC                   23
+#define ERROR_BAD_LENGTH            24
+#define ERROR_SEEK                  25
+#define ERROR_NOT_DOS_DISK          26
+#define ERROR_SECTOR_NOT_FOUND      27
+#define ERROR_WRITE_FAULT           29
+#define ERROR_READ_FAULT            30
+#define ERROR_ALREADY_ASSIGNED      85
+#define ERROR_INVALID_PASSWORD      86
+#define ERROR_NET_WRITE_FAULT       88
 #define ERROR_SHARING_VIOLATION     32
 #define ERROR_LOCK_VIOLATION        33
+#define ERROR_WRONG_DISK            34
+#define ERROR_SHARING_BUFFER_EXCEEDED 36
+#define ERROR_HANDLE_EOF            38
+#define ERROR_HANDLE_DISK_FULL      39
 #define ERROR_DUP_NAME              52
 #define ERROR_BAD_NETPATH           53
+#define ERROR_NETWORK_BUSY          54
+#define ERROR_DEV_NOT_EXIST         55
+#define ERROR_ADAP_HDW_ERR          57
+#define ERROR_BAD_NET_RESP          58
+#define ERROR_UNEXP_NET_ERR         59
+#define ERROR_BAD_REM_ADAP          60
+#define ERROR_NO_SPOOL_SPACE        62
+#define ERROR_NETNAME_DELETED       64
+#define ERROR_NETWORK_ACCESS_DENIED 65
+#define ERROR_BAD_DEV_TYPE          66
+#define ERROR_BAD_NET_NAME          67
+#define ERROR_TOO_MANY_NAMES        68
+#define ERROR_SHARING_PAUSED        70
+#define ERROR_REQ_NOT_ACCEP         71
 #define ERROR_FILE_EXISTS           80
 #define ERROR_CANNOT_MAKE           82
 #define ERROR_INVALID_PARAMETER     87
+#define ERROR_DISK_CHANGE           107
+#define ERROR_DRIVE_LOCKED          108
 #define ERROR_BROKEN_PIPE           109
+#define ERROR_BUFFER_OVERFLOW       111
 #define ERROR_DISK_FULL             112
+#define ERROR_NO_MORE_SEARCH_HANDLES 113
+#define ERROR_INVALID_TARGET_HANDLE 114
+#define ERROR_INVALID_CATEGORY      117
 #define ERROR_CALL_NOT_IMPLEMENTED  120
 #define ERROR_INSUFFICIENT_BUFFER   122
+#define ERROR_INVALID_NAME          123
+#define ERROR_INVALID_LEVEL         124
+#define ERROR_NO_VOLUME_LABEL       125
+#define ERROR_NEGATIVE_SEEK         131
 #define ERROR_SEEK_ON_DEVICE        132
+#define ERROR_DIR_NOT_ROOT          144
 #define ERROR_DIR_NOT_EMPTY         145
+#define ERROR_LABEL_TOO_LONG        154
 #define ERROR_BAD_PATHNAME          161
+#define ERROR_LOCK_FAILED           167
 #define ERROR_BUSY                  170
+#define ERROR_INVALID_ORDINAL       182
 #define ERROR_ALREADY_EXISTS        183
+#define ERROR_INVALID_EXE_SIGNATURE 191
+#define ERROR_BAD_EXE_FORMAT        193
 #define ERROR_FILENAME_EXCED_RANGE  206
+#define ERROR_META_EXPANSION_TOO_LONG 208
 #define ERROR_MORE_DATA             234
 #define ERROR_NO_MORE_ITEMS         259
+#define ERROR_DIRECTORY             267
 #define ERROR_NOT_OWNER             288
 #define ERROR_TOO_MANY_POSTS        298
 #define ERROR_INVALID_ADDRESS       487
+#define ERROR_OPERATION_ABORTED     995
+#define ERROR_IO_INCOMPLETE         996
+#define ERROR_IO_PENDING            997
 #define ERROR_INVALID_ACCESS_TO_MEM 998 
+#define ERROR_SWAPERROR             999
 #define ERROR_CAN_NOT_COMPLETE      1003
 #define ERROR_BADKEY                1010 /* Config reg key invalid */
 #define ERROR_CANTREAD              1012 /* Config reg key couldn't be read */
diff --git a/include/wingdi.h b/include/wingdi.h
index 14595af46c2..68216c09b94 100644
--- a/include/wingdi.h
+++ b/include/wingdi.h
@@ -5,6 +5,12 @@
 
 #pragma pack(1)
 
+typedef struct _ABCFLOAT {
+    FLOAT   abcfA;
+    FLOAT   abcfB;
+    FLOAT   abcfC;
+} ABCFLOAT, *PABCFLOAT, *LPABCFLOAT;
+
 typedef struct
 {
     WORD   wFirst;
@@ -75,6 +81,22 @@ typedef struct tagPIXELFORMATDESCRIPTOR {
     DWORD dwDamageMask;
 } PIXELFORMATDESCRIPTOR, *LPPIXELFORMATDESCRIPTOR;
 
+typedef struct tagCOLORADJUSTMENT
+{
+	WORD   caSize;
+	WORD   caFlags;
+	WORD   caIlluminantIndex;
+	WORD   caRedGamma;
+	WORD   caGreenGamma;
+	WORD   caBlueGamma;
+	WORD   caReferenceBlack;
+	WORD   caReferenceWhite;
+	SHORT  caContrast;
+	SHORT  caBrightness;
+	SHORT  caColorfulness;
+	SHORT  caRedGreenTint;
+} COLORADJUSTMENT, *PCOLORADJUSTMENT, *LPCOLORADJUSTMENT;
+         
   /* Raster operations */
 
 #define R2_BLACK         1
@@ -1019,6 +1041,16 @@ typedef struct
 DECL_WINELIB_TYPE(LOGPEN)
 DECL_WINELIB_TYPE(LPLOGPEN)
 
+typedef struct tagEXTLOGPEN
+{
+	DWORD elpPenStyle;
+	DWORD elpWidth;
+	DWORD elpBrushStyle;
+	DWORD elpColor;
+	DWORD elpNumEntries;
+	DWORD elpStyleEntry[1];
+} EXTLOGPEN, *PEXTLOGPEN, *NPEXTLOGPEN, *LPEXTLOGPEN;
+
 #define PS_SOLID         0x00000000
 #define PS_DASH          0x00000001
 #define PS_DOT           0x00000002
@@ -1895,12 +1927,30 @@ typedef struct _RGNDATA {
 
 #pragma pack(4)
 
+/* Declarations for functions that exist only in Win32 */
+
+BOOL32      WINAPI AngleArc32(HDC32, INT32, INT32, DWORD, FLOAT, FLOAT);
+BOOL32      WINAPI ArcTo32(HDC32, INT32, INT32, INT32, INT32, INT32, INT32, INT32, INT32); 
+HENHMETAFILE32 WINAPI CloseEnhMetaFile32(HDC32);
+HBRUSH32    WINAPI CreateDIBPatternBrushPt(BITMAPINFO*,UINT32);
+HDC32       WINAPI CreateEnhMetaFile32A(HDC32,LPCSTR,const RECT32*,LPCSTR);
+HDC32       WINAPI CreateEnhMetaFile32W(HDC32,LPCWSTR,const RECT32*,LPCWSTR);
+#define     CreateEnhMetaFile WINELIB_NAME_AW(CreateEnhMetaFile)
+INT32       WINAPI DrawEscape32(HDC32,INT32,INT32,LPCSTR);
 INT16       WINAPI ExcludeVisRect(HDC16,INT16,INT16,INT16,INT16);
 BOOL16      WINAPI FastWindowFrame(HDC16,const RECT16*,INT16,INT16,DWORD);
 UINT16      WINAPI GDIRealizePalette(HDC16);
 HPALETTE16  WINAPI GDISelectPalette(HDC16,HPALETTE16,WORD);
+BOOL32      WINAPI GdiComment32(HDC32,UINT32,const BYTE *);
 DWORD       WINAPI GetBitmapDimension(HBITMAP16);
 DWORD       WINAPI GetBrushOrg(HDC16);
+BOOL32      WINAPI GetCharABCWidthsFloat32A(HDC32,UINT32,UINT32,LPABCFLOAT);
+BOOL32      WINAPI GetCharABCWidthsFloat32W(HDC32,UINT32,UINT32,LPABCFLOAT);
+#define     GetCharABCWidthsFloat WINELIB_NAME_AW(GetCharABCWidthsFloat)
+BOOL32      WINAPI GetCharWidthFloat32A(HDC32,UINT32,UINT32,PFLOAT);
+BOOL32      WINAPI GetCharWidthFloat32W(HDC32,UINT32,UINT32,PFLOAT);
+#define     GetCharWidthFloat WINELIB_NAME_AW(GetCharWidthFloat)
+BOOL32      WINAPI GetColorAdjustment32(HDC32, LPCOLORADJUSTMENT);
 HFONT16     WINAPI GetCurLogFont(HDC16);
 DWORD       WINAPI GetCurrentPosition(HDC16);
 DWORD       WINAPI GetDCHook(HDC16,FARPROC16*);
@@ -1908,6 +1958,7 @@ DWORD       WINAPI GetDCOrg(HDC16);
 HDC16       WINAPI GetDCState(HDC16);
 INT16       WINAPI GetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
 HGLOBAL16   WINAPI GetMetaFileBits(HMETAFILE16);
+BOOL32      WINAPI GetMiterLimit(HDC32, PFLOAT);
 DWORD       WINAPI GetTextExtent(HDC16,LPCSTR,INT16);
 DWORD       WINAPI GetViewportExt(HDC16);
 DWORD       WINAPI GetViewportOrg(HDC16);
@@ -1918,10 +1969,13 @@ INT16       WINAPI IntersectVisRect(HDC16,INT16,INT16,INT16,INT16);
 BOOL16      WINAPI IsDCCurrentPalette(HDC16);
 BOOL16      WINAPI IsGDIObject(HGDIOBJ16);
 BOOL16      WINAPI IsValidMetaFile(HMETAFILE16);
+BOOL32      WINAPI MaskBlt(HDC32,INT32,INT32,INT32,INT32,HDC32,INT32,INT32,HBITMAP32,INT32,INT32,DWORD);
 DWORD       WINAPI MoveTo(HDC16,INT16,INT16);
 DWORD       WINAPI OffsetViewportOrg(HDC16,INT16,INT16);
 INT16       WINAPI OffsetVisRgn(HDC16,INT16,INT16);
 DWORD       WINAPI OffsetWindowOrg(HDC16,INT16,INT16);
+BOOL32      WINAPI PlgBlt(HDC32,const POINT32*,HDC32,INT32,INT32,INT32,INT32,HBITMAP32,INT32,INT32);
+BOOL32      WINAPI PolyDraw32(HDC32,const POINT32*,const BYTE*,DWORD);
 UINT16      WINAPI RealizeDefaultPalette(HDC16);
 INT16       WINAPI RestoreVisRgn(HDC16);
 HRGN16      WINAPI SaveVisRgn(HDC16);
@@ -1930,12 +1984,14 @@ DWORD       WINAPI ScaleWindowExt(HDC16,INT16,INT16,INT16,INT16);
 INT16       WINAPI SelectVisRgn(HDC16,HRGN16);
 DWORD       WINAPI SetBitmapDimension(HBITMAP16,INT16,INT16);
 DWORD       WINAPI SetBrushOrg(HDC16,INT16,INT16);
+BOOL32      WINAPI SetColorAdjustment32(HDC32,const COLORADJUSTMENT*);
 BOOL16      WINAPI SetDCHook(HDC16,FARPROC16,DWORD);
 DWORD       WINAPI SetDCOrg(HDC16,INT16,INT16);
 VOID        WINAPI SetDCState(HDC16,HDC16);
 INT16       WINAPI SetEnvironment(LPCSTR,LPDEVMODE16,UINT16);
 WORD        WINAPI SetHookFlags(HDC16,WORD);
 HMETAFILE16 WINAPI SetMetaFileBits(HGLOBAL16);
+BOOL32      WINAPI SetMiterLimit(HDC32, FLOAT, PFLOAT);
 DWORD       WINAPI SetViewportExt(HDC16,INT16,INT16);
 DWORD       WINAPI SetViewportOrg(HDC16,INT16,INT16);
 DWORD       WINAPI SetWindowExt(HDC16,INT16,INT16);
@@ -2186,6 +2242,9 @@ BOOL32      WINAPI FillPath32(HDC32);
 BOOL16      WINAPI FillRgn16(HDC16,HRGN16,HBRUSH16);
 BOOL32      WINAPI FillRgn32(HDC32,HRGN32,HBRUSH32);
 #define     FillRgn WINELIB_NAME(FillRgn)
+BOOL16      WINAPI FlattenPath16(HDC16);
+BOOL32      WINAPI FlattenPath32(HDC32);
+#define     FlattenPath WINELIB_NAME(FlattenPath)
 BOOL16      WINAPI FloodFill16(HDC16,INT16,INT16,COLORREF);
 BOOL32      WINAPI FloodFill32(HDC32,INT32,INT32,COLORREF);
 #define     FloodFill WINELIB_NAME(FloodFill)
@@ -2433,6 +2492,7 @@ BOOL32      WINAPI Polygon32(HDC32,const POINT32*,INT32);
 BOOL16      WINAPI Polyline16(HDC16,const POINT16*,INT16);
 BOOL32      WINAPI Polyline32(HDC32,const POINT32*,INT32);
 #define     Polyline WINELIB_NAME(Polyline)
+BOOL32      WINAPI PolylineTo32(HDC32,const POINT32*,DWORD);
 BOOL16      WINAPI PtInRegion16(HRGN16,INT16,INT16);
 BOOL32      WINAPI PtInRegion32(HRGN32,INT32,INT32);
 #define     PtInRegion WINELIB_NAME(PtInRegion)
@@ -2600,6 +2660,12 @@ INT16       WINAPI StretchDIBits16(HDC16,INT16,INT16,INT16,INT16,INT16,INT16,
 INT32       WINAPI StretchDIBits32(HDC32,INT32,INT32,INT32,INT32,INT32,INT32,
                        INT32,INT32,const VOID*,const BITMAPINFO*,UINT32,DWORD);
 #define     StretchDIBits WINELIB_NAME(StretchDIBits)
+BOOL16      WINAPI StrokeAndFillPath16(HDC16);
+BOOL32      WINAPI StrokeAndFillPath32(HDC32);
+#define     StrokeAndFillPath WINELIB_NAME(StrokeAndFillPath)
+BOOL16      WINAPI StrokePath16(HDC16);
+BOOL32      WINAPI StrokePath32(HDC32);
+#define     StrokePath WINELIB_NAME(StrokePath)
 BOOL32      WINAPI SwapBuffers(HDC32);
 BOOL16      WINAPI TextOut16(HDC16,INT16,INT16,LPCSTR,INT16);
 BOOL32      WINAPI TextOut32A(HDC32,INT32,INT32,LPCSTR,INT32);
@@ -2611,5 +2677,8 @@ BOOL32      WINAPI UnrealizeObject32(HGDIOBJ32);
 INT16       WINAPI UpdateColors16(HDC16);
 BOOL32      WINAPI UpdateColors32(HDC32);
 #define     UpdateColors WINELIB_NAME(UpdateColors)
+BOOL16      WINAPI WidenPath16(HDC16);
+BOOL32      WINAPI WidenPath32(HDC32);
+#define     WidenPath WINELIB_NAME(WidenPath)
 
 #endif /* __WINE_WINGDI_H */
diff --git a/include/wintypes.h b/include/wintypes.h
index 9cd5150e88d..0426e695be7 100644
--- a/include/wintypes.h
+++ b/include/wintypes.h
@@ -126,7 +126,6 @@ typedef BYTE           *PBYTE;
 typedef ULONG          *PULONG;
 typedef LONG           *PLONG;
 typedef DWORD          *PDWORD;
-typedef UINT32         *PUINT32;
 /* common win32 types */
 typedef CHAR           *LPSTR;
 typedef const CHAR     *LPCSTR;
@@ -140,10 +139,14 @@ typedef VOID           *LPVOID;
 typedef const VOID     *LPCVOID;
 typedef INT16          *LPINT16;
 typedef UINT16         *LPUINT16;
+typedef INT32          *PINT32;
 typedef INT32          *LPINT32;
+typedef UINT32         *PUINT32;
 typedef UINT32         *LPUINT32;
 typedef HKEY           *LPHKEY;
+typedef FLOAT          *PFLOAT;
 typedef FLOAT          *LPFLOAT;
+typedef BOOL32         *PBOOL32;
 typedef BOOL32         *LPBOOL32;
 
 /* Special case: a segmented pointer is just a pointer in the user's code. */
@@ -339,6 +342,9 @@ DECL_WINELIB_TYPE(HWND)
 #define FAR
 #define _far
 #define _near
+#define IN
+#define OUT
+#define OPTIONAL
 #endif  /* __WINE__ */
 
 /* Macro for structure packing. */
@@ -360,8 +366,8 @@ DECL_WINELIB_TYPE(HWND)
 #define SLOWORD(l)             ((INT16)(LONG)(l))
 #define SHIWORD(l)             ((INT16)((LONG)(l) >> 16))
 
-#define MAKELONG(low,high)     ((LONG)(((WORD)(low)) | \
-                                       (((DWORD)((WORD)(high))) << 16)))
+#define MAKEWORD(low,high)     ((WORD)(((BYTE)(low)) | ((WORD)((BYTE)(high))) << 8))
+#define MAKELONG(low,high)     ((LONG)(((WORD)(low)) | (((DWORD)((WORD)(high))) << 16)))
 #define MAKELPARAM(low,high)   ((LPARAM)MAKELONG(low,high))
 #define MAKEWPARAM(low,high)   ((WPARAM32)MAKELONG(low,high))
 #define MAKELRESULT(low,high)  ((LRESULT)MAKELONG(low,high))
@@ -400,6 +406,11 @@ DECL_WINELIB_TYPE(HWND)
 #endif
 #define MIN(a,b) (((a) < (b)) ? (a) : (b))
 
+#define __max(a,b) MAX(a,b)
+#define __min(a,b) MIN(a,b)
+#define max(a,b)   MAX(a,b)
+#define min(a,b)   MIN(a,b)
+
 /* Winelib run-time flag */
 
 #ifdef __WINE__
@@ -414,7 +425,7 @@ typedef struct
     INT16  cy;
 } SIZE16, *LPSIZE16;
 
-typedef struct
+typedef struct tagSIZE
 {
     INT32  cx;
     INT32  cy;
@@ -436,7 +447,7 @@ typedef struct
     INT16  y;
 } POINT16, *LPPOINT16;
 
-typedef struct
+typedef struct tagPOINT
 {
     INT32  x;
     INT32  y;
@@ -463,7 +474,7 @@ typedef struct
     INT16  bottom;
 } RECT16, *LPRECT16;
 
-typedef struct
+typedef struct tagRECT
 {
     INT32  left;
     INT32  top;
diff --git a/misc/ddeml.c b/misc/ddeml.c
index 7f36086478d..c0b61975727 100644
--- a/misc/ddeml.c
+++ b/misc/ddeml.c
@@ -637,7 +637,7 @@ int WINAPI DdeCmpStringHandles32( HSZ hsz1, HSZ hsz2 )
  *   success: nonzero
  *   failure: zero
  */
-UINT32 WINAPI PackDDElParam32(UINT32 msg, UINT32 uiLo, UINT32 uiHi)
+UINT32 WINAPI PackDDElParam(UINT32 msg, UINT32 uiLo, UINT32 uiHi)
 {
     FIXME(ddeml, "stub.\n");
     return 0;
@@ -651,8 +651,8 @@ UINT32 WINAPI PackDDElParam32(UINT32 msg, UINT32 uiLo, UINT32 uiHi)
  *   success: nonzero
  *   failure: zero
  */
-UINT32 WINAPI UnpackDDElParam32(UINT32 msg, UINT32 lParam,
-				UINT32 *uiLo, UINT32 *uiHi)
+UINT32 WINAPI UnpackDDElParam(UINT32 msg, UINT32 lParam,
+                              UINT32 *uiLo, UINT32 *uiHi)
 {
     FIXME(ddeml, "stub.\n");
     return 0;
@@ -666,8 +666,19 @@ UINT32 WINAPI UnpackDDElParam32(UINT32 msg, UINT32 lParam,
  *   success: nonzero
  *   failure: zero
  */
-UINT32 WINAPI FreeDDElParam32(UINT32 msg, UINT32 lParam)
+UINT32 WINAPI FreeDDElParam(UINT32 msg, UINT32 lParam)
 {
     FIXME(ddeml, "stub.\n");
     return 0;
 }
+
+/*****************************************************************
+ *            ReuseDDElParam (USER32.446)
+ *
+ */
+UINT32 WINAPI ReuseDDElParam(UINT32 lParam, UINT32 msgIn, UINT32 msgOut,
+                             UINT32 uiLi, UINT32 uiHi)
+{
+    FIXME(ddeml, "stub.\n");
+    return 0;
+} 
diff --git a/objects/bitmap.c b/objects/bitmap.c
index f0697508176..d10c7c74484 100644
--- a/objects/bitmap.c
+++ b/objects/bitmap.c
@@ -928,22 +928,3 @@ DWORD WINAPI SetBitmapDimension( HBITMAP16 hbitmap, INT16 x, INT16 y )
     return MAKELONG( size.cx, size.cy );
 }
 
-/***********************************************************************
- *           MaskBlt32 [GDI32.252]
- */
-BOOL32 WINAPI MaskBlt32(HDC32 hdcDest, 
-                       INT32 nXDest, INT32 nYDest, 
-                       INT32 nWidth, INT32 nHeight, 
-                       HDC32 hdcSource, 
-                       INT32 nXSrc, INT32 nYSrc,
-                       HBITMAP32 hbmMask, 
-                       INT32 xMask, INT32 yMask, 
-                       DWORD dwRop)
-{
-    FIXME(bitmap, "(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%ld): stub\n",
-          hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSource,nXSrc,nYSrc,
-          hbmMask,xMask,yMask,dwRop);
- 
-    return 1;
-}
-
diff --git a/objects/brush.c b/objects/brush.c
index c3eb4d97186..b468f6dcd49 100644
--- a/objects/brush.c
+++ b/objects/brush.c
@@ -182,7 +182,7 @@ HBRUSH32 WINAPI CreateDIBPatternBrush32(
 
 
 /***********************************************************************
- *           CreateDIBPatternBrushPt32    (GDI32.35)
+ *           CreateDIBPatternBrushPt    (GDI32.35)
  *
  *	Create a logical brush which has the pattern specified by the DIB
  *
@@ -193,7 +193,7 @@ HBRUSH32 WINAPI CreateDIBPatternBrush32(
  * BUGS
  *	
  */
-HBRUSH32 WINAPI CreateDIBPatternBrushPt32( 	
+HBRUSH32 WINAPI CreateDIBPatternBrushPt(
 		BITMAPINFO *info,		/* Pointer to a BITMAPINFO structure */ 
 		UINT32 coloruse 		/* Specifies color format, if provided */
 )
diff --git a/objects/dc.c b/objects/dc.c
index eb98918e99b..73b303c9127 100644
--- a/objects/dc.c
+++ b/objects/dc.c
@@ -1239,6 +1239,15 @@ UINT16 WINAPI GetBoundsRect16(HDC16 hdc, LPRECT16 rect, UINT16 flags)
     return DCB_RESET | DCB_DISABLE; /* bounding rectangle always empty and disabled*/
 }
 
+/***********************************************************************
+ *           GetBoundsRect32    (GDI32.147)
+ */
+UINT32 WINAPI GetBoundsRect32(HDC32 hdc, LPRECT32 rect, UINT32 flags)
+{
+    FIXME(dc, "(): stub\n");
+    return DCB_RESET;   /* bounding rectangle always empty */
+}
+ 
 /***********************************************************************
  *           SetBoundsRect16    (GDI.193)
  */
diff --git a/objects/font.c b/objects/font.c
index 9e0d53417e9..b4e61aaede5 100644
--- a/objects/font.c
+++ b/objects/font.c
@@ -1137,6 +1137,15 @@ BOOL16 WINAPI GetAspectRatioFilterEx16( HDC16 hdc, LPSIZE16 pAspectRatio )
   return FALSE;
 }
 
+/***********************************************************************
+ *          GetAspectRatioFilterEx32  (GDI32.142)
+ */
+BOOL32 WINAPI GetAspectRatioFilterEx32( HDC32 hdc, LPSIZE32 pAspectRatio )
+{
+  FIXME(font, "(%04x, %p): -- Empty Stub !\n",
+        hdc, pAspectRatio);
+  return FALSE;
+}
 
 /***********************************************************************
  *           GetCharABCWidths16   (GDI.307)
@@ -1405,3 +1414,44 @@ GetCharacterPlacement32W(HDC32 hdc, LPCWSTR lpString, INT32 uCount,
     FIXME(font,":stub!\n");
     return 0;
 }
+
+/*************************************************************************
+ *      GetCharABCWidthsFloat32A [GDI32.150]
+ */
+BOOL32 WINAPI GetCharABCWidthsFloat32A(HDC32 hdc, UINT32 iFirstChar, UINT32 iLastChar,
+		                        LPABCFLOAT lpABCF)
+{
+       FIXME(gdi, "GetCharABCWidthsFloatA, stub\n");
+       return 0;
+}
+
+/*************************************************************************
+ *      GetCharABCWidthsFloat32W [GDI32.151]
+ */
+BOOL32 WINAPI GetCharABCWidthsFloat32W(HDC32 hdc, UINT32 iFirstChar,
+		                        UINT32 iLastChar, LPABCFLOAT lpABCF)
+{
+       FIXME(gdi, "GetCharABCWidthsFloatW, stub\n");
+       return 0;
+}
+
+/*************************************************************************
+ *      GetCharWidthFloat32A [GDI32.156]
+ */
+BOOL32 WINAPI GetCharWidthFloat32A(HDC32 hdc, UINT32 iFirstChar,
+		                    UINT32 iLastChar, PFLOAT pxBuffer)
+{
+       FIXME(gdi, "GetCharWidthFloatA, stub\n");
+       return 0;
+}
+
+/*************************************************************************
+ *      GetCharWidthFloat32W [GDI32.157]
+ */
+BOOL32 WINAPI GetCharWidthFloat32W(HDC32 hdc, UINT32 iFirstChar,
+		                    UINT32 iLastChar, PFLOAT pxBuffer)
+{
+       FIXME(gdi, "GetCharWidthFloatW, stub\n");
+       return 0;
+}
+ 
diff --git a/objects/gdiobj.c b/objects/gdiobj.c
index 6550c1b8ade..fd22bdfad19 100644
--- a/objects/gdiobj.c
+++ b/objects/gdiobj.c
@@ -991,3 +991,57 @@ INT32 WINAPI MulDiv32(
     return (nMultiplicand * nMultiplier) / nDivisor;
 #endif
 }
+/*******************************************************************
+ *      GetColorAdjustment [GDI32.164]
+ *
+ *
+ */
+BOOL32 WINAPI GetColorAdjustment32(HDC32 hdc, LPCOLORADJUSTMENT lpca)
+{
+        FIXME(gdi, "GetColorAdjustment, stub\n");
+        return 0;
+}
+
+/*******************************************************************
+ *      GetMiterLimit [GDI32.201]
+ *
+ *
+ */
+BOOL32 WINAPI GetMiterLimit(HDC32 hdc, PFLOAT peLimit)
+{
+        FIXME(gdi, "GetMiterLimit, stub\n");
+        return 0;
+}
+
+/*******************************************************************
+ *      SetMiterLimit [GDI32.325]
+ *
+ *
+ */
+BOOL32 WINAPI SetMiterLimit(HDC32 hdc, FLOAT eNewLimit, PFLOAT peOldLimit)
+{
+        FIXME(gdi, "SetMiterLimit, stub\n");
+        return 0;
+}
+
+/*******************************************************************
+ *      GdiComment [GDI32.109]
+ *
+ *
+ */
+BOOL32 WINAPI GdiComment32(HDC32 hdc, UINT32 cbSize, const BYTE *lpData)
+{
+        FIXME(gdi, "GdiComment, stub\n");
+        return 0;
+}
+/*******************************************************************
+ *      SetColorAdjustment [GDI32.309]
+ *
+ *
+ */
+BOOL32 WINAPI SetColorAdjustment32(HDC32 hdc, const COLORADJUSTMENT* lpca)
+{
+        FIXME(gdi, "SetColorAdjustment, stub\n");
+        return 0;
+}
+ 
diff --git a/relay32/gdi32.spec b/relay32/gdi32.spec
index d8e1d87f727..59e66c62c78 100644
--- a/relay32/gdi32.spec
+++ b/relay32/gdi32.spec
@@ -7,7 +7,7 @@ init	MAIN_GdiInit
   2 stdcall AddFontResourceA(str) AddFontResource32A
   3 stub AddFontResourceTracking
   4 stdcall AddFontResourceW(wstr) AddFontResource32W
-  5 stub AngleArc
+  5 stdcall AngleArc(long long long long long long) AngleArc32
   6 stdcall AnimatePalette(long long long ptr) AnimatePalette32
   7 stdcall Arc(long long long long long long long long long) Arc32
   8 stdcall ArcTo(long long long long long long long long long) ArcTo32
@@ -37,7 +37,7 @@ init	MAIN_GdiInit
  32 stdcall CreateDCA(str str str ptr) CreateDC32A
  33 stdcall CreateDCW(wstr wstr wstr ptr) CreateDC32W
  34 stdcall CreateDIBPatternBrush(long long) CreateDIBPatternBrush32
- 35 stdcall CreateDIBPatternBrushPt(long long) CreateDIBPatternBrushPt32
+ 35 stdcall CreateDIBPatternBrushPt(long long) CreateDIBPatternBrushPt
  36 stdcall CreateDIBSection(long ptr long ptr long long) CreateDIBSection32
  37 stdcall CreateDIBitmap(long ptr long ptr ptr long) CreateDIBitmap32
  38 stdcall CreateDiscardableBitmap(long long long) CreateDiscardableBitmap32
@@ -76,7 +76,7 @@ init	MAIN_GdiInit
  71 stdcall DescribePixelFormat(long long long ptr) DescribePixelFormat
  72 stub DeviceCapabilitiesExA
  73 stub DeviceCapabilitiesExW
- 74 stub DrawEscape
+ 74 stdcall DrawEscape(long long long ptr) DrawEscape32
  75 stdcall Ellipse(long long long long long) Ellipse32
  76 stdcall EndDoc(long) EndDoc32
  77 stdcall EndPage(long) EndPage32
@@ -105,13 +105,13 @@ init	MAIN_GdiInit
 100 stdcall FillPath(long) FillPath32
 101 stdcall FillRgn(long long long) FillRgn32
 102 stdcall FixBrushOrgEx(long long long ptr) FixBrushOrgEx
-103 stub FlattenPath
+103 stdcall FlattenPath(long) FlattenPath32
 104 stdcall FloodFill(long long long long) FloodFill32
 105 stdcall FrameRgn(long long long long long) FrameRgn32
 106 stub FreeImageColorMatcher
 107 stub GdiAssociateObject
 108 stub GdiCleanCacheDC
-109 stub GdiComment
+109 stdcall GdiComment(long long ptr) GdiComment32
 110 stub GdiConvertAndCheckDC
 111 stub GdiConvertBitmap
 112 stub GdiConvertBrush
@@ -144,29 +144,29 @@ init	MAIN_GdiInit
 139 stdcall GdiSetBatchLimit(long) GdiSetBatchLimit
 140 stub GdiSetServerAttr
 141 stdcall GetArcDirection(long) GetArcDirection32
-142 stub GetAspectRatioFilterEx
+142 stdcall GetAspectRatioFilterEx(long ptr) GetAspectRatioFilterEx32
 143 stdcall GetBitmapBits(long long ptr) GetBitmapBits32
 144 stdcall GetBitmapDimensionEx(long ptr) GetBitmapDimensionEx32
 145 stdcall GetBkColor(long) GetBkColor32
 146 stdcall GetBkMode(long) GetBkMode32
-147 stub GetBoundsRect
+147 stdcall GetBoundsRect(long ptr long) GetBoundsRect32
 148 stdcall GetBrushOrgEx(long ptr) GetBrushOrgEx32
 149 stdcall GetCharABCWidthsA(long long long ptr) GetCharABCWidths32A
-150 stub GetCharABCWidthsFloatA
-151 stub GetCharABCWidthsFloatW
+150 stdcall GetCharABCWidthsFloatA(long long long ptr) GetCharABCWidthsFloat32A
+151 stdcall GetCharABCWidthsFloatW(long long long ptr) GetCharABCWidthsFloat32W
 152 stdcall GetCharABCWidthsW(long long long ptr) GetCharABCWidths32W
 153 stdcall GetCharWidth32A(long long long long) GetCharWidth32A
 154 stdcall GetCharWidth32W(long long long long) GetCharWidth32W
 155 stdcall GetCharWidthA(long long long long) GetCharWidth32A
-156 stub GetCharWidthFloatA
-157 stub GetCharWidthFloatW
+156 stdcall GetCharWidthFloatA(long long long ptr) GetCharWidthFloat32A
+157 stdcall GetCharWidthFloatW(long long long ptr) GetCharWidthFloat32W
 158 stdcall GetCharWidthW(long long long long) GetCharWidth32W
 159 stub GetCharWidthWOW
 160 stdcall GetCharacterPlacementA(long str long long ptr long) GetCharacterPlacement32A
 161 stdcall GetCharacterPlacementW(long wstr long long ptr long) GetCharacterPlacement32W
 162 stdcall GetClipBox(long ptr) GetClipBox32
 163 stdcall GetClipRgn(long long) GetClipRgn32
-164 stub GetColorAdjustment
+164 stdcall GetColorAdjustment(long ptr) GetColorAdjustment32
 165 stdcall GetColorSpace(long) GetColorSpace
 166 stdcall GetCurrentObject(long long) GetCurrentObject
 167 stdcall GetCurrentPositionEx(long ptr) GetCurrentPositionEx32
@@ -203,7 +203,7 @@ init	MAIN_GdiInit
 198 stdcall GetMetaFileBitsEx(long long ptr) GetMetaFileBitsEx
 199 stdcall GetMetaFileW(wstr) GetMetaFile32W
 200 stub GetMetaRgn
-201 stub GetMiterLimit
+201 stdcall GetMiterLimit(long ptr) GetMiterLimit
 202 stdcall GetNearestColor(long long) GetNearestColor32
 203 stdcall GetNearestPaletteIndex(long long) GetNearestPaletteIndex32
 204 stdcall GetObjectA(long long ptr) GetObject32A
@@ -269,10 +269,10 @@ init	MAIN_GdiInit
 264 stdcall PlayEnhMetaFileRecord(long ptr ptr long) PlayEnhMetaFileRecord
 265 stdcall PlayMetaFile(long long) PlayMetaFile32
 266 stdcall PlayMetaFileRecord(long ptr ptr long) PlayMetaFileRecord32
-267 stub PlgBlt
+267 stdcall PlgBlt(long ptr long long long long long long long long) PlgBlt32
 268 stdcall PolyBezier(long ptr long) PolyBezier32
 269 stdcall PolyBezierTo(long ptr long) PolyBezierTo32
-270 stub PolyDraw
+270 stdcall PolyDraw(long ptr ptr long) PolyDraw
 271 stdcall PolyPolygon(long ptr ptr long) PolyPolygon32
 272 stdcall PolyPolyline(long ptr ptr long) PolyPolyline32
 273 stub PolyTextOutA
@@ -311,7 +311,7 @@ init	MAIN_GdiInit
 306 stdcall SetBkMode(long long) SetBkMode32
 307 stdcall SetBoundsRect(long ptr long) SetBoundsRect32
 308 stdcall SetBrushOrgEx(long long long ptr) SetBrushOrgEx
-309 stub SetColorAdjustment
+309 stdcall SetColorAdjustment(long ptr) SetColorAdjustment32
 310 stub SetColorSpace
 311 stdcall SetDIBColorTable(long long long ptr) SetDIBColorTable32
 312 stdcall SetDIBits(long long long long ptr ptr long) SetDIBits32
@@ -327,7 +327,7 @@ init	MAIN_GdiInit
 322 stdcall SetMapperFlags(long long) SetMapperFlags32
 323 stdcall SetMetaFileBitsEx(long ptr) SetMetaFileBitsEx
 324 stub SetMetaRgn
-325 stub SetMiterLimit
+325 stdcall SetMiterLimit(long long ptr) SetMiterLimit
 326 stdcall SetPaletteEntries(long long long ptr) SetPaletteEntries32
 327 stdcall SetPixel(long long long long) SetPixel32
 328 stdcall SetPixelFormat(long long ptr) SetPixelFormat
@@ -354,15 +354,15 @@ init	MAIN_GdiInit
 349 stdcall StartPage(long) StartPage32 
 350 stdcall StretchBlt(long long long long long long long long long long long) StretchBlt32
 351 stdcall StretchDIBits(long long long long long long long long long ptr ptr long long) StretchDIBits32
-352 stub StrokeAndFillPath
-353 stub StrokePath
+352 stdcall StrokeAndFillPath(long) StrokeAndFillPath32
+353 stdcall StrokePath(long) StrokePath32
 354 stdcall SwapBuffers(long) SwapBuffers
 355 stdcall TextOutA(long long long str long) TextOut32A
 356 stdcall TextOutW(long long long wstr long) TextOut32W
 357 stub UnloadNetworkFonts
 358 stdcall UnrealizeObject(long) UnrealizeObject32
 359 stdcall UpdateColors(long) UpdateColors32
-360 stub WidenPath
+360 stdcall WidenPath(long) WidenPath32
 361 stub pstackConnect
 #late additions
 362 stub DeviceCapabilitiesEx
diff --git a/relay32/user32.spec b/relay32/user32.spec
index 08e282fd10d..ba29ad53360 100644
--- a/relay32/user32.spec
+++ b/relay32/user32.spec
@@ -205,7 +205,7 @@ init	MAIN_UserInit
 201 stdcall FindWindowW(wstr wstr) FindWindow32W
 202 stdcall FlashWindow(long long) FlashWindow32
 203 stdcall FrameRect(long ptr long) FrameRect32
-204 stdcall FreeDDElParam(long long) FreeDDElParam32
+204 stdcall FreeDDElParam(long long) FreeDDElParam
 205 stdcall GetActiveWindow() GetActiveWindow32
 206 stdcall GetAppCompatFlags(long) GetAppCompatFlags32
 207 stdcall GetAsyncKeyState(long) GetAsyncKeyState32
@@ -260,7 +260,7 @@ init	MAIN_UserInit
 256 stdcall GetLastActivePopup(long) GetLastActivePopup32
 257 stdcall GetMenu(long) GetMenu32
 258 stdcall GetMenuCheckMarkDimensions() GetMenuCheckMarkDimensions
-259 stub GetMenuContextHelpId
+259 stdcall GetMenuContextHelpId(long) GetMenuContextHelpId32
 260 stdcall GetMenuDefaultItem(long long long) GetMenuDefaultItem32
 261 stub GetMenuIndex
 262 stdcall GetMenuItemCount(long) GetMenuItemCount32
@@ -415,7 +415,7 @@ init	MAIN_UserInit
 411 stub OpenInputDesktop
 412 stub OpenWindowStationA
 413 stub OpenWindowStationW
-414 stdcall PackDDElParam(long long long) PackDDElParam32
+414 stdcall PackDDElParam(long long long) PackDDElParam
 415 stdcall PaintDesktop(long) PaintDesktop
 416 stdcall PeekMessageA(ptr long long long long) PeekMessage32A
 417 stdcall PeekMessageW(ptr long long long long) PeekMessage32W
@@ -447,7 +447,7 @@ init	MAIN_UserInit
 443 stdcall RemovePropW(long wstr) RemoveProp32W
 444 stub ReplyMessage
 445 stub ResetDisplay
-446 stub ReuseDDElParam
+446 stdcall ReuseDDElParam(long long long long long) ReuseDDElParam
 447 stdcall ScreenToClient(long ptr) ScreenToClient32
 448 stdcall ScrollChildren(long long long long) ScrollChildren32
 449 stdcall ScrollDC(long long long ptr ptr long ptr) ScrollDC32
@@ -489,7 +489,7 @@ init	MAIN_UserInit
 485 stdcall SetLastErrorEx(long long) SetLastErrorEx
 486 stdcall SetLogonNotifyWindow(long long) SetLogonNotifyWindow
 487 stdcall SetMenu(long long) SetMenu32
-488 stub SetMenuContextHelpId
+488 stdcall SetMenuContextHelpId(long long) SetMenuContextHelpId32
 489 stdcall SetMenuDefaultItem(long long long) SetMenuDefaultItem32
 490 stdcall SetMenuItemBitmaps(long long long long long) SetMenuItemBitmaps32
 491 stdcall SetMenuItemInfoA(long long long ptr) SetMenuItemInfo32A
@@ -563,7 +563,7 @@ init	MAIN_UserInit
 559 stdcall UnionRect(ptr ptr ptr) UnionRect32
 560 stub UnloadKeyboardLayout
 561 stub UnlockWindowStation
-562 stdcall UnpackDDElParam(long long ptr ptr) UnpackDDElParam32
+562 stdcall UnpackDDElParam(long long ptr ptr) UnpackDDElParam
 563 stdcall UnregisterClassA(str long) UnregisterClass32A
 564 stdcall UnregisterClassW(wstr long) UnregisterClass32W
 565 stdcall UnregisterHotKey(long long) UnregisterHotKey
diff --git a/windows/message.c b/windows/message.c
index db0e657ca03..6a6045dd43c 100644
--- a/windows/message.c
+++ b/windows/message.c
@@ -1968,7 +1968,7 @@ LONG WINAPI BroadcastSystemMessage(
  *  with a higher priority as the other "Posted" messages.
  *  QUEUE_AddMsg has to be modifyed.
  */
-LONG WINAPI SendNotifyMessage32A(HWND32 hwnd,UINT32 msg,WPARAM32 wParam,LPARAM lParam)
+BOOL32 WINAPI SendNotifyMessage32A(HWND32 hwnd,UINT32 msg,WPARAM32 wParam,LPARAM lParam)
 {	BOOL32 ret = TRUE;
 	FIXME(msg,"(%04x,%08x,%08x,%08lx) not complete\n",
 	      hwnd, msg, wParam, lParam);
@@ -1983,13 +1983,24 @@ LONG WINAPI SendNotifyMessage32A(HWND32 hwnd,UINT32 msg,WPARAM32 wParam,LPARAM l
 }
 
 /***********************************************************************
- *           SendNotifyMessage32W    (USER32.461)
+ *           SendNotifyMessageW    (USER32.461)
+ * FIXME
+ *  The message sended with PostMessage has to be put in the queue
+ *  with a higher priority as the other "Posted" messages.
+ *  QUEUE_AddMsg has to be modifyed.
  */
-BOOL32 WINAPI SendNotifyMessage32W(HWND32 hWnd, UINT32 msg, WPARAM32 wParam,
-                                   LPARAM lParam)
-{
-  FIXME(msg, "(%04x,%08x,%08x,%08lx): stub\n", hWnd, msg, wParam, lParam);
-  return 0; 
+BOOL32 WINAPI SendNotifyMessage32W(HWND32 hwnd,UINT32 msg,WPARAM32 wParam,LPARAM lParam)
+{       BOOL32 ret = TRUE;
+	FIXME(msg,"(%04x,%08x,%08x,%08lx) not complete\n",
+	      hwnd, msg, wParam, lParam);
+
+	if ( GetCurrentThreadId() == GetWindowThreadProcessId ( hwnd, NULL))
+	{       ret=SendMessage32W ( hwnd, msg, wParam, lParam );
+	}
+	else
+	{       PostMessage32W ( hwnd, msg, wParam, lParam );
+	}
+	return ret;
 }
 
 /***********************************************************************
diff --git a/windows/win.c b/windows/win.c
index 85e72f954e2..3f87d5fbc12 100644
--- a/windows/win.c
+++ b/windows/win.c
@@ -1755,27 +1755,27 @@ INT32 WINAPI GetWindowText32W( HWND32 hwnd, LPWSTR lpString, INT32 nMaxCount )
 /*******************************************************************
  *	     SetWindowText16    (USER.37)
  */
-void WINAPI SetWindowText16( HWND16 hwnd, SEGPTR lpString )
+BOOL16 WINAPI SetWindowText16( HWND16 hwnd, SEGPTR lpString )
 {
-    SendMessage16( hwnd, WM_SETTEXT, 0, (LPARAM)lpString );
+    return (BOOL16)SendMessage16( hwnd, WM_SETTEXT, 0, (LPARAM)lpString );
 }
 
 
 /*******************************************************************
  *	     SetWindowText32A    (USER32.521)
  */
-void WINAPI SetWindowText32A( HWND32 hwnd, LPCSTR lpString )
+BOOL32 WINAPI SetWindowText32A( HWND32 hwnd, LPCSTR lpString )
 {
-    SendMessage32A( hwnd, WM_SETTEXT, 0, (LPARAM)lpString );
+    return (BOOL32)SendMessage32A( hwnd, WM_SETTEXT, 0, (LPARAM)lpString );
 }
 
 
 /*******************************************************************
  *	     SetWindowText32W    (USER32.523)
  */
-void WINAPI SetWindowText32W( HWND32 hwnd, LPCWSTR lpString )
+BOOL32 WINAPI SetWindowText32W( HWND32 hwnd, LPCWSTR lpString )
 {
-    SendMessage32W( hwnd, WM_SETTEXT, 0, (LPARAM)lpString );
+    return (BOOL32)SendMessage32W( hwnd, WM_SETTEXT, 0, (LPARAM)lpString );
 }
 
 
-- 
GitLab