gdi32: Fix compilation warnings in 64-bit mode.
diff --git a/dlls/gdi32/enhmfdrv/objects.c b/dlls/gdi32/enhmfdrv/objects.c
index 0a42af0..24a8934 100644
--- a/dlls/gdi32/enhmfdrv/objects.c
+++ b/dlls/gdi32/enhmfdrv/objects.c
@@ -392,7 +392,7 @@
 /******************************************************************
  *         EMFDRV_CreatePenIndirect
  */
-static HPEN EMFDRV_CreatePenIndirect(PHYSDEV dev, HPEN hPen )
+static DWORD EMFDRV_CreatePenIndirect(PHYSDEV dev, HPEN hPen)
 {
     EMRCREATEPEN emr;
     DWORD index = 0;
@@ -423,7 +423,7 @@
 
     if(!EMFDRV_WriteRecord( dev, &emr.emr ))
         index = 0;
-    return (HPEN)index;
+    return index;
 }
 
 /******************************************************************
@@ -453,7 +453,7 @@
     if((index = EMFDRV_FindObject(dev, hPen)) != 0)
         goto found;
 
-    if (!(index = (DWORD)EMFDRV_CreatePenIndirect(dev, hPen ))) return 0;
+    if (!(index = EMFDRV_CreatePenIndirect(dev, hPen))) return 0;
     GDI_hdc_using_object(hPen, physDev->hdc);
 
  found:
diff --git a/dlls/gdi32/font.c b/dlls/gdi32/font.c
index d9e6e35..17fcfe6 100644
--- a/dlls/gdi32/font.c
+++ b/dlls/gdi32/font.c
@@ -356,7 +356,7 @@
     int charset = GetTextCharset(hdc);
 
     /* Hmm, nicely designed api this one! */
-    if(TranslateCharsetInfo((DWORD*)charset, &csi, TCI_SRCCHARSET))
+    if(TranslateCharsetInfo(ULongToPtr(charset), &csi, TCI_SRCCHARSET))
         cp = csi.ciACP;
     else {
         switch(charset) {
@@ -2653,7 +2653,7 @@
     }
 
     charset = GetTextCharset(hDC);
-    if (!TranslateCharsetInfo((DWORD *)charset, &csi, TCI_SRCCHARSET))
+    if (!TranslateCharsetInfo(ULongToPtr(charset), &csi, TCI_SRCCHARSET))
     {
         FIXME("Can't find codepage for charset %d\n", charset);
         return 0;
@@ -2762,10 +2762,10 @@
 	while (!(*lpSrc>>index & 0x0001) && index<MAXTCIINDEX) index++;
       break;
     case TCI_SRCCODEPAGE:
-      while ((UINT) (lpSrc) != FONT_tci[index].ciACP && index < MAXTCIINDEX) index++;
+      while (PtrToUlong(lpSrc) != FONT_tci[index].ciACP && index < MAXTCIINDEX) index++;
       break;
     case TCI_SRCCHARSET:
-      while ((UINT) (lpSrc) != FONT_tci[index].ciCharset && index < MAXTCIINDEX) index++;
+      while (PtrToUlong(lpSrc) != FONT_tci[index].ciCharset && index < MAXTCIINDEX) index++;
       break;
     default:
       return FALSE;
diff --git a/dlls/gdi32/gdiobj.c b/dlls/gdi32/gdiobj.c
index 2440b2d..7a1cdf2 100644
--- a/dlls/gdi32/gdiobj.c
+++ b/dlls/gdi32/gdiobj.c
@@ -485,7 +485,7 @@
 
     uACP = GetACP();
     csi.ciCharset = ANSI_CHARSET;
-    if ( ! TranslateCharsetInfo( (LPDWORD)uACP, &csi, TCI_SRCCODEPAGE ) )
+    if ( !TranslateCharsetInfo( ULongToPtr(uACP), &csi, TCI_SRCCODEPAGE ) )
     {
         FIXME( "unhandled codepage %u - use ANSI_CHARSET for default stock objects\n", uACP );
         return ANSI_CHARSET;
@@ -1157,7 +1157,7 @@
             if (header->funcs && header->funcs->pSelectObject)
             {
                 ret = header->funcs->pSelectObject( hObj, header, hdc );
-                if (ret && ret != hObj && (INT)ret > COMPLEXREGION)
+                if (ret && ret != hObj && HandleToULong(ret) > COMPLEXREGION)
                 {
                     inc_ref_count( hObj );
                     dec_ref_count( ret );
diff --git a/dlls/gdi32/mfdrv/text.c b/dlls/gdi32/mfdrv/text.c
index 8154e39..0236493 100644
--- a/dlls/gdi32/mfdrv/text.c
+++ b/dlls/gdi32/mfdrv/text.c
@@ -87,7 +87,7 @@
     int charset = GetTextCharset(physDev->hdc);
     UINT cp = CP_ACP;
 
-    if(TranslateCharsetInfo((DWORD*)charset, &csi, TCI_SRCCHARSET))
+    if(TranslateCharsetInfo(ULongToPtr(charset), &csi, TCI_SRCCHARSET))
         cp = csi.ciACP;
     else {
         switch(charset) {
diff --git a/dlls/gdi32/printdrv.c b/dlls/gdi32/printdrv.c
index 15bcada..bbb6086 100644
--- a/dlls/gdi32/printdrv.c
+++ b/dlls/gdi32/printdrv.c
@@ -804,7 +804,7 @@
     strcpy(RegStr_Printer, Printers);
     strcat(RegStr_Printer, lpPrinter);
 
-    if (((DWORD)lpProfile == INT_PD_DEFAULT_DEVMODE) || (HIWORD(lpProfile) &&
+    if ((PtrToUlong(lpProfile) == INT_PD_DEFAULT_DEVMODE) || (HIWORD(lpProfile) &&
     (!strcmp(lpProfile, DefaultDevMode)))) {
 	size = DrvGetPrinterDataInternal(RegStr_Printer, lpPrinterData, cbData,
 					 INT_PD_DEFAULT_DEVMODE);
@@ -816,7 +816,7 @@
 	else res = ERROR_INVALID_PRINTER_NAME;
     }
     else
-    if (((DWORD)lpProfile == INT_PD_DEFAULT_MODEL) || (HIWORD(lpProfile) &&
+    if ((PtrToUlong(lpProfile) == INT_PD_DEFAULT_MODEL) || (HIWORD(lpProfile) &&
     (!strcmp(lpProfile, PrinterModel)))) {
 	*lpNeeded = 32;
 	if (!lpPrinterData) goto failed;
@@ -890,7 +890,7 @@
     TRACE("lpType %08x\n",lpType);
 
     if ((!lpPrinter) || (!lpProfile) ||
-    ((DWORD)lpProfile == INT_PD_DEFAULT_MODEL) || (HIWORD(lpProfile) &&
+    (PtrToUlong(lpProfile) == INT_PD_DEFAULT_MODEL) || (HIWORD(lpProfile) &&
     (!strcmp(lpProfile, PrinterModel))))
 	return ERROR_INVALID_PARAMETER;
 
@@ -899,7 +899,7 @@
     strcpy(RegStr_Printer, Printers);
     strcat(RegStr_Printer, lpPrinter);
 
-    if (((DWORD)lpProfile == INT_PD_DEFAULT_DEVMODE) || (HIWORD(lpProfile) &&
+    if ((PtrToUlong(lpProfile) == INT_PD_DEFAULT_DEVMODE) || (HIWORD(lpProfile) &&
     (!strcmp(lpProfile, DefaultDevMode)))) {
 	if ( RegOpenKeyA(HKEY_LOCAL_MACHINE, RegStr_Printer, &hkey)
 	     != ERROR_SUCCESS ||
diff --git a/dlls/gdi32/region.c b/dlls/gdi32/region.c
index ac92581..b746447 100644
--- a/dlls/gdi32/region.c
+++ b/dlls/gdi32/region.c
@@ -551,7 +551,7 @@
  */
 static HGDIOBJ REGION_SelectObject( HGDIOBJ handle, void *obj, HDC hdc )
 {
-    return (HGDIOBJ)SelectClipRgn( hdc, handle );
+    return ULongToHandle(SelectClipRgn( hdc, handle ));
 }