Fix warnings in 64bit.

diff --git a/dlls/commdlg/cdlg32.c b/dlls/commdlg/cdlg32.c
index 689db12..2f45eda 100644
--- a/dlls/commdlg/cdlg32.c
+++ b/dlls/commdlg/cdlg32.c
@@ -158,7 +158,7 @@
         if (COMDLG32_TlsIndex == TLS_OUT_OF_INDEXES)
 	  COMDLG32_TlsIndex = TlsAlloc();
 	if (COMDLG32_TlsIndex != TLS_OUT_OF_INDEXES)
-	  TlsSetValue(COMDLG32_TlsIndex, (void *)err);
+	  TlsSetValue(COMDLG32_TlsIndex, (LPVOID)(DWORD_PTR)err);
 	else
 	  FIXME("No Tls Space\n");
 }
@@ -176,7 +176,7 @@
 DWORD WINAPI CommDlgExtendedError(void)
 {
         if (COMDLG32_TlsIndex != TLS_OUT_OF_INDEXES)
-	  return (DWORD)TlsGetValue(COMDLG32_TlsIndex);
+	  return (DWORD_PTR)TlsGetValue(COMDLG32_TlsIndex);
 	else
 	  return 0; /* we never set an error, so there isn't one */
 }
diff --git a/dlls/commdlg/colordlg.c b/dlls/commdlg/colordlg.c
index f892cc2..902de60 100644
--- a/dlls/commdlg/colordlg.c
+++ b/dlls/commdlg/colordlg.c
@@ -1303,7 +1303,7 @@
     }
 
     bRet = DialogBoxIndirectParamW(COMDLG32_hInstance, template, lpChCol->hwndOwner,
-                     ColorDlgProc, (DWORD)lpChCol);
+                     ColorDlgProc, (LPARAM)lpChCol);
     return bRet;
 }
 
diff --git a/dlls/commdlg/filedlg.c b/dlls/commdlg/filedlg.c
index 8b2ac81..95b856f 100644
--- a/dlls/commdlg/filedlg.c
+++ b/dlls/commdlg/filedlg.c
@@ -1091,7 +1091,7 @@
 		    stringId = 0;
 	    }
 	    lpdi->hinst = COMDLG32_hInstance;
-	    lpdi->lpszText =  (LPSTR) stringId;
+	    lpdi->lpszText =  MAKEINTRESOURCEA(stringId);
 	}
         return FALSE;
     }
@@ -2378,7 +2378,7 @@
     lpstrFilter = (LPWSTR) CBGetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB,
                                              nFilterIndexCB);
 
-    if ((INT)lpstrFilter == CB_ERR)  /* control is empty */
+    if ((INT_PTR)lpstrFilter == CB_ERR)  /* control is empty */
       lpstrFilter = NULL;
 
     if(lpstrFilter)
@@ -2423,7 +2423,7 @@
 
       lpstrFilter = (LPWSTR) CBGetItemDataPtr(fodInfos->DlgInfos.hwndFileTypeCB,
                                              iItem);
-      if((int)lpstrFilter != CB_ERR)
+      if((INT_PTR)lpstrFilter != CB_ERR)
       {
           DWORD len;
           CharLowerW(lpstrFilter); /* lowercase */
diff --git a/dlls/commdlg/fontdlg.c b/dlls/commdlg/fontdlg.c
index 407ee3d..96894b5 100644
--- a/dlls/commdlg/fontdlg.c
+++ b/dlls/commdlg/fontdlg.c
@@ -670,7 +670,7 @@
     if (lpcf->Flags & CF_INITTOLOGFONTSTRUCT)
     {
         /* look for fitting font name in combobox1 */
-        j=SendDlgItemMessageW(hDlg,cmb1,CB_FINDSTRING,-1,(LONG)lpxx->lfFaceName);
+        j=SendDlgItemMessageW(hDlg,cmb1,CB_FINDSTRING,-1,(LPARAM)lpxx->lfFaceName);
         if (j!=CB_ERR)
         {
             INT height = lpxx->lfHeight < 0 ? -lpxx->lfHeight :
@@ -699,7 +699,7 @@
     }
     if ((lpcf->Flags & CF_USESTYLE) && lpcf->lpszStyle)
     {
-        j=SendDlgItemMessageW(hDlg,cmb2,CB_FINDSTRING,-1,(LONG)lpcf->lpszStyle);
+        j=SendDlgItemMessageW(hDlg,cmb2,CB_FINDSTRING,-1,(LPARAM)lpcf->lpszStyle);
         if (j!=CB_ERR)
         {
             j=SendDlgItemMessageW(hDlg,cmb2,CB_SETCURSEL,j,0);
diff --git a/dlls/commdlg/printdlg.c b/dlls/commdlg/printdlg.c
index c10e62d..7c5dd56 100644
--- a/dlls/commdlg/printdlg.c
+++ b/dlls/commdlg/printdlg.c
@@ -3157,7 +3157,7 @@
                 pda->curdlg.ptPaperSize.x = tmp;
             }
 	} else 
-	    WARN("GlobalLock(pda->pdlg.hDevMode) fail? hDevMode=%ld", (DWORD)pda->pdlg.hDevMode);
+	    WARN("GlobalLock(pda->pdlg.hDevMode) fail? hDevMode=%p", pda->pdlg.hDevMode);
 	/* Drawing paper prev */
 	PRINTDLG_PS_ChangePaperPrev(pda);
 	return TRUE;
diff --git a/dlls/crypt32/encode.c b/dlls/crypt32/encode.c
index 121569f..877ffca 100644
--- a/dlls/crypt32/encode.c
+++ b/dlls/crypt32/encode.c
@@ -190,7 +190,7 @@
      */
     if (!HIWORD(pszOID))
     {
-        snprintf(numericOID, sizeof(numericOID), "#%d", (int)pszOID);
+        snprintf(numericOID, sizeof(numericOID), "#%d", LOWORD(pszOID));
         oid = numericOID;
     }
     else
diff --git a/dlls/crypt32/protectdata.c b/dlls/crypt32/protectdata.c
index ee9fd66..12b5ac3 100644
--- a/dlls/crypt32/protectdata.c
+++ b/dlls/crypt32/protectdata.c
@@ -132,7 +132,7 @@
 
 #define TRACE_DATA_BLOB(blob) do { \
     TRACE("%s cbData: %u\n", #blob ,(unsigned int)((blob)->cbData)); \
-    TRACE("%s pbData @ 0x%x:%s\n", #blob ,(unsigned int)((blob)->pbData), \
+    TRACE("%s pbData @ %p:%s\n", #blob ,(blob)->pbData, \
           hex_str((blob)->pbData, (blob)->cbData)); \
 } while (0)
 
@@ -778,14 +778,14 @@
 report(DATA_BLOB* pDataIn, DATA_BLOB* pOptionalEntropy,
        CRYPTPROTECT_PROMPTSTRUCT* pPromptStruct, DWORD dwFlags)
 {
-    TRACE("pPromptStruct: 0x%x\n",(unsigned int)pPromptStruct);
+    TRACE("pPromptStruct: %p\n", pPromptStruct);
     if (pPromptStruct)
     {
         TRACE("  cbSize: 0x%x\n",(unsigned int)pPromptStruct->cbSize);
         TRACE("  dwPromptFlags: 0x%x\n",(unsigned int)pPromptStruct->dwPromptFlags);
-        TRACE("  hwndApp: 0x%x\n",(unsigned int)pPromptStruct->hwndApp);
-        TRACE("  szPrompt: 0x%x %s\n",
-              (unsigned int)pPromptStruct->szPrompt,
+        TRACE("  hwndApp: %p\n", pPromptStruct->hwndApp);
+        TRACE("  szPrompt: %p %s\n",
+              pPromptStruct->szPrompt,
               pPromptStruct->szPrompt ? debugstr_w(pPromptStruct->szPrompt)
               : "");
     }
@@ -855,7 +855,7 @@
 
     /* debug: show our arguments */
     report(pDataIn,pOptionalEntropy,pPromptStruct,dwFlags);
-    TRACE("\tszDataDescr: 0x%x %s\n",(unsigned int)szDataDescr,
+    TRACE("\tszDataDescr: %p %s\n", szDataDescr,
           szDataDescr ? debugstr_w(szDataDescr) : "");
 
     /* Windows appears to create an empty szDataDescr instead of maintaining
@@ -1026,7 +1026,7 @@
 
     /* debug: show our arguments */
     report(pDataIn,pOptionalEntropy,pPromptStruct,dwFlags);
-    TRACE("\tppszDataDescr: 0x%x\n",(unsigned int)ppszDataDescr);
+    TRACE("\tppszDataDescr: %p\n", ppszDataDescr);
 
     /* take apart the opaque blob */
     if (!unserialize(pDataIn, &protect_data))
diff --git a/dlls/shell32/brsfolder.c b/dlls/shell32/brsfolder.c
index 9d5b955..b4fdc48 100644
--- a/dlls/shell32/brsfolder.c
+++ b/dlls/shell32/brsfolder.c
@@ -316,7 +316,7 @@
 	HRESULT		hr;
 	HWND		hwnd = GetParent( info->hwndTreeView );
 
-	TRACE("%p %p %x %p\n",lpsf, pidl, (INT)hParent, lpe);
+	TRACE("%p %p %p %p\n",lpsf, pidl, hParent, lpe);
 
 	/* No IEnumIDList -> No children */
 	if (!lpe) return;
diff --git a/dlls/shell32/control.c b/dlls/shell32/control.c
index 3f7a940..1335ac6 100644
--- a/dlls/shell32/control.c
+++ b/dlls/shell32/control.c
@@ -153,7 +153,7 @@
 {
    CPanel*	panel = (CPanel*)cs->lpCreateParams;
 
-   SetWindowLongA(hWnd, 0, (LPARAM)panel);
+   SetWindowLongPtrA(hWnd, 0, (LONG_PTR)panel);
    panel->status = 0;
    panel->hWnd = hWnd;
 }
@@ -244,7 +244,7 @@
 static LRESULT WINAPI	Control_WndProc(HWND hWnd, UINT wMsg,
 					WPARAM lParam1, LPARAM lParam2)
 {
-   CPanel*	panel = (CPanel*)GetWindowLongA(hWnd, 0);
+   CPanel*	panel = (CPanel*)GetWindowLongPtrA(hWnd, 0);
 
    if (panel || wMsg == WM_CREATE) {
       switch (wMsg) {
diff --git a/dlls/shell32/dde.c b/dlls/shell32/dde.c
index 270ebaf..21ddfcc 100644
--- a/dlls/shell32/dde.c
+++ b/dlls/shell32/dde.c
@@ -104,16 +104,16 @@
     switch (uType)
     {
     case XTYP_CONNECT:
-        return (HDDEDATA)Dde_OnConnect(hsz1, hsz2);
+        return (HDDEDATA)(DWORD_PTR)Dde_OnConnect(hsz1, hsz2);
     case XTYP_CONNECT_CONFIRM:
         Dde_OnConnectConfirm(hconv, hsz1, hsz2);
         return NULL;
     case XTYP_WILDCONNECT:
-        return (HDDEDATA)Dde_OnWildConnect(hsz1, hsz2);
+        return (HDDEDATA)(DWORD_PTR)Dde_OnWildConnect(hsz1, hsz2);
     case XTYP_REQUEST:
         return (HDDEDATA)Dde_OnRequest(uFmt, hconv, hsz1, hsz2);
     case XTYP_EXECUTE:
-        return (HDDEDATA)Dde_OnExecute(hconv, hsz1, hdata);
+        return (HDDEDATA)(DWORD_PTR)Dde_OnExecute(hconv, hsz1, hdata);
     case XTYP_DISCONNECT:
         Dde_OnDisconnect(hconv);
         return NULL;
diff --git a/dlls/shell32/shell32_main.c b/dlls/shell32/shell32_main.c
index 80fd423..6dbc714 100644
--- a/dlls/shell32/shell32_main.c
+++ b/dlls/shell32/shell32_main.c
@@ -308,12 +308,13 @@
  * SHGetFileInfoW            [SHELL32.@]
  *
  */
-DWORD WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
-                            SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags )
+DWORD_PTR WINAPI SHGetFileInfoW(LPCWSTR path,DWORD dwFileAttributes,
+                                SHFILEINFOW *psfi, UINT sizeofpsfi, UINT flags )
 {
     WCHAR szLocation[MAX_PATH], szFullPath[MAX_PATH];
     int iIndex;
-    DWORD ret = TRUE, dwAttributes = 0;
+    DWORD_PTR ret = TRUE;
+    DWORD dwAttributes = 0;
     IShellFolder * psfParent = NULL;
     IExtractIconW * pei = NULL;
     LPITEMIDLIST    pidlLast = NULL, pidl = NULL;
@@ -557,9 +558,9 @@
         if (ret)
         {
             if (flags & SHGFI_SMALLICON)
-                ret = (DWORD) ShellSmallIconList;
+                ret = (DWORD_PTR) ShellSmallIconList;
             else
-                ret = (DWORD) ShellBigIconList;
+                ret = (DWORD_PTR) ShellBigIconList;
         }
     }
 
@@ -596,9 +597,9 @@
 /*************************************************************************
  * SHGetFileInfoA            [SHELL32.@]
  */
-DWORD WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
-                              SHFILEINFOA *psfi, UINT sizeofpsfi,
-                              UINT flags )
+DWORD_PTR WINAPI SHGetFileInfoA(LPCSTR path,DWORD dwFileAttributes,
+                                SHFILEINFOA *psfi, UINT sizeofpsfi,
+                                UINT flags )
 {
     INT len;
     LPWSTR temppath;
@@ -706,7 +707,7 @@
     {
         ret = PrivateExtractIconsW(lpszFile, 0, cx, cy, NULL, NULL, 0, LR_DEFAULTCOLOR);
         if (ret != 0xFFFFFFFF && ret)
-            return (HICON)ret;
+            return (HICON)(UINT_PTR)ret;
         return NULL;
     }
     else
diff --git a/dlls/shell32/shell32_main.h b/dlls/shell32/shell32_main.h
index 1dc8d5c..b334311 100644
--- a/dlls/shell32/shell32_main.h
+++ b/dlls/shell32/shell32_main.h
@@ -214,7 +214,7 @@
 #define HINSTANCE_32(h16)	((HINSTANCE)(ULONG_PTR)(h16))
 #define HINSTANCE_16(h32)	(LOWORD(h32))
 
-typedef UINT (*SHELL_ExecuteW32)(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
+typedef UINT_PTR (*SHELL_ExecuteW32)(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
 			    LPSHELLEXECUTEINFOW sei, LPSHELLEXECUTEINFOW sei_out);
 
 BOOL WINAPI ShellExecuteExW32(LPSHELLEXECUTEINFOW sei, SHELL_ExecuteW32 execfunc);
diff --git a/dlls/shell32/shelllink.c b/dlls/shell32/shelllink.c
index 8d57805..4146782 100644
--- a/dlls/shell32/shelllink.c
+++ b/dlls/shell32/shelllink.c
@@ -2384,7 +2384,7 @@
 }
 
 static HRESULT WINAPI
-ShellLink_GetCommandString( IContextMenu* iface, UINT idCmd, UINT uType,
+ShellLink_GetCommandString( IContextMenu* iface, UINT_PTR idCmd, UINT uType,
                             UINT* pwReserved, LPSTR pszName, UINT cchMax )
 {
     IShellLinkImpl *This = impl_from_IContextMenu(iface);
diff --git a/dlls/shell32/shellord.c b/dlls/shell32/shellord.c
index a8e36b4..2fb50fa 100644
--- a/dlls/shell32/shellord.c
+++ b/dlls/shell32/shellord.c
@@ -355,16 +355,16 @@
 	va_start(args, uType);
 	/* wvsprintfA(buf,fmt, args); */
 
-	TRACE("(%08lx,%08lx,%p,%p,%08x)\n",
-	(DWORD)hInstance,(DWORD)hWnd,lpText,lpCaption,uType);
+	TRACE("(%p,%p,%p,%p,%08x)\n",
+	    hInstance,hWnd,lpText,lpCaption,uType);
 
-	if (!HIWORD(lpCaption))
-	  LoadStringW(hInstance, (DWORD)lpCaption, szTitle, sizeof(szTitle)/sizeof(szTitle[0]));
+	if (IS_INTRESOURCE(lpCaption))
+	  LoadStringW(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle)/sizeof(szTitle[0]));
 	else
 	  pszTitle = lpCaption;
 
-	if (!HIWORD(lpText))
-	  LoadStringW(hInstance, (DWORD)lpText, szText, sizeof(szText)/sizeof(szText[0]));
+	if (IS_INTRESOURCE(lpText))
+	  LoadStringW(hInstance, LOWORD(lpText), szText, sizeof(szText)/sizeof(szText[0]));
 	else
 	  pszText = lpText;
 
@@ -412,16 +412,16 @@
 	va_start(args, uType);
 	/* wvsprintfA(buf,fmt, args); */
 
-	TRACE("(%08lx,%08lx,%p,%p,%08x)\n",
-	(DWORD)hInstance,(DWORD)hWnd,lpText,lpCaption,uType);
+	TRACE("(%p,%p,%p,%p,%08x)\n",
+	    hInstance,hWnd,lpText,lpCaption,uType);
 
-	if (!HIWORD(lpCaption))
-	  LoadStringA(hInstance, (DWORD)lpCaption, szTitle, sizeof(szTitle));
+	if (IS_INTRESOURCE(lpCaption))
+	  LoadStringA(hInstance, LOWORD(lpCaption), szTitle, sizeof(szTitle));
 	else
 	  pszTitle = lpCaption;
 
-	if (!HIWORD(lpText))
-	  LoadStringA(hInstance, (DWORD)lpText, szText, sizeof(szText));
+	if (IS_INTRESOURCE(lpText))
+	  LoadStringA(hInstance, LOWORD(lpText), szText, sizeof(szText));
 	else
 	  pszText = lpText;
 
@@ -1004,10 +1004,9 @@
  * NOTES
  *  Sets the interface
  */
-HRESULT WINAPI SHSetInstanceExplorer (LPUNKNOWN lpUnknown)
+VOID WINAPI SHSetInstanceExplorer (LPUNKNOWN lpUnknown)
 {	TRACE("%p\n", lpUnknown);
 	SHELL32_IExplorerInterface = lpUnknown;
-	return (HRESULT) lpUnknown;
 }
 /*************************************************************************
  * SHGetInstanceExplorer			[SHELL32.@]
diff --git a/dlls/shell32/shellpath.c b/dlls/shell32/shellpath.c
index e81347f..4e3569d 100644
--- a/dlls/shell32/shellpath.c
+++ b/dlls/shell32/shellpath.c
@@ -1303,7 +1303,7 @@
      IS_INTRESOURCE(CSIDL_Data[folder].szDefaultPath))
     {
         if (LoadStringW(shell32_hInstance,
-         (UINT)CSIDL_Data[folder].szDefaultPath, resourcePath, MAX_PATH))
+         LOWORD(CSIDL_Data[folder].szDefaultPath), resourcePath, MAX_PATH))
         {
             hr = S_OK;
             pDefaultPath = resourcePath;
diff --git a/dlls/shell32/shlexec.c b/dlls/shell32/shlexec.c
index 4159e26..00a32aa 100644
--- a/dlls/shell32/shlexec.c
+++ b/dlls/shell32/shlexec.c
@@ -334,12 +334,12 @@
  *	SHELL_ExecuteW [Internal]
  *
  */
-static UINT SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
+static UINT_PTR SHELL_ExecuteW(const WCHAR *lpCmd, WCHAR *env, BOOL shWait,
 			    LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out)
 {
     STARTUPINFOW  startup;
     PROCESS_INFORMATION info;
-    UINT retval = 31;
+    UINT_PTR retval = 31;
     UINT gcdret = 0;
     WCHAR curdir[MAX_PATH];
 
@@ -864,13 +864,13 @@
 /*************************************************************************
  *	execute_from_key [Internal]
  */
-static UINT execute_from_key(LPWSTR key, LPCWSTR lpFile, WCHAR *env, LPCWSTR szCommandline,
+static UINT_PTR execute_from_key(LPWSTR key, LPCWSTR lpFile, WCHAR *env, LPCWSTR szCommandline,
 			     SHELL_ExecuteW32 execfunc,
 			     LPSHELLEXECUTEINFOW psei, LPSHELLEXECUTEINFOW psei_out)
 {
     WCHAR cmd[1024];
     LONG cmdlen = sizeof(cmd);
-    UINT retval = 31;
+    UINT_PTR retval = 31;
 
     cmd[0] = '\0';
 
@@ -928,7 +928,7 @@
     if (wDirectory) SHFree( wDirectory );
 
     TRACE("returning %s\n", lpResult);
-    return (HINSTANCE)retval;
+    return retval;
 }
 
 /*************************************************************************
@@ -936,7 +936,7 @@
  */
 HINSTANCE WINAPI FindExecutableW(LPCWSTR lpFile, LPCWSTR lpDirectory, LPWSTR lpResult)
 {
-    UINT retval = 31;    /* default - 'No association was found' */
+    UINT_PTR retval = 31;    /* default - 'No association was found' */
     WCHAR old_dir[1024];
 
     TRACE("File %s, Dir %s\n",
@@ -989,7 +989,7 @@
     WCHAR *env;
     WCHAR lpstrProtocol[256];
     LPCWSTR lpFile;
-    UINT retval = 31;
+    UINT_PTR retval = 31;
     WCHAR wcmd[1024];
     WCHAR buffer[MAX_PATH];
     const WCHAR* ext;
@@ -1337,7 +1337,7 @@
         WCHAR lpstrTmpFile[256];
         strcpyW(lpstrTmpFile, wHttp);
         strcatW(lpstrTmpFile, lpFile);
-        retval = (UINT)ShellExecuteW(sei_tmp.hwnd, sei_tmp.lpVerb, lpstrTmpFile, NULL, NULL, 0);
+        retval = (UINT_PTR)ShellExecuteW(sei_tmp.hwnd, sei_tmp.lpVerb, lpstrTmpFile, NULL, NULL, 0);
     }
 
     TRACE("retval %u\n", retval);
diff --git a/dlls/shell32/shlmenu.c b/dlls/shell32/shlmenu.c
index 527d8a2..99810dc 100644
--- a/dlls/shell32/shlmenu.c
+++ b/dlls/shell32/shlmenu.c
@@ -206,7 +206,7 @@
 
 		    MenuInfo.cbSize = sizeof(MENUINFO);
 		    MenuInfo.fMask = MIM_MENUDATA;
-		    MenuInfo.dwMenuData = (DWORD) lpFmMi;
+		    MenuInfo.dwMenuData = (ULONG_PTR) lpFmMi;
 		    SetMenuInfo (hMenuPopup, &MenuInfo);
 
 		    FileMenu_AppendItemW (hmenu, sTemp, uID, iIcon, hMenuPopup, FM_DEFAULT_HEIGHT);
@@ -277,7 +277,7 @@
 
 	MenuInfo.cbSize = sizeof(MENUINFO);
 	MenuInfo.fMask = MIM_MENUDATA;
-	MenuInfo.dwMenuData = (DWORD) menudata;
+	MenuInfo.dwMenuData = (ULONG_PTR) menudata;
 	SetMenuInfo (hMenu, &MenuInfo);
 
 	return hMenu;
@@ -342,7 +342,7 @@
 	  myItem->iIconIndex = icon;
 	  myItem->hMenu = hMenu;
 	  mii.fMask = MIIM_DATA;
-	  mii.dwItemData = (DWORD) myItem;
+	  mii.dwItemData = (ULONG_PTR) myItem;
 	}
 
 	if ( hMenuPopup )
diff --git a/dlls/shell32/shv_bg_cmenu.c b/dlls/shell32/shv_bg_cmenu.c
index 00518f6..669d080 100644
--- a/dlls/shell32/shv_bg_cmenu.c
+++ b/dlls/shell32/shv_bg_cmenu.c
@@ -400,7 +400,7 @@
  */
 static HRESULT WINAPI ISVBgCm_fnGetCommandString(
 	IContextMenu2 *iface,
-	UINT idCommand,
+	UINT_PTR idCommand,
 	UINT uFlags,
 	UINT* lpReserved,
 	LPSTR lpszName,
diff --git a/dlls/shell32/shv_item_cmenu.c b/dlls/shell32/shv_item_cmenu.c
index 985150d..60e94f4 100644
--- a/dlls/shell32/shv_item_cmenu.c
+++ b/dlls/shell32/shv_item_cmenu.c
@@ -452,7 +452,7 @@
 */
 static HRESULT WINAPI ISvItemCm_fnGetCommandString(
 	IContextMenu2 *iface,
-	UINT idCommand,
+	UINT_PTR idCommand,
 	UINT uFlags,
 	UINT* lpReserved,
 	LPSTR lpszName,
diff --git a/include/commctrl.h b/include/commctrl.h
index 0513823..fc756ee 100644
--- a/include/commctrl.h
+++ b/include/commctrl.h
@@ -2658,7 +2658,7 @@
 
 #define TreeView_SetImageList(hwnd, himl, iImage) \
     (HIMAGELIST)SNDMSGA((hwnd), TVM_SETIMAGELIST, iImage, \
- (LPARAM)(UINT)(HIMAGELIST)(himl))
+ (LPARAM)(HIMAGELIST)(himl))
 
 #define TreeView_GetNextItem(hwnd, hitem, code) \
     (HTREEITEM)SNDMSGA((hwnd), TVM_GETNEXTITEM, (WPARAM)code,\
@@ -2691,8 +2691,8 @@
 
 
 #define TreeView_Select(hwnd, hitem, code) \
- (UINT)SNDMSGA((hwnd), TVM_SELECTITEM, (WPARAM)code, \
-(LPARAM)(UINT)(hitem))
+ (BOOL)SNDMSGA((hwnd), TVM_SELECTITEM, (WPARAM)(code), \
+(LPARAM)(HTREEITEM)(hitem))
 
 
 #define TreeView_SelectItem(hwnd, hitem) \
@@ -3663,7 +3663,7 @@
 #define ListView_SetBkColor(hwnd,clrBk) \
     (BOOL)SNDMSGA((hwnd),LVM_SETBKCOLOR,0,(LPARAM)(COLORREF)(clrBk))
 #define ListView_SetImageList(hwnd,himl,iImageList) \
-    (HIMAGELIST)(UINT)SNDMSGA((hwnd),LVM_SETIMAGELIST,(WPARAM)(iImageList),(LPARAM)(UINT)(HIMAGELIST)(himl))
+    (HIMAGELIST)SNDMSGA((hwnd),LVM_SETIMAGELIST,(WPARAM)(iImageList),(LPARAM)(HIMAGELIST)(himl))
 #define ListView_GetItemCount(hwnd) \
     (INT)SNDMSGA((hwnd),LVM_GETITEMCOUNT,0,0L)
 #define ListView_RedrawItems(hwnd,first,last) \
diff --git a/include/shellapi.h b/include/shellapi.h
index 3c93737..950eab9 100644
--- a/include/shellapi.h
+++ b/include/shellapi.h
@@ -146,8 +146,8 @@
 
 DECL_WINELIB_TYPE_AW(SHFILEINFO)
 
-DWORD	WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
-DWORD	WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
+DWORD_PTR	WINAPI SHGetFileInfoA(LPCSTR,DWORD,SHFILEINFOA*,UINT,UINT);
+DWORD_PTR	WINAPI SHGetFileInfoW(LPCWSTR,DWORD,SHFILEINFOW*,UINT,UINT);
 #define  SHGetFileInfo WINELIB_NAME_AW(SHGetFileInfo)
 
 /******************************************
diff --git a/include/shobjidl.idl b/include/shobjidl.idl
index c460d86..ce98620 100644
--- a/include/shobjidl.idl
+++ b/include/shobjidl.idl
@@ -1033,7 +1033,7 @@
     HRESULT InvokeCommand( [in] LPCMINVOKECOMMANDINFO lpici );
 
     HRESULT GetCommandString(
-        [in] UINT idCmd,
+        [in] UINT_PTR idCmd,
         [in] UINT uType,
         [out] UINT *pwReserved,
         [out, size_is(cchMax)] LPSTR pszName,