Wine-20050830 vendor drop
Modified: vendor/wine/dlls/cabinet/current/cabinet.h
Modified: vendor/wine/dlls/cabinet/current/cabinet.spec
Modified: vendor/wine/dlls/cabinet/current/cabinet_main.c
Modified: vendor/wine/dlls/comctl32/current/Makefile.in
Modified: vendor/wine/dlls/comctl32/current/animate.c
Modified: vendor/wine/dlls/comctl32/current/comboex.c
Modified: vendor/wine/dlls/comctl32/current/comctl32.h
Modified: vendor/wine/dlls/comctl32/current/comctl32.spec
Modified: vendor/wine/dlls/comctl32/current/comctl32undoc.c
Modified: vendor/wine/dlls/comctl32/current/commctrl.c
Modified: vendor/wine/dlls/comctl32/current/datetime.c
Modified: vendor/wine/dlls/comctl32/current/dpa.c
Modified: vendor/wine/dlls/comctl32/current/header.c
Modified: vendor/wine/dlls/comctl32/current/imagelist.c
Modified: vendor/wine/dlls/comctl32/current/ipaddress.c
Modified: vendor/wine/dlls/comctl32/current/listview.c
Modified: vendor/wine/dlls/comctl32/current/monthcal.c
Modified: vendor/wine/dlls/comctl32/current/progress.c
Modified: vendor/wine/dlls/comctl32/current/propsheet.c
Modified: vendor/wine/dlls/comctl32/current/rebar.c
Modified: vendor/wine/dlls/comctl32/current/status.c
Modified: vendor/wine/dlls/comctl32/current/tab.c
Modified: vendor/wine/dlls/comctl32/current/toolbar.c
Modified: vendor/wine/dlls/comctl32/current/tooltips.c
Modified: vendor/wine/dlls/comctl32/current/trackbar.c
Modified: vendor/wine/dlls/comctl32/current/treeview.c
Modified: vendor/wine/dlls/commdlg/current/cdlg32.c
Modified: vendor/wine/dlls/commdlg/current/filedlg.c
Modified: vendor/wine/dlls/commdlg/current/filedlgbrowser.c
Modified: vendor/wine/dlls/commdlg/current/filedlgbrowser.h
Modified: vendor/wine/dlls/commdlg/current/printdlg.c
Modified: vendor/wine/dlls/dinput8/current/Makefile.in
Modified: vendor/wine/dlls/dinput8/current/dinput8.spec
Modified: vendor/wine/dlls/dinput8/current/dinput8_main.c
Modified: vendor/wine/dlls/dsound/current/capture.c
Modified: vendor/wine/dlls/dsound/current/dsound_main.c
Modified: vendor/wine/dlls/dsound/current/mixer.c
Modified: vendor/wine/dlls/dsound/current/primary.c
Modified: vendor/wine/dlls/icmp/current/icmp_main.c
Modified: vendor/wine/dlls/midimap/current/midimap.spec
Modified: vendor/wine/dlls/mpr/current/mpr.spec
Modified: vendor/wine/dlls/mpr/current/mpr_main.c
Modified: vendor/wine/dlls/msi/current/action.c
Modified: vendor/wine/dlls/msi/current/action.h
Modified: vendor/wine/dlls/msi/current/classes.c
Modified: vendor/wine/dlls/msi/current/create.c
Modified: vendor/wine/dlls/msi/current/custom.c
Modified: vendor/wine/dlls/msi/current/delete.c
Modified: vendor/wine/dlls/msi/current/events.c
Modified: vendor/wine/dlls/msi/current/files.c
Modified: vendor/wine/dlls/msi/current/format.c
Modified: vendor/wine/dlls/msi/current/helpers.c
Modified: vendor/wine/dlls/msi/current/insert.c
Modified: vendor/wine/dlls/msi/current/install.c
Modified: vendor/wine/dlls/msi/current/msi.c
Modified: vendor/wine/dlls/msi/current/msi.spec
Modified: vendor/wine/dlls/msi/current/msipriv.h
Modified: vendor/wine/dlls/msi/current/msiquery.c
Modified: vendor/wine/dlls/msi/current/package.c
Modified: vendor/wine/dlls/msi/current/regsvr.c
Modified: vendor/wine/dlls/msi/current/select.c
Modified: vendor/wine/dlls/msi/current/table.c
Modified: vendor/wine/dlls/msimg32/current/msimg32.spec
Modified: vendor/wine/dlls/ole32/current/antimoniker.c
Modified: vendor/wine/dlls/ole32/current/compobj.c
Modified: vendor/wine/dlls/ole32/current/compobj.spec
Modified: vendor/wine/dlls/ole32/current/compobj_private.h
Modified: vendor/wine/dlls/ole32/current/compositemoniker.c
Modified: vendor/wine/dlls/ole32/current/datacache.c
Modified: vendor/wine/dlls/ole32/current/defaulthandler.c
Modified: vendor/wine/dlls/ole32/current/errorinfo.c
Modified: vendor/wine/dlls/ole32/current/filemoniker.c
Modified: vendor/wine/dlls/ole32/current/ftmarshal.c
Modified: vendor/wine/dlls/ole32/current/ifs.h
Modified: vendor/wine/dlls/ole32/current/itemmoniker.c
Modified: vendor/wine/dlls/ole32/current/marshal.c
Modified: vendor/wine/dlls/ole32/current/moniker.c
Modified: vendor/wine/dlls/ole32/current/moniker.h
Modified: vendor/wine/dlls/ole32/current/ole16.c
Modified: vendor/wine/dlls/ole32/current/ole2.c
Modified: vendor/wine/dlls/ole32/current/ole2.spec
Modified: vendor/wine/dlls/ole32/current/ole2_16.c
Modified: vendor/wine/dlls/ole32/current/ole32.spec
Modified: vendor/wine/dlls/ole32/current/oleproxy.c
Modified: vendor/wine/dlls/ole32/current/stg_prop.c
Modified: vendor/wine/dlls/ole32/current/storage.c
Modified: vendor/wine/dlls/ole32/current/storage.spec
Modified: vendor/wine/dlls/ole32/current/storage32.c
Modified: vendor/wine/dlls/oleaut32/current/oleaut.c
Modified: vendor/wine/dlls/oleaut32/current/oleaut32.spec
Modified: vendor/wine/dlls/oleaut32/current/olefont.c
Modified: vendor/wine/dlls/oleaut32/current/olepicture.c
Modified: vendor/wine/dlls/oleaut32/current/regsvr.c
Modified: vendor/wine/dlls/oleaut32/current/safearray.c
Modified: vendor/wine/dlls/oleaut32/current/tmarshal.c
Modified: vendor/wine/dlls/oleaut32/current/typelib.c
Modified: vendor/wine/dlls/oleaut32/current/typelib.h
Modified: vendor/wine/dlls/oleaut32/current/typelib2.c
Modified: vendor/wine/dlls/oleaut32/current/varformat.c
Modified: vendor/wine/dlls/oleaut32/current/variant.c
[truncated at 100 lines; 82 more skipped]
Modified: vendor/wine/dlls/cabinet/current/cabinet.h
--- vendor/wine/dlls/cabinet/current/cabinet.h	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/cabinet/current/cabinet.h	2005-09-05 08:17:08 UTC (rev 17655)
@@ -324,15 +324,15 @@
   cab_ULONG          cDataBlocks;
   cab_ULONG          cbFileRemainer; /* uncompressed, yet to be written data */
                /* of spanned file of a spanning folder of a spanning cabinet */
-  cab_UBYTE          szFileNameCFDATA1[CB_MAX_FILENAME];
+  char               szFileNameCFDATA1[CB_MAX_FILENAME];
   int                handleCFDATA1;
-  cab_UBYTE          szFileNameCFFILE1[CB_MAX_FILENAME];
+  char               szFileNameCFFILE1[CB_MAX_FILENAME];
   int                handleCFFILE1;
-  cab_UBYTE          szFileNameCFDATA2[CB_MAX_FILENAME];
+  char               szFileNameCFDATA2[CB_MAX_FILENAME];
   int                handleCFDATA2;
-  cab_UBYTE          szFileNameCFFILE2[CB_MAX_FILENAME];
+  char               szFileNameCFFILE2[CB_MAX_FILENAME];
   int                handleCFFILE2;
-  cab_UBYTE          szFileNameCFFOLDER[CB_MAX_FILENAME];
+  char               szFileNameCFFOLDER[CB_MAX_FILENAME];
   int                handleCFFOLDER;
   cab_ULONG          sizeFileCFDATA1;
   cab_ULONG          sizeFileCFFILE1;

Modified: vendor/wine/dlls/cabinet/current/cabinet.spec
--- vendor/wine/dlls/cabinet/current/cabinet.spec	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/cabinet/current/cabinet.spec	2005-09-05 08:17:08 UTC (rev 17655)
@@ -1,5 +1,5 @@
 1 stub GetDllVersion
-2 stdcall DllGetVersion (ptr) CABINET_DllGetVersion
+2 stdcall -private DllGetVersion (ptr)
 3 stdcall Extract(ptr str)
 4 stub DeleteExtractedFiles
 10 cdecl FCICreate(ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr ptr)

Modified: vendor/wine/dlls/cabinet/current/cabinet_main.c
--- vendor/wine/dlls/cabinet/current/cabinet_main.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/cabinet/current/cabinet_main.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -52,7 +52,7 @@
  * NOTES
  *     Supposedly returns version from IE6SP1RP1
  */
-HRESULT WINAPI CABINET_DllGetVersion (DLLVERSIONINFO *pdvi)
+HRESULT WINAPI DllGetVersion (DLLVERSIONINFO *pdvi)
 {
   WARN("hmmm... not right version number \"5.1.1106.1\"?\n");
 

Modified: vendor/wine/dlls/comctl32/current/Makefile.in
--- vendor/wine/dlls/comctl32/current/Makefile.in	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/Makefile.in	2005-09-05 08:17:08 UTC (rev 17655)
@@ -31,10 +31,15 @@
 	propsheet.c \
 	rebar.c \
 	smoothscroll.c \
+	status.c \
 	string.c \
-	status.c \
 	syslink.c \
 	tab.c \
+	theme_combo.c \
+	theme_dialog.c \
+	theme_edit.c \
+	theme_listbox.c \
+	theming.c \
 	toolbar.c \
 	tooltips.c \
 	trackbar.c \

Modified: vendor/wine/dlls/comctl32/current/animate.c
--- vendor/wine/dlls/comctl32/current/animate.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/animate.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -53,7 +53,7 @@
     HMODULE	hModule;
     HIC         (WINAPI *fnICOpen)(DWORD, DWORD, UINT);
     LRESULT     (WINAPI *fnICClose)(HIC);
-    LRESULT     (WINAPI *fnICSendMessage)(HIC, UINT, DWORD, DWORD);
+    LRESULT     (WINAPI *fnICSendMessage)(HIC, UINT, DWORD_PTR, DWORD_PTR);
     DWORD       (WINAPIV *fnICDecompress)(HIC,DWORD,LPBITMAPINFOHEADER,LPVOID,LPBITMAPINFOHEADER,LPVOID);
 } fnIC;
 
@@ -139,7 +139,8 @@
 {
     infoPtr->hMMio = mmioOpenW(lpName, 0, MMIO_ALLOCBUF | MMIO_READ | MMIO_DENYWRITE);
 
-    return (BOOL)infoPtr->hMMio;
+    if(!infoPtr->hMMio) return FALSE;
+    return TRUE;
 }
 
 
@@ -655,14 +656,14 @@
     }
 
     outSize = fnIC.fnICSendMessage(infoPtr->hic, ICM_DECOMPRESS_GET_FORMAT,
-			    (DWORD)infoPtr->inbih, 0L);
+			    (DWORD_PTR)infoPtr->inbih, 0L);
 
     infoPtr->outbih = Alloc(outSize);
     if (!infoPtr->outbih)
 	return FALSE;
 
     if (fnIC.fnICSendMessage(infoPtr->hic, ICM_DECOMPRESS_GET_FORMAT,
-		      (DWORD)infoPtr->inbih, (DWORD)infoPtr->outbih) != outSize) 
+		      (DWORD_PTR)infoPtr->inbih, (DWORD_PTR)infoPtr->outbih) != outSize) 
     {
 	WARN("Can't get output BIH\n");
 	return FALSE;
@@ -673,7 +674,7 @@
 	return FALSE;
 
     if (fnIC.fnICSendMessage(infoPtr->hic, ICM_DECOMPRESS_BEGIN,
-		      (DWORD)infoPtr->inbih, (DWORD)infoPtr->outbih) != ICERR_OK) {
+		      (DWORD_PTR)infoPtr->inbih, (DWORD_PTR)infoPtr->outbih) != ICERR_OK) {
 	WARN("Can't begin decompression\n");
 	return FALSE;
     }
@@ -696,10 +697,10 @@
     if (!hInstance)
         hInstance = (HINSTANCE)GetWindowLongPtrW(infoPtr->hwndSelf, GWLP_HINSTANCE);
 
-    if (HIWORD(lpszName)) 
-    {
-	TRACE("(\"%s\");\n", debugstr_w(lpszName));
+    TRACE("(%s)\n", debugstr_w(lpszName));
 
+    if (HIWORD(lpszName))
+    {
 	if (!ANIMATE_LoadResW(infoPtr, hInstance, lpszName)) 
         {
 	    TRACE("No AVI resource found!\n");
@@ -712,9 +713,7 @@
     } 
     else 
     {
-	TRACE("(%u);\n", (WORD)(DWORD)lpszName);
-
-	if (!ANIMATE_LoadResW(infoPtr, hInstance, MAKEINTRESOURCEW((INT)lpszName))) 
+	if (!ANIMATE_LoadResW(infoPtr, hInstance, lpszName))
         {
 	    WARN("No AVI resource found!\n");
 	    return FALSE;

Modified: vendor/wine/dlls/comctl32/current/comboex.c
--- vendor/wine/dlls/comctl32/current/comboex.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/comboex.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -839,10 +839,10 @@
 }
 
 
-static DWORD COMBOEX_GetItemData (COMBOEX_INFO *infoPtr, INT index)
+static DWORD_PTR COMBOEX_GetItemData (COMBOEX_INFO *infoPtr, INT index)
 {
     CBE_ITEMDATA *item1, *item2;
-    DWORD ret = 0;
+    DWORD_PTR ret = 0;
 
     item1 = get_item_data(infoPtr, index);
     if ((item1 != NULL) && ((LRESULT)item1 != CB_ERR)) {
@@ -854,7 +854,7 @@
 	if (item1->mask & CBEIF_LPARAM) ret = item1->lParam;
 	TRACE("returning 0x%08lx\n", ret);
     } else {
-        ret = (DWORD)item1;
+        ret = (DWORD_PTR)item1;
         TRACE("non-valid result from combo, returning 0x%08lx\n", ret);
     }
     return ret;
@@ -878,7 +878,7 @@
 }
 
 
-static DWORD COMBOEX_SetItemData (COMBOEX_INFO *infoPtr, INT index, DWORD data)
+static DWORD_PTR COMBOEX_SetItemData (COMBOEX_INFO *infoPtr, INT index, DWORD_PTR data)
 {
     CBE_ITEMDATA *item1, *item2;
 
@@ -894,8 +894,8 @@
 	TRACE("setting lparam to 0x%08lx\n", data);
 	return 0;
     }
-    TRACE("non-valid result from combo 0x%08lx\n", (DWORD)item1);
-    return (LRESULT)item1;
+    TRACE("non-valid result from combo %p\n", item1);
+    return (DWORD_PTR)item1;
 }
 
 
@@ -1136,10 +1136,10 @@
 	    n = SendMessageW (infoPtr->hwndCombo, CB_GETCOUNT, 0, 0);
 	    for (cursel = 0; cursel < n; cursel++){
                 item = get_item_data(infoPtr, cursel);
-		if ((INT)item == CB_ERR) break;
+		if ((INT_PTR)item == CB_ERR) break;
 		if (!cmptext(COMBOEX_GetText(infoPtr, item), wintext)) break;
 	    }
-	    if ((cursel == n) || ((INT)item == CB_ERR)) {
+	    if ((cursel == n) || ((INT_PTR)item == CB_ERR)) {
 		TRACE("failed to find match??? item=%p cursel=%d\n",
 		      item, cursel);
 		if (infoPtr->hwndEdit)
@@ -1149,7 +1149,7 @@
 	}
 	else {
             item = get_item_data(infoPtr, cursel);
-	    if ((INT)item == CB_ERR) {
+	    if ((INT_PTR)item == CB_ERR) {
 		TRACE("failed to find match??? item=%p cursel=%d\n",
 		      item, cursel);
 		if (infoPtr->hwndEdit)
@@ -2223,7 +2223,7 @@
 	    return COMBOEX_SetCursel (infoPtr, (INT)wParam);
 
 	case CB_SETITEMDATA:
-	    return COMBOEX_SetItemData (infoPtr, (INT)wParam, (DWORD)lParam);
+	    return COMBOEX_SetItemData (infoPtr, (INT)wParam, (DWORD_PTR)lParam);
 
 	case CB_SETITEMHEIGHT:
 	    return COMBOEX_SetItemHeight (infoPtr, (INT)wParam, (UINT)lParam);

Modified: vendor/wine/dlls/comctl32/current/comctl32.h
--- vendor/wine/dlls/comctl32/current/comctl32.h	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/comctl32.h	2005-09-05 08:17:08 UTC (rev 17655)
@@ -249,4 +249,8 @@
   to->wMilliseconds = from->wMilliseconds;
 }
 
+extern void THEMING_Initialize(void);
+extern LRESULT THEMING_CallOriginalClass(HWND, UINT, WPARAM, LPARAM);
+extern void THEMING_SetSubclassData(HWND, ULONG_PTR);
+
 #endif  /* __WINE_COMCTL32_H */

Modified: vendor/wine/dlls/comctl32/current/comctl32.spec
--- vendor/wine/dlls/comctl32/current/comctl32.spec	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/comctl32.spec	2005-09-05 08:17:08 UTC (rev 17655)
@@ -123,8 +123,8 @@
 @ stdcall CreateStatusWindowW(long wstr long long)
 @ stdcall CreateToolbarEx(long long long long long long ptr long long long long long long)
 @ stdcall DestroyPropertySheetPage(long)
-@ stdcall DllGetVersion(ptr) COMCTL32_DllGetVersion
-@ stdcall DllInstall(long ptr) COMCTL32_DllInstall
+@ stdcall -private DllGetVersion(ptr)
+@ stdcall -private DllInstall(long wstr)
 @ stdcall DrawStatusText(long ptr ptr long) DrawStatusTextA
 @ stdcall DrawStatusTextW(long ptr wstr long)
 @ stdcall FlatSB_EnableScrollBar (long long long)

Modified: vendor/wine/dlls/comctl32/current/comctl32undoc.c
--- vendor/wine/dlls/comctl32/current/comctl32undoc.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/comctl32undoc.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -274,7 +274,6 @@
     HKEY newkey;
     WCHAR realname[2];
     LPWINEMRUITEM witem;
-    static const WCHAR emptyW[] = {'\0'};
 
     /* or should we do the following instead of RegOpenKeyEx:
      */
@@ -287,7 +286,7 @@
 	    err);
 	if ((err = RegCreateKeyExW( mp->extview.hKey, mp->extview.lpszSubKey,
 				    0,
-				    emptyW,
+				    NULL,
 				    REG_OPTION_NON_VOLATILE,
 				    KEY_READ | KEY_WRITE,
 				    0,
@@ -653,7 +652,6 @@
     WCHAR realname[2];
     LPWINEMRUITEM witem;
     DWORD type;
-    static const WCHAR emptyW[] = {'\0'};
 
     /* get space to save indices that will turn into names
      * but in order of most to least recently used
@@ -668,16 +666,16 @@
     /* open the sub key */
     if ((err = RegCreateKeyExW( mp->extview.hKey, mp->extview.lpszSubKey,
 			        0,
-				emptyW,
+				NULL,
 				REG_OPTION_NON_VOLATILE,
 				KEY_READ | KEY_WRITE,
                                 0,
 				&newkey,
 				&dwdisp))) {
 	/* error - what to do ??? */
-	ERR("(%lu %lu %lx %lx \"%s\" %p): Could not open key, error=%d\n",
+	ERR("(%lu %lu %lx %p %s %p): Could not open key, error=%d\n",
 	    mp->extview.cbSize, mp->extview.nMaxItems, mp->extview.dwFlags,
-	    (DWORD)mp->extview.hKey, debugstr_w(mp->extview.lpszSubKey),
+	    mp->extview.hKey, debugstr_w(mp->extview.lpszSubKey),
 				 mp->extview.lpfnCompare, err);
 	return 0;
     }
@@ -718,9 +716,9 @@
     else
 	mp->cursize = 0;
 
-    TRACE("(%lu %lu %lx %lx \"%s\" %p): Current Size = %ld\n",
+    TRACE("(%lu %lu %lx %p %s %p): Current Size = %ld\n",
 	  mp->extview.cbSize, mp->extview.nMaxItems, mp->extview.dwFlags,
-	  (DWORD)mp->extview.hKey, debugstr_w(mp->extview.lpszSubKey),
+	  mp->extview.hKey, debugstr_w(mp->extview.lpszSubKey),
 	  mp->extview.lpfnCompare, mp->cursize);
     return (HANDLE)mp;
 }

Modified: vendor/wine/dlls/comctl32/current/commctrl.c
--- vendor/wine/dlls/comctl32/current/commctrl.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/commctrl.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -119,7 +119,7 @@
             COMCTL32_hModule = (HMODULE)hinstDLL;
 
             /* add global subclassing atom (used by 'tooltip' and 'updown') */
-            COMCTL32_wSubclass = (LPWSTR)(DWORD)GlobalAddAtomW (strCC32SubclassInfo);
+            COMCTL32_wSubclass = (LPWSTR)(DWORD_PTR)GlobalAddAtomW (strCC32SubclassInfo);
             TRACE("Subclassing atom added: %p\n", COMCTL32_wSubclass);
 
             /* create local pattern brush */
@@ -144,6 +144,9 @@
             TRACKBAR_Register ();
             TREEVIEW_Register ();
             UPDOWN_Register ();
+
+            /* subclass user32 controls */
+            THEMING_Initialize ();
             break;
 
 	case DLL_PROCESS_DETACH:
@@ -305,7 +308,7 @@
  */
 
 BOOL WINAPI
-ShowHideMenuCtl (HWND hwnd, UINT uFlags, LPINT lpInfo)
+ShowHideMenuCtl (HWND hwnd, UINT_PTR uFlags, LPINT lpInfo)
 {
     LPINT lpMenuId;
 
@@ -322,9 +325,9 @@
     while (*lpMenuId != uFlags)
 	lpMenuId += 2;
 
-    if (GetMenuState ((HMENU)lpInfo[1], uFlags, MF_BYCOMMAND) & MFS_CHECKED) {
+    if (GetMenuState ((HMENU)(DWORD_PTR)lpInfo[1], uFlags, MF_BYCOMMAND) & MFS_CHECKED) {
 	/* uncheck menu item */
-	CheckMenuItem ((HMENU)lpInfo[0], *lpMenuId, MF_BYCOMMAND | MF_UNCHECKED);
+	CheckMenuItem ((HMENU)(DWORD_PTR)lpInfo[0], *lpMenuId, MF_BYCOMMAND | MF_UNCHECKED);
 
 	/* hide control */
 	lpMenuId++;
@@ -333,7 +336,7 @@
     }
     else {
 	/* check menu item */
-	CheckMenuItem ((HMENU)lpInfo[0], *lpMenuId, MF_BYCOMMAND | MF_CHECKED);
+	CheckMenuItem ((HMENU)(DWORD_PTR)lpInfo[0], *lpMenuId, MF_BYCOMMAND | MF_CHECKED);
 
 	/* show control */
 	lpMenuId++;
@@ -373,8 +376,8 @@
     INT  *lpRun;
     HWND hwndCtrl;
 
-    TRACE("(0x%08lx 0x%08lx 0x%08lx)\n",
-	   (DWORD)hwnd, (DWORD)lpRect, (DWORD)lpInfo);
+    TRACE("(%p %p %p)\n",
+	   hwnd, lpRect, lpInfo);
 
     GetClientRect (hwnd, lpRect);
     lpRun = lpInfo;
@@ -503,7 +506,7 @@
     return CreateWindowA(STATUSCLASSNAMEA, text, style,
 			   CW_USEDEFAULT, CW_USEDEFAULT,
 			   CW_USEDEFAULT, CW_USEDEFAULT,
-			   parent, (HMENU)wid, 0, 0);
+			   parent, (HMENU)(DWORD_PTR)wid, 0, 0);
 }
 
 
@@ -529,7 +532,7 @@
     return CreateWindowW(STATUSCLASSNAMEW, text, style,
 			   CW_USEDEFAULT, CW_USEDEFAULT,
 			   CW_USEDEFAULT, CW_USEDEFAULT,
-			   parent, (HMENU)wid, 0, 0);
+			   parent, (HMENU)(DWORD_PTR)wid, 0, 0);
 }
 
 
@@ -564,7 +567,7 @@
 {
     HWND hUD =
 	CreateWindowW (UPDOWN_CLASSW, 0, style, x, y, cx, cy,
-			 parent, (HMENU)id, inst, 0);
+			 parent, (HMENU)(DWORD_PTR)id, inst, 0);
     if (hUD) {
 	SendMessageW (hUD, UDM_SETBUDDY, (WPARAM)buddy, 0);
 	SendMessageW (hUD, UDM_SETRANGE, 0, MAKELONG(maxVal, minVal));
@@ -725,7 +728,7 @@
 
     hwndTB =
         CreateWindowExW(0, TOOLBARCLASSNAMEW, NULL, style|WS_CHILD, 0,0,100,30,
-                        hwnd, (HMENU)wID, COMCTL32_hModule, NULL);
+                        hwnd, (HMENU)(DWORD_PTR)wID, COMCTL32_hModule, NULL);
     if(hwndTB) {
 	TBADDBITMAP tbab;
 
@@ -784,7 +787,7 @@
  */
 
 HBITMAP WINAPI
-CreateMappedBitmap (HINSTANCE hInstance, INT idBitmap, UINT wFlags,
+CreateMappedBitmap (HINSTANCE hInstance, INT_PTR idBitmap, UINT wFlags,
 		    LPCOLORMAP lpColorMap, INT iNumMaps)
 {
     HGLOBAL hglb;
@@ -931,8 +934,7 @@
  *     Returns version of a comctl32.dll from IE4.01 SP1.
  */
 
-HRESULT WINAPI
-COMCTL32_DllGetVersion (DLLVERSIONINFO *pdvi)
+HRESULT WINAPI DllGetVersion (DLLVERSIONINFO *pdvi)
 {
     if (pdvi->cbSize != sizeof(DLLVERSIONINFO)) {
         WARN("wrong DLLVERSIONINFO size from app\n");
@@ -960,7 +962,7 @@
  *     Success: S_OK
  *     Failure: A HRESULT error
  */
-HRESULT WINAPI COMCTL32_DllInstall(BOOL bInstall, LPCWSTR cmdline)
+HRESULT WINAPI DllInstall(BOOL bInstall, LPCWSTR cmdline)
 {
   FIXME("(%s, %s): stub\n", bInstall?"TRUE":"FALSE",
 	debugstr_w(cmdline));

Modified: vendor/wine/dlls/comctl32/current/datetime.c
--- vendor/wine/dlls/comctl32/current/datetime.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/datetime.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -1164,6 +1164,15 @@
 
 
 static LRESULT
+DATETIME_SetFont (DATETIME_INFO *infoPtr, HFONT font, BOOL repaint)
+{
+    infoPtr->hFont = font;
+    if (repaint) InvalidateRect(infoPtr->hwndSelf, NULL, TRUE);
+    return 0;
+}
+
+
+static LRESULT
 DATETIME_Create (HWND hwnd, LPCREATESTRUCTW lpcs)
 {
     static const WCHAR SysMonthCal32W[] = { 'S', 'y', 's', 'M', 'o', 'n', 't', 'h', 'C', 'a', 'l', '3', '2', 0 };
@@ -1314,6 +1323,12 @@
     case WM_STYLECHANGED:
         return DATETIME_StyleChanged(infoPtr, wParam, (LPSTYLESTRUCT)lParam);
 
+    case WM_SETFONT:
+        return DATETIME_SetFont(infoPtr, (HFONT)wParam, (BOOL)lParam);
+
+    case WM_GETFONT:
+        return (LRESULT) infoPtr->hFont;
+
     default:
 	if ((uMsg >= WM_USER) && (uMsg < WM_APP))
 		ERR("unknown msg %04x wp=%08x lp=%08lx\n",

Modified: vendor/wine/dlls/comctl32/current/dpa.c
--- vendor/wine/dlls/comctl32/current/dpa.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/dpa.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -787,11 +787,6 @@
  * RETURNS
  *     Success: index of the pointer in the array.
  *     Failure: -1
- *
- * NOTES
- *     Binary search taken from R.Sedgewick "Algorithms in C"!
- *     Function is NOT tested!
- *     If something goes wrong, blame HIM not ME! (Eric Kohl)
  */
 INT WINAPI DPA_Search (const HDPA hdpa, LPVOID pFind, INT nStart,
                        PFNDPACOMPARE pfnCompare, LPARAM lParam, UINT uOptions)
@@ -807,47 +802,34 @@
         INT l, r, x, n;
         LPVOID *lpPtr;
 
-        TRACE("binary search\n");
-
         l = (nStart == -1) ? 0 : nStart;
         r = hdpa->nItemCount - 1;
         lpPtr = hdpa->ptrs;
         while (r >= l) {
             x = (l + r) / 2;
             n = (pfnCompare)(pFind, lpPtr[x], lParam);
-            if (n < 0)
+            if (n == 0)
+                return x;
+            else if (n < 0)
                 r = x - 1;
-            else
+            else /* (n > 0) */
                 l = x + 1;
-            if (n == 0) {
-                TRACE("-- ret=%d\n", n);
-                return n;
-            }
         }
-
-        if (uOptions & (DPAS_INSERTBEFORE | DPAS_INSERTAFTER)) {
-            TRACE("-- ret=%d\n", l);
-            return l;
-        }
+        if (uOptions & (DPAS_INSERTBEFORE|DPAS_INSERTAFTER)) return l;
     }
     else {
         /* array is not sorted --> use linear search */
         LPVOID *lpPtr;
         INT  nIndex;
 
-        TRACE("linear search\n");
-
         nIndex = (nStart == -1)? 0 : nStart;
         lpPtr = hdpa->ptrs;
         for (; nIndex < hdpa->nItemCount; nIndex++) {
-            if ((pfnCompare)(pFind, lpPtr[nIndex], lParam) == 0) {
-                TRACE("-- ret=%d\n", nIndex);
+            if ((pfnCompare)(pFind, lpPtr[nIndex], lParam) == 0)
                 return nIndex;
-            }
         }
     }
 
-    TRACE("-- not found: ret=-1\n");
     return -1;
 }
 

Modified: vendor/wine/dlls/comctl32/current/header.c
--- vendor/wine/dlls/comctl32/current/header.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/header.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -87,6 +87,7 @@
 
     HIMAGELIST  himl;		/* handle to an image list (may be 0) */
     HEADER_ITEM *items;		/* pointer to array of HEADER_ITEM's */
+    INT         *order;         /* array of item IDs indexed by order */
     BOOL	bRectsValid;	/* validity flag for bounding rectangles */
 } HEADER_INFO;
 
@@ -113,14 +114,10 @@
 {
     HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd);
     INT iorder = (INT)wParam;
-    UINT i;
 
-    if ((iorder <0) || iorder >infoPtr->uNumItem)
+    if ((iorder <0) || iorder >= infoPtr->uNumItem)
       return iorder;
-    for (i=0; i<infoPtr->uNumItem; i++)
-      if (HEADER_IndexToOrder(hwnd,i) == iorder)
-	return i;
-    return iorder;
+    return infoPtr->order[iorder];
 }
 
 static void
@@ -339,7 +336,7 @@
 	    }
 
 	    DeleteObject(hClipRgn);
-	    DeleteDC(hClipDC);
+	    ReleaseDC(hwnd, hClipDC);
 	}
         
 	if (((phdi->fmt & HDF_STRING)
@@ -385,7 +382,7 @@
     }
 
     x = rect.left;
-    for (i = 0; i < infoPtr->uNumItem; i++) {
+    for (i = 0; x <= rect.right && i < infoPtr->uNumItem; i++) {
         x = HEADER_DrawItem (hwnd, hdc, HEADER_OrderToIndex(hwnd,i), 
             infoPtr->iHotItem == i);
     }
@@ -416,7 +413,7 @@
 
     hFont = infoPtr->hFont ? infoPtr->hFont : GetStockObject (SYSTEM_FONT);
     hOldFont = SelectObject (hdc, hFont);
-    HEADER_DrawItem (hwnd, hdc, iItem, FALSE);
+    HEADER_DrawItem (hwnd, hdc, iItem, infoPtr->iHotItem == iItem);
     SelectObject (hdc, hOldFont);
 }
 
@@ -647,16 +644,19 @@
         if (infoPtr->items[0].pszText)
             Free (infoPtr->items[0].pszText);
         Free (infoPtr->items);
+        Free(infoPtr->order);
         infoPtr->items = 0;
+        infoPtr->order = 0;
         infoPtr->uNumItem = 0;
     }
     else {
         HEADER_ITEM *oldItems = infoPtr->items;
-        HEADER_ITEM *pItem;
         INT i;
         INT iOrder;
         TRACE("Complex delete! [iItem=%d]\n", iItem);
 
+        for (i = 0; i < infoPtr->uNumItem; i++)
+           TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder);
         if (infoPtr->items[iItem].pszText)
             Free (infoPtr->items[iItem].pszText);
         iOrder = infoPtr->items[iItem].iOrder;
@@ -676,11 +676,21 @@
         }
 
         /* Correct the orders */
-        for (i=infoPtr->uNumItem, pItem = infoPtr->items; i; i--, pItem++)
+        if (iOrder < infoPtr->uNumItem)
         {
-            if (pItem->iOrder > iOrder)
-            pItem->iOrder--;
+            memmove(&infoPtr->order[iOrder], &infoPtr->order[iOrder + 1],
+                   (infoPtr->uNumItem - iOrder) * sizeof(INT));
+            for (i = 0; i < infoPtr->uNumItem; i++)
+            {
+                if (infoPtr->order[i] > iItem)
+                    infoPtr->order[i]--;
+                if (i >= iOrder)
+                    infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i];
+            }
         }
+
+        for (i = 0; i < infoPtr->uNumItem; i++)
+           TRACE("%d: order=%d, iOrder=%d, ->iOrder=%d\n", i, infoPtr->order[i], infoPtr->items[i].iOrder, infoPtr->items[infoPtr->order[i]].iOrder);
         Free (oldItems);
     }
 
@@ -850,14 +860,13 @@
 static LRESULT
 HEADER_GetOrderArray(HWND hwnd, WPARAM wParam, LPARAM lParam)
 {
-    int i;
     LPINT order = (LPINT) lParam;
     HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd);
 
     if ((unsigned int)wParam <infoPtr->uNumItem)
       return FALSE;
-    for (i=0; i<(int)wParam; i++)
-      *order++=HEADER_OrderToIndex(hwnd,i);
+
+    memcpy(order, infoPtr->order, infoPtr->uNumItem * sizeof(INT));
     return TRUE;
 }
 
@@ -871,6 +880,7 @@
 
     if ((unsigned int)wParam <infoPtr->uNumItem)
       return FALSE;
+    memcpy(infoPtr->order, order, infoPtr->uNumItem * sizeof(INT));
     for (i=0; i<(int)wParam; i++)
       {
         lpItem = &infoPtr->items[*order++];
@@ -923,10 +933,12 @@
 
     if (infoPtr->uNumItem == 0) {
         infoPtr->items = Alloc (sizeof (HEADER_ITEM));
+        infoPtr->order = Alloc(sizeof(INT));
         infoPtr->uNumItem++;
     }
     else {
         HEADER_ITEM *oldItems = infoPtr->items;
+        INT *oldOrder = infoPtr->order;
 
         infoPtr->uNumItem++;
         infoPtr->items = Alloc (sizeof (HEADER_ITEM) * infoPtr->uNumItem);
@@ -949,13 +961,21 @@
             }
         }
 
+        infoPtr->order = Alloc(sizeof(INT) * infoPtr->uNumItem);
+        memcpy(infoPtr->order, oldOrder, iOrder * sizeof(INT));
+        infoPtr->order[iOrder] = nItem;
+        memcpy(&infoPtr->order[iOrder + 1], &oldOrder[iOrder],
+               (infoPtr->uNumItem - iOrder - 1) * sizeof(INT));
+
         Free (oldItems);
+        Free(oldOrder);
     }
 
-    for (i=0; i < infoPtr->uNumItem; i++)
+    for (i = 0; i < infoPtr->uNumItem; i++)
     {
-        if (infoPtr->items[i].iOrder >= iOrder)
-            infoPtr->items[i].iOrder++;
+        if (i != iOrder && infoPtr->order[i] >= nItem)
+            infoPtr->order[i]++;
+        infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i];
     }
 
     lpItem = &infoPtr->items[nItem];
@@ -1025,10 +1045,12 @@
 
     if (infoPtr->uNumItem == 0) {
         infoPtr->items = Alloc (sizeof (HEADER_ITEM));
+        infoPtr->order = Alloc(sizeof(INT));
         infoPtr->uNumItem++;
     }
     else {
         HEADER_ITEM *oldItems = infoPtr->items;
+        INT *oldOrder = infoPtr->order;
 
         infoPtr->uNumItem++;
         infoPtr->items = Alloc (sizeof (HEADER_ITEM) * infoPtr->uNumItem);
@@ -1051,13 +1073,21 @@
             }
         }
 
+        infoPtr->order = Alloc(infoPtr->uNumItem * sizeof(INT));
+        memcpy(infoPtr->order, oldOrder, iOrder * sizeof(INT));
+        infoPtr->order[iOrder] = nItem;
+        memcpy(&infoPtr->order[iOrder + 1], &oldOrder[iOrder],
+               (infoPtr->uNumItem - iOrder - 1) * sizeof(INT));
+
         Free (oldItems);
+        Free(oldOrder);
     }
 
-    for (i=0; i < infoPtr->uNumItem; i++)
+    for (i = 0; i < infoPtr->uNumItem; i++)
     {
-        if (infoPtr->items[i].iOrder >= iOrder)
-            infoPtr->items[i].iOrder++;
+        if (i != iOrder && infoPtr->order[i] >= nItem)
+            infoPtr->order[i]++;
+        infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i];
     }
 
     lpItem = &infoPtr->items[nItem];
@@ -1143,7 +1173,7 @@
     HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd);
     HIMAGELIST himlOld;
 
-    TRACE("(himl 0x%x)\n", (int)himl);
+    TRACE("(himl %p)\n", himl);
     himlOld = infoPtr->himl;
     infoPtr->himl = himl;
 
@@ -1224,7 +1254,27 @@
 
     if (phdi->mask & HDI_ORDER)
       {
-	lpItem->iOrder = phdi->iOrder;
+        INT i, nMin, nMax;
+        
+        if (lpItem->iOrder < phdi->iOrder)
+        {
+            memmove(&infoPtr->order[lpItem->iOrder],
+                   &infoPtr->order[lpItem->iOrder + 1],
+                   (phdi->iOrder - lpItem->iOrder) * sizeof(INT));
+        }
+        if (phdi->iOrder < lpItem->iOrder)
+        {
+            memmove(&infoPtr->order[phdi->iOrder + 1],
+                    &infoPtr->order[phdi->iOrder],
+                    (lpItem->iOrder - phdi->iOrder) * sizeof(INT));
+        }
+        infoPtr->order[phdi->iOrder] = nItem;
+        nMin = min(lpItem->iOrder, phdi->iOrder);
+        nMax = max(lpItem->iOrder, phdi->iOrder);
+        for (i = nMin; i <= nMax; i++)
+        {
+            infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i];
+        }
       }
 
     HEADER_SendHeaderNotify (hwnd, HDN_ITEMCHANGEDA, nItem, phdi->mask);
@@ -1289,7 +1339,27 @@
 
     if (phdi->mask & HDI_ORDER)
       {
-	lpItem->iOrder = phdi->iOrder;
+        INT i, nMin, nMax;
+        
+        if (lpItem->iOrder < phdi->iOrder)
+        {
+            memmove(&infoPtr->order[lpItem->iOrder],
+                   &infoPtr->order[lpItem->iOrder + 1],
+                   (phdi->iOrder - lpItem->iOrder) * sizeof(INT));
+        }
+        if (phdi->iOrder < lpItem->iOrder)
+        {
+            memmove(&infoPtr->order[phdi->iOrder + 1],
+                    &infoPtr->order[phdi->iOrder],
+                    (lpItem->iOrder - phdi->iOrder) * sizeof(INT));
+        }
+        infoPtr->order[phdi->iOrder] = nItem;
+        nMin = min(lpItem->iOrder, phdi->iOrder);
+        nMax = max(lpItem->iOrder, phdi->iOrder);
+        for (i = nMin; i <= nMax; i++)
+        {
+            infoPtr->items[infoPtr->order[i]].iOrder = infoPtr->order[i];
+        }
       }
 
     HEADER_SendHeaderNotify(hwnd, HDN_ITEMCHANGEDW, nItem, phdi->mask);
@@ -1320,7 +1390,6 @@
     TEXTMETRICW tm;
     HFONT hOldFont;
     HDC   hdc;
-    BOOL themingActive = IsAppThemed() && IsThemeActive();
 
     infoPtr = (HEADER_INFO *)Alloc (sizeof(HEADER_INFO));
     SetWindowLongPtrW (hwnd, 0, (DWORD_PTR)infoPtr);
@@ -1329,6 +1398,7 @@
     infoPtr->uNumItem = 0;
     infoPtr->hFont = 0;
     infoPtr->items = 0;
+    infoPtr->order = 0;
     infoPtr->bRectsValid = FALSE;
     infoPtr->hcurArrow = LoadCursorW (0, (LPWSTR)IDC_ARROW);
     infoPtr->hcurDivider = LoadCursorW (COMCTL32_hModule, MAKEINTRESOURCEW(IDC_DIVIDER));
@@ -1350,7 +1420,7 @@
     SelectObject (hdc, hOldFont);
     ReleaseDC (0, hdc);
 
-    if (themingActive) OpenThemeData(hwnd, themeClass);
+    OpenThemeData(hwnd, themeClass);
 
     return 0;
 }
@@ -1373,6 +1443,9 @@
         Free (infoPtr->items);
     }
 
+    if (infoPtr->order)
+        Free(infoPtr->order);
+
     if (infoPtr->himl)
 	ImageList_Destroy (infoPtr->himl);
 
@@ -1506,6 +1579,9 @@
             lpItem= &infoPtr->items[infoPtr->iMoveItem];
 	    lpItem->iOrder = newindex;
 
+            infoPtr->order[oldindex] = nItem;
+            infoPtr->order[newindex] = infoPtr->iMoveItem;
+
 	    infoPtr->bRectsValid = FALSE;
 	    InvalidateRect(hwnd, NULL, FALSE);
 	    /* FIXME: Should some WM_NOTIFY be sent */
@@ -1581,6 +1657,22 @@
 
 
 static LRESULT
+HEADER_MouseLeave (HWND hwnd, WPARAM wParam, LPARAM lParam)
+{
+    HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd);
+    /* Reset hot-tracked item when mouse leaves control. */
+    INT oldHotItem = infoPtr->iHotItem;
+    HDC hdc = GetDC (hwnd);
+
+    infoPtr->iHotItem = -1;
+    if (oldHotItem != -1) HEADER_RefreshItem (hwnd, hdc, oldHotItem);
+    ReleaseDC (hwnd, hdc);
+
+    return 0;
+}
+
+
+static LRESULT
 HEADER_MouseMove (HWND hwnd, WPARAM wParam, LPARAM lParam)
 {
     HEADER_INFO *infoPtr = HEADER_GetInfoPtr (hwnd);
@@ -1589,28 +1681,35 @@
     UINT  flags;
     INT   nItem, nWidth;
     HDC   hdc;
+    /* With theming, hottracking is always enabled */
+    BOOL  hotTrackEnabled =
+        ((dwStyle & HDS_BUTTONS) && (dwStyle & HDS_HOTTRACK))
+        || (GetWindowTheme (hwnd) != NULL);
+    INT oldHotItem = infoPtr->iHotItem;
 
     pt.x = (INT)(SHORT)LOWORD(lParam);
     pt.y = (INT)(SHORT)HIWORD(lParam);
     HEADER_InternalHitTest (hwnd, &pt, &flags, &nItem);
 
-    if ((dwStyle & HDS_BUTTONS) && (dwStyle & HDS_HOTTRACK)) {
+    if (hotTrackEnabled) {
 	if (flags & (HHT_ONHEADER | HHT_ONDIVIDER | HHT_ONDIVOPEN))
 	    infoPtr->iHotItem = nItem;
 	else
 	    infoPtr->iHotItem = -1;
-	InvalidateRect(hwnd, NULL, FALSE);
     }
 
     if (infoPtr->bCaptured) {
 	if (infoPtr->bPressed) {
+            BOOL oldState = infoPtr->items[infoPtr->iMoveItem].bDown;
 	    if ((nItem == infoPtr->iMoveItem) && (flags == HHT_ONHEADER))
 		infoPtr->items[infoPtr->iMoveItem].bDown = TRUE;
 	    else
 		infoPtr->items[infoPtr->iMoveItem].bDown = FALSE;
-	    hdc = GetDC (hwnd);
-	    HEADER_RefreshItem (hwnd, hdc, infoPtr->iMoveItem);
-	    ReleaseDC (hwnd, hdc);
+            if (oldState != infoPtr->items[infoPtr->iMoveItem].bDown) {
+                hdc = GetDC (hwnd);
+	        HEADER_RefreshItem (hwnd, hdc, infoPtr->iMoveItem);
+	        ReleaseDC (hwnd, hdc);
+            }
 
 	    TRACE("Moving pressed item %d!\n", infoPtr->iMoveItem);
 	}
@@ -1643,8 +1742,18 @@
 	}
     }
 
-    if ((dwStyle & HDS_BUTTONS) && (dwStyle & HDS_HOTTRACK)) {
-	FIXME("hot track support!\n");
+    if (hotTrackEnabled) {
+        TRACKMOUSEEVENT tme;
+        if (oldHotItem != infoPtr->iHotItem) {
+	    hdc = GetDC (hwnd);
+	    if (oldHotItem != -1) HEADER_RefreshItem (hwnd, hdc, oldHotItem);
+	    if (infoPtr->iHotItem != -1) HEADER_RefreshItem (hwnd, hdc, infoPtr->iHotItem);
+	    ReleaseDC (hwnd, hdc);
+        }
+        tme.cbSize = sizeof( tme );
+        tme.dwFlags = TME_LEAVE;
+        tme.hwndTrack = hwnd;
+        TrackMouseEvent( &tme );
     }
 
     return 0;
@@ -1854,6 +1963,9 @@
         case WM_LBUTTONUP:
             return HEADER_LButtonUp (hwnd, wParam, lParam);
 
+        case WM_MOUSELEAVE:
+            return HEADER_MouseLeave (hwnd, wParam, lParam);
+
         case WM_MOUSEMOVE:
             return HEADER_MouseMove (hwnd, wParam, lParam);
 

Modified: vendor/wine/dlls/comctl32/current/imagelist.c
--- vendor/wine/dlls/comctl32/current/imagelist.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/imagelist.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -1084,8 +1084,8 @@
     bMask = (himl->flags & ILC_MASK) && (fStyle & ILD_MASK) ;
     bBlend = (fStyle & (ILD_BLEND25 | ILD_BLEND50) ) && !bMask;
 
-    TRACE("himl(0x%lx) hbmMask(%p) iImage(%d) x(%d) y(%d) cx(%d) cy(%d)\n",
-          (DWORD)himl, himl->hbmMask, pimldp->i, pimldp->x, pimldp->y, cx, cy);
+    TRACE("himl(%p) hbmMask(%p) iImage(%d) x(%d) y(%d) cx(%d) cy(%d)\n",
+          himl, himl->hbmMask, pimldp->i, pimldp->x, pimldp->y, cx, cy);
 
     /* we will use these DCs to access the images and masks in the ImageList */
     hImageListDC = himl->hdcImage;

Modified: vendor/wine/dlls/comctl32/current/ipaddress.c
--- vendor/wine/dlls/comctl32/current/ipaddress.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/ipaddress.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -143,7 +143,7 @@
         fgCol = COLOR_GRAYTEXT;
     }
     
-    FillRect (hdc, &rect, (HBRUSH) (bgCol+1));
+    FillRect (hdc, &rect, (HBRUSH)(DWORD_PTR)(bgCol+1));
     DrawEdge (hdc, &rect, EDGE_SUNKEN, BF_RECT | BF_ADJUST);
     
     SetBkColor  (hdc, GetSysColor(bgCol));

Modified: vendor/wine/dlls/comctl32/current/listview.c
--- vendor/wine/dlls/comctl32/current/listview.c	2005-09-05 08:01:05 UTC (rev 17654)
+++ vendor/wine/dlls/comctl32/current/listview.c	2005-09-05 08:17:08 UTC (rev 17655)
@@ -379,6 +379,9 @@
 #define LV_FL_DT_FLAGS  (DT_TOP | DT_NOPREFIX | DT_EDITCONTROL | DT_CENTER | DT_WORDBREAK | DT_NOCLIP)
 #define LV_SL_DT_FLAGS  (DT_VCENTER | DT_NOPREFIX | DT_EDITCONTROL | DT_SINGLELINE | DT_WORD_ELLIPSIS | DT_END_ELLIPSIS)
 
+/* Image index from state */
+#define STATEIMAGEINDEX(x) (((x) & LVIS_STATEIMAGEMASK) >> 12)
+
 /* The time in milliseconds to reset the search in the list */
 #define KEY_DELAY       450
 
@@ -1243,8 +1246,8 @@
 	TRACE("building icon ranges:\n");
 	for (nItem = 0; nItem < infoPtr->nItemCount; nItem++)
 	{
-            rcItem.left = (LONG)DPA_GetPtr(infoPtr->hdpaPosX, nItem);
-	    rcItem.top = (LONG)DPA_GetPtr(infoPtr->hdpaPosY, nItem);
+            rcItem.left = (LONG_PTR)DPA_GetPtr(infoPtr->hdpaPosX, nItem);
[truncated at 1000 lines; 24299 more skipped]