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])