Added Unicode support (at least partially).

diff --git a/include/commctrl.h b/include/commctrl.h
index 2e6c31c..3de344a 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -119,56 +119,57 @@
 
 /* StatusWindow */
 
-#define STATUSCLASSNAME16     "msctls_statusbar"
-#define STATUSCLASSNAME32A    "msctls_statusbar32"
-#define STATUSCLASSNAME32W    L"msctls_statusbar32"
-#define STATUSCLASSNAME WINELIB_NAME_AW(STATUSCLASSNAME)
+#define STATUSCLASSNAME16	"msctls_statusbar"
+#define STATUSCLASSNAME32A	"msctls_statusbar32"
+#define STATUSCLASSNAME32W	L"msctls_statusbar32"
+#define STATUSCLASSNAME		WINELIB_NAME_AW(STATUSCLASSNAME)
 
-#define SBT_NOBORDERS         0x0100
-#define SBT_POPOUT            0x0200
-#define SBT_RTLREADING        0x0400  /* not supported */
-#define SBT_TOOLTIPS          0x0800
-#define SBT_OWNERDRAW         0x1000
+#define SBT_NOBORDERS		0x0100
+#define SBT_POPOUT		0x0200
+#define SBT_RTLREADING		0x0400  /* not supported */
+#define SBT_TOOLTIPS		0x0800
+#define SBT_OWNERDRAW		0x1000
 
-#define SBARS_SIZEGRIP        0x0100
+#define SBARS_SIZEGRIP		0x0100
 
-#define SB_SETTEXT32A         (WM_USER+1)
-#define SB_SETTEXT32W         (WM_USER+11)
-#define SB_SETTEXT WINELIB_NAME_AW(SB_SETTEXT)
-#define SB_GETTEXT32A         (WM_USER+2)
-#define SB_GETTEXT32W         (WM_USER+13)
-#define SB_GETTEXT WINELIB_NAME_AW(SB_GETTEXT)
-#define SB_GETTEXTLENGTH32A   (WM_USER+3)
-#define SB_GETTEXTLENGTH32W   (WM_USER+12)
-#define SB_GETTEXTLENGTH WINELIB_NAME_AW(SB_GETTEXTLENGTH)
+#define SB_SETTEXT32A		(WM_USER+1)
+#define SB_SETTEXT32W		(WM_USER+11)
+#define SB_SETTEXT		WINELIB_NAME_AW(SB_SETTEXT)
+#define SB_GETTEXT32A		(WM_USER+2)
+#define SB_GETTEXT32W		(WM_USER+13)
+#define SB_GETTEXT		WINELIB_NAME_AW(SB_GETTEXT)
+#define SB_GETTEXTLENGTH32A	(WM_USER+3)
+#define SB_GETTEXTLENGTH32W	(WM_USER+12)
+#define SB_GETTEXTLENGTH	WINELIB_NAME_AW(SB_GETTEXTLENGTH)
+#define SB_SETPARTS		(WM_USER+4)
+#define SB_GETPARTS		(WM_USER+6)
+#define SB_GETBORDERS		(WM_USER+7)
+#define SB_SETMINHEIGHT		(WM_USER+8)
+#define SB_SIMPLE		(WM_USER+9)
+#define SB_GETRECT		(WM_USER+10)
+#define SB_ISSIMPLE		(WM_USER+14)
+#define SB_SETICON		(WM_USER+15)
+#define SB_SETTIPTEXT32A	(WM_USER+16)
+#define SB_SETTIPTEXT32W	(WM_USER+17)
+#define SB_SETTIPTEXT		WINELIB_NAME_AW(SB_SETTIPTEXT)
+#define SB_GETTIPTEXT32A	(WM_USER+18)
+#define SB_GETTIPTEXT32W	(WM_USER+19)
+#define SB_GETTIPTEXT		WINELIB_NAME_AW(SB_GETTIPTEXT)
+#define SB_GETICON		(WM_USER+20)
+#define SB_SETBKCOLOR		CCM_SETBKCOLOR   /* lParam = bkColor */
+#define SB_GETUNICODEFORMAT	CCM_GETUNICODEFORMAT
+#define SB_SETUNICODEFORMAT	CCM_SETUNICODEFORMAT
 
-#define SB_SETPARTS           (WM_USER+4)
-#define SB_GETPARTS           (WM_USER+6)
-#define SB_GETBORDERS         (WM_USER+7)
-#define SB_SETMINHEIGHT       (WM_USER+8)
-#define SB_SIMPLE             (WM_USER+9)
-#define SB_GETRECT            (WM_USER+10)
-#define SB_ISSIMPLE           (WM_USER+14)
-#define SB_SETICON            (WM_USER+15)
-#define SB_SETTIPTEXT32A      (WM_USER+16)
-#define SB_SETTIPTEXT32W      (WM_USER+17)
-#define SB_SETTIPTEXT WINELIB_NAME_AW(SB_SETTIPTEXT)
-#define SB_GETTIPTEXT32A      (WM_USER+18)
-#define SB_GETTIPTEXT32W      (WM_USER+19)
-#define SB_GETTIPTEXT WINELIB_NAME_AW(SB_GETTIPTEXT)
-#define SB_GETICON            (WM_USER+20)
-#define SB_SETBKCOLOR         CCM_SETBKCOLOR   /* lParam = bkColor */
-
-#define SBN_FIRST             (0U-880U)
-#define SBN_LAST              (0U-899U)
-#define SBN_SIMPLEMODECHANGE  (SBN_FIRST-0)
+#define SBN_FIRST		(0U-880U)
+#define SBN_LAST		(0U-899U)
+#define SBN_SIMPLEMODECHANGE	(SBN_FIRST-0)
 
 HWND32 WINAPI CreateStatusWindow32A (INT32, LPCSTR, HWND32, UINT32);
 HWND32 WINAPI CreateStatusWindow32W (INT32, LPCWSTR, HWND32, UINT32);
-#define    CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow)
+#define CreateStatusWindow WINELIB_NAME_AW(CreateStatusWindow)
 VOID WINAPI DrawStatusText32A (HDC32, LPRECT32, LPCSTR, UINT32);
 VOID WINAPI DrawStatusText32W (HDC32, LPRECT32, LPCWSTR, UINT32);
-#define    DrawStatusText WINELIB_NAME_AW(DrawStatusText)
+#define DrawStatusText WINELIB_NAME_AW(DrawStatusText)
 VOID WINAPI MenuHelp (UINT32, WPARAM32, LPARAM, HMENU32,
                       HINSTANCE32, HWND32, LPUINT32);
 
@@ -1160,11 +1161,11 @@
 #define RB_SETPALETTE           (WM_USER+37)
 #define RB_GETPALETTE           (WM_USER+38)
 #define RB_MOVEBAND             (WM_USER+39)
-#define RB_GETDROPTARGET        CCS_GETDROPTARGET
-#define RB_SETCOLORSCHEME       CCS_SETCOLORSCHEME
-#define RB_GETCOLORSCHEME       CCS_GETCOLORSCHEME
-#define RB_SETUNICODEFORMAT     CCS_SETUNICODEFORMAT
-#define RB_GETUNICODEFORMAT     CCS_GETUNICODEFORMAT
+#define RB_GETDROPTARGET        CCM_GETDROPTARGET
+#define RB_SETCOLORSCHEME       CCM_SETCOLORSCHEME
+#define RB_GETCOLORSCHEME       CCM_GETCOLORSCHEME
+#define RB_SETUNICODEFORMAT     CCM_SETUNICODEFORMAT
+#define RB_GETUNICODEFORMAT     CCM_GETUNICODEFORMAT
 
 #define RBN_FIRST               (0U-831U)
 #define RBN_LAST                (0U-859U)
@@ -1218,7 +1219,7 @@
     UINT32    fStyle;
     COLORREF  clrFore;
     COLORREF  clrBack;
-    LPSTR     lpText;
+    LPWSTR    lpText;
     UINT32    cch;
     INT32     iImage;
     HWND32    hwndChild;
@@ -1248,7 +1249,7 @@
 typedef struct tagNMREBARCHILDSIZE
 {
     NMHDR  hdr;
-    UINT32 iBand;
+    UINT32 uBand;
     UINT32 wID;
     RECT32 rcChild;
     RECT32 rcBand;
@@ -2443,6 +2444,10 @@
 INT32  WINAPI DSA_InsertItem (const HDSA, INT32, LPVOID);
 BOOL32 WINAPI DSA_SetItem (const HDSA, INT32, LPVOID);
 
+typedef INT32 (CALLBACK *DSAENUMPROC)(LPVOID, DWORD);
+VOID   WINAPI DSA_EnumCallback (const HDSA, DSAENUMPROC, LPARAM);
+BOOL32 WINAPI DSA_DestroyCallback (const HDSA, DSAENUMPROC, LPARAM);
+
 
 /* Dynamic Pointer Array */
 
@@ -2476,6 +2481,15 @@
  
 INT32  WINAPI DPA_Search (const HDPA, LPVOID, INT32, PFNDPACOMPARE, LPARAM, UINT32);
 
+#define DPAM_SORT               0x0001
+
+BOOL32 WINAPI DPA_Merge (const HDPA, const HDPA, DWORD, PFNDPACOMPARE, LPVOID, LPARAM);
+
+typedef INT32 (CALLBACK *DPAENUMPROC)(LPVOID, DWORD);
+VOID   WINAPI DPA_EnumCallback (const HDPA, DPAENUMPROC, LPARAM);
+BOOL32 WINAPI DPA_DestroyCallback (const HDPA, DPAENUMPROC, LPARAM);
+
+
 #define DPA_GetPtrCount(hdpa)  (*(INT32*)(hdpa))
 #define DPA_GetPtrPtr(hdpa)    (*((LPVOID**)((BYTE*)(hdpa)+sizeof(INT32))))
 #define DPA_FastGetPtr(hdpa,i) (DPA_GetPtrPtr(hdpa)[i])