From 7375597fe2cb436367bc5c3cd4e05d8906dcce14 Mon Sep 17 00:00:00 2001
From: Alexandre Julliard <julliard@winehq.org>
Date: Wed, 31 Jul 2002 19:26:03 +0000
Subject: [PATCH] Fixed some handle type mismatches and added a few casts in
 prevision of void* handles.

---
 dlls/advapi32/crypt.c            |  2 +-
 dlls/advapi32/crypt.h            | 10 ++++++++++
 dlls/advapi32/eventlog.c         | 10 +++++-----
 dlls/advapi32/registry.c         |  4 ++--
 dlls/advapi32/service.c          |  3 +--
 dlls/kernel/debugger.c           |  3 ---
 dlls/kernel/thunk.c              |  4 ++--
 dlls/kernel/wowthunk.c           |  6 ++----
 dlls/ntdll/critsection.c         |  8 ++++----
 dlls/ntdll/nt.c                  |  4 ++--
 dlls/ntdll/rtl.c                 |  6 +++---
 dlls/setupapi/infparse.c         | 32 --------------------------------
 dlls/setupapi/setupapi_private.h | 11 -----------
 include/gdi.h                    | 18 +++++++++---------
 include/palette.h                |  2 +-
 include/wincrypt.h               |  9 ---------
 loader/ne/module.c               | 10 +++++-----
 memory/registry.c                |  2 +-
 memory/selector.c                |  6 +++---
 misc/registry.c                  |  2 +-
 msdos/vxd.c                      |  7 +++----
 objects/palette.c                |  6 +++---
 relay32/snoop.c                  |  4 ++--
 scheduler/syslevel.c             |  5 +++--
 scheduler/thread.c               |  2 +-
 server/registry.c                |  4 ++--
 server/sock.c                    |  4 ++--
 win32/newfns.c                   |  4 ++--
 28 files changed, 70 insertions(+), 118 deletions(-)

diff --git a/dlls/advapi32/crypt.c b/dlls/advapi32/crypt.c
index a1aa50e2696..1438ee8c64a 100644
--- a/dlls/advapi32/crypt.c
+++ b/dlls/advapi32/crypt.c
@@ -153,7 +153,7 @@ BOOL CRYPT_VerifyImage(LPCSTR lpszImage, BYTE* pData)
 	return TRUE;
 }
 
-BOOL CRYPT_ReturnhWnd(DWORD *phWnd)
+BOOL CRYPT_ReturnhWnd(HWND *phWnd)
 {
 	if (!phWnd)
 		return FALSE;
diff --git a/dlls/advapi32/crypt.h b/dlls/advapi32/crypt.h
index e8089116a87..20d0c07f17c 100644
--- a/dlls/advapi32/crypt.h
+++ b/dlls/advapi32/crypt.h
@@ -23,6 +23,16 @@
 
 #include "wincrypt.h"
 
+typedef struct _VTableProvStruc {
+    DWORD    Version;
+    BOOL    (*pFuncVerifyImage)(LPCSTR lpszImage, BYTE *pSigData);
+    BOOL    (*pFuncReturnhWnd)(HWND *phWnd);
+    DWORD    dwProvType;
+    BYTE     *pbContextInfo;
+    DWORD    cbContextInfo;
+    LPSTR    pszProvName;
+} VTableProvStruc, *PVTableProvStruc;
+
 typedef struct tagPROVFUNCS
 {
 	BOOL (*pCPAcquireContext)(HCRYPTPROV *phProv, LPSTR pszContainer, DWORD dwFlags, PVTableProvStruc pVTable);
diff --git a/dlls/advapi32/eventlog.c b/dlls/advapi32/eventlog.c
index 25952b9edd5..71d3ac660c9 100644
--- a/dlls/advapi32/eventlog.c
+++ b/dlls/advapi32/eventlog.c
@@ -140,7 +140,7 @@ HANDLE WINAPI
 OpenBackupEventLogA( LPCSTR lpUNCServerName, LPCSTR lpFileName )
 {
 	FIXME("stub\n");
-	return TRUE;
+	return (HANDLE)1;
 }
 
 /******************************************************************************
@@ -154,7 +154,7 @@ HANDLE WINAPI
 OpenBackupEventLogW( LPCWSTR lpUNCServerName, LPCWSTR lpFileName )
 {
 	FIXME("stub\n");
-	return TRUE;
+	return (HANDLE)1;
 }
 
 /******************************************************************************
@@ -163,7 +163,7 @@ OpenBackupEventLogW( LPCWSTR lpUNCServerName, LPCWSTR lpFileName )
 HANDLE WINAPI OpenEventLogA(LPCSTR uncname,LPCSTR source)
 {
 	FIXME("(%s,%s),stub!\n",uncname,source);
-	return 0xcafe4242;
+	return (HANDLE)0xcafe4242;
 }
 
 /******************************************************************************
@@ -177,7 +177,7 @@ HANDLE WINAPI
 OpenEventLogW( LPCWSTR uncname, LPCWSTR source )
 {
 	FIXME("stub\n");
-	return TRUE;
+	return (HANDLE)1;
 }
 
 /******************************************************************************
@@ -241,7 +241,7 @@ RegisterEventSourceW( LPCWSTR lpUNCServerName, LPCWSTR lpSourceName )
 {
     FIXME("(%s,%s): stub\n", debugstr_w(lpUNCServerName),
           debugstr_w(lpSourceName));
-    return 1;
+    return (HANDLE)1;
 }
 
 /******************************************************************************
diff --git a/dlls/advapi32/registry.c b/dlls/advapi32/registry.c
index 98e881f076d..3efb3ce1665 100644
--- a/dlls/advapi32/registry.c
+++ b/dlls/advapi32/registry.c
@@ -674,7 +674,7 @@ DWORD WINAPI RegQueryInfoKeyA( HKEY hkey, LPSTR class, LPDWORD class_len, LPDWOR
  */
 DWORD WINAPI RegCloseKey( HKEY hkey )
 {
-    if (!hkey || hkey >= 0x80000000) return ERROR_SUCCESS;
+    if (!hkey || hkey >= (HKEY)0x80000000) return ERROR_SUCCESS;
     return RtlNtStatusToDosError( NtClose( hkey ) );
 }
 
@@ -1435,7 +1435,7 @@ LONG WINAPI RegSaveKeyA( HKEY hkey, LPCSTR file, LPSECURITY_ATTRIBUTES sa )
     int count = 0;
     LPSTR name;
     DWORD ret, err;
-    HFILE handle;
+    HANDLE handle;
 
     TRACE( "(%x,%s,%p)\n", hkey, debugstr_a(file), sa );
 
diff --git a/dlls/advapi32/service.c b/dlls/advapi32/service.c
index 23f4d82b9c8..28837f2e867 100644
--- a/dlls/advapi32/service.c
+++ b/dlls/advapi32/service.c
@@ -596,7 +596,7 @@ StartServiceW( SC_HANDLE hService, DWORD dwNumServiceArgs,
     TRACE("Starting service %s\n", debugstr_a(path) );
 
     data = CreateSemaphoreA(NULL,1,1,"ADVAPI32_ServiceStartData");
-    if(data == ERROR_INVALID_HANDLE)
+    if (!data)
     {
         data = OpenSemaphoreA(SEMAPHORE_ALL_ACCESS, FALSE, "ADVAPI32_ServiceStartData");
         if(data == 0)
@@ -700,4 +700,3 @@ QueryServiceStatus( SC_HANDLE hService, LPSERVICE_STATUS lpservicestatus )
 
     return TRUE;
 }
-
diff --git a/dlls/kernel/debugger.c b/dlls/kernel/debugger.c
index 29caacdd1d1..96e9e0167ee 100644
--- a/dlls/kernel/debugger.c
+++ b/dlls/kernel/debugger.c
@@ -88,7 +88,6 @@ BOOL WINAPI WaitForDebugEvent(
                 event->u.CreateProcessInfo.lpStartAddress        = data.info.create_process.start;
                 event->u.CreateProcessInfo.lpImageName           = data.info.create_process.name;
                 event->u.CreateProcessInfo.fUnicode              = data.info.create_process.unicode;
-                if (data.info.create_process.file == -1) event->u.CreateProcessInfo.hFile = 0;
                 break;
             case EXIT_THREAD_DEBUG_EVENT:
                 event->u.ExitThread.dwExitCode = data.info.exit.exit_code;
@@ -103,7 +102,6 @@ BOOL WINAPI WaitForDebugEvent(
                 event->u.LoadDll.nDebugInfoSize        = data.info.load_dll.dbg_size;
                 event->u.LoadDll.lpImageName           = data.info.load_dll.name;
                 event->u.LoadDll.fUnicode              = data.info.load_dll.unicode;
-                if (data.info.load_dll.handle == -1) event->u.LoadDll.hFile = 0;
                 break;
             case UNLOAD_DLL_DEBUG_EVENT:
                 event->u.UnloadDll.lpBaseOfDll = data.info.unload_dll.base;
@@ -389,4 +387,3 @@ BOOL WINAPI DebugSetProcessKillOnExit(BOOL kill)
     SERVER_END_REQ;
     return ret;
 }
-
diff --git a/dlls/kernel/thunk.c b/dlls/kernel/thunk.c
index fddf1fb8508..fefc65da60b 100644
--- a/dlls/kernel/thunk.c
+++ b/dlls/kernel/thunk.c
@@ -145,7 +145,7 @@ static LPVOID _loadthunk(LPCSTR module, LPCSTR func, LPCSTR module32,
                          struct ThunkDataCommon *TD32, DWORD checksum)
 {
     struct ThunkDataCommon *TD16;
-    HMODULE hmod;
+    HMODULE16 hmod;
     int ordinal;
 
     if ((hmod = LoadLibrary16(module)) <= 32)
@@ -1918,7 +1918,7 @@ void WINAPI CBClientThunkSLEx( CONTEXT86 *context )
  * A 16:16 segmented pointer to the function is returned.
  * Written without any docu.
  */
-SEGPTR WINAPI Get16DLLAddress(HMODULE handle, LPSTR func_name)
+SEGPTR WINAPI Get16DLLAddress(HMODULE16 handle, LPSTR func_name)
 {
     static WORD code_sel32;
     FARPROC16 proc_16;
diff --git a/dlls/kernel/wowthunk.c b/dlls/kernel/wowthunk.c
index 8d29cbdfdae..6c1926e8c09 100644
--- a/dlls/kernel/wowthunk.c
+++ b/dlls/kernel/wowthunk.c
@@ -211,11 +211,11 @@ HANDLE WINAPI K32WOWHandle32( WORD handle, WOW_HANDLE_TYPE type )
     case WOW_TYPE_HACCEL:
     case WOW_TYPE_HTASK:
     case WOW_TYPE_FULLHWND:
-        return (HANDLE)handle;
+        return (HANDLE)(ULONG_PTR)handle;
 
     default:
         ERR( "handle 0x%04x of unknown type %d\n", handle, type );
-        return (HANDLE)handle;
+        return (HANDLE)(ULONG_PTR)handle;
     }
 }
 
@@ -501,5 +501,3 @@ DWORD WINAPI WOW16Call(WORD x,WORD y,WORD z)
         DPRINTF(") calling address was 0x%08lx\n",calladdr);
         return 0;
 }
-
-
diff --git a/dlls/ntdll/critsection.c b/dlls/ntdll/critsection.c
index b1df076a7d3..7c807cebbb3 100644
--- a/dlls/ntdll/critsection.c
+++ b/dlls/ntdll/critsection.c
@@ -160,7 +160,7 @@ NTSTATUS WINAPI RtlEnterCriticalSection( RTL_CRITICAL_SECTION *crit )
 {
     if (interlocked_inc( &crit->LockCount ))
     {
-        if (crit->OwningThread == GetCurrentThreadId())
+        if (crit->OwningThread == (HANDLE)GetCurrentThreadId())
         {
             crit->RecursionCount++;
             return STATUS_SUCCESS;
@@ -169,7 +169,7 @@ NTSTATUS WINAPI RtlEnterCriticalSection( RTL_CRITICAL_SECTION *crit )
         /* Now wait for it */
         RtlpWaitForCriticalSection( crit );
     }
-    crit->OwningThread   = GetCurrentThreadId();
+    crit->OwningThread   = (HANDLE)GetCurrentThreadId();
     crit->RecursionCount = 1;
     return STATUS_SUCCESS;
 }
@@ -183,11 +183,11 @@ BOOL WINAPI RtlTryEnterCriticalSection( RTL_CRITICAL_SECTION *crit )
     BOOL ret = FALSE;
     if (interlocked_cmpxchg( &crit->LockCount, 0L, -1 ) == -1)
     {
-        crit->OwningThread   = GetCurrentThreadId();
+        crit->OwningThread   = (HANDLE)GetCurrentThreadId();
         crit->RecursionCount = 1;
         ret = TRUE;
     }
-    else if (crit->OwningThread == GetCurrentThreadId())
+    else if (crit->OwningThread == (HANDLE)GetCurrentThreadId())
     {
         interlocked_inc( &crit->LockCount );
         crit->RecursionCount++;
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 691d19d186c..e5ceb71528d 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -274,7 +274,7 @@ NTSTATUS WINAPI NtOpenProcessToken(
 {
 	FIXME("(0x%08x,0x%08lx,%p): stub\n",
 	ProcessHandle,DesiredAccess, TokenHandle);
-	*TokenHandle = 0xcafe;
+	*TokenHandle = (HANDLE)0xcafe;
 	return 0;
 }
 
@@ -290,7 +290,7 @@ NTSTATUS WINAPI NtOpenThreadToken(
 {
 	FIXME("(0x%08x,0x%08lx,0x%08x,%p): stub\n",
 	ThreadHandle,DesiredAccess, OpenAsSelf, TokenHandle);
-	*TokenHandle = 0xcafe;
+	*TokenHandle = (HANDLE)0xcafe;
 	return 0;
 }
 
diff --git a/dlls/ntdll/rtl.c b/dlls/ntdll/rtl.c
index 7a8bf0e4ab9..74e844ea81e 100644
--- a/dlls/ntdll/rtl.c
+++ b/dlls/ntdll/rtl.c
@@ -101,7 +101,7 @@ start:
     }
     else if( rwl->iNumberActive < 0 ) /* exclusive lock in progress */
     {
-	 if( rwl->hOwningThreadId == GetCurrentThreadId() )
+	 if( rwl->hOwningThreadId == (HANDLE)GetCurrentThreadId() )
 	 {
 	     retVal = 1;
 	     rwl->iNumberActive--;
@@ -123,7 +123,7 @@ wait:
 	     goto wait;
 
     if( retVal == 1 )
-	rwl->hOwningThreadId = GetCurrentThreadId();
+	rwl->hOwningThreadId = (HANDLE)GetCurrentThreadId();
 done:
     RtlLeaveCriticalSection( &rwl->rtlCS );
     return retVal;
@@ -142,7 +142,7 @@ start:
     RtlEnterCriticalSection( &rwl->rtlCS );
     if( rwl->iNumberActive < 0 )
     {
-	if( rwl->hOwningThreadId == GetCurrentThreadId() )
+	if( rwl->hOwningThreadId == (HANDLE)GetCurrentThreadId() )
 	{
 	    rwl->iNumberActive--;
 	    retVal = 1;
diff --git a/dlls/setupapi/infparse.c b/dlls/setupapi/infparse.c
index bef5153e3e2..defc34e86f7 100644
--- a/dlls/setupapi/infparse.c
+++ b/dlls/setupapi/infparse.c
@@ -189,35 +189,3 @@ RETERR16 WINAPI GenInstall16( HINF16 hinf16, LPCSTR section, WORD genflags )
     SetupTermDefaultQueueCallback( context );
     return ret;
 }
-
-
-WORD InfNumEntries = 0;
-INF_FILE *InfList = NULL;
-HINF16 IP_curr_handle = 0;
-
-
-BOOL IP_FindInf(HINF16 hInf, WORD *ret)
-{
-    WORD n;
-
-    for (n=0; n < InfNumEntries; n++)
-	if (InfList[n].hInf == hInf)
-	{
-	    *ret = n;
-	    return TRUE;
-	}
-    return FALSE;
-}
-
-
-LPCSTR IP_GetFileName(HINF16 hInf)
-{
-    WORD n;
-    if (IP_FindInf(hInf, &n))
-    {
-	return InfList[n].lpInfFileName;
-    }
-    return NULL;
-}
-
-
diff --git a/dlls/setupapi/setupapi_private.h b/dlls/setupapi/setupapi_private.h
index 73018aa029a..10d0eeb5293 100644
--- a/dlls/setupapi/setupapi_private.h
+++ b/dlls/setupapi/setupapi_private.h
@@ -44,17 +44,6 @@ typedef struct tagLDD_LIST {
    ldd.ldid = LDID; \
   } while(0)
 
-typedef struct {
-    HINF16 hInf;
-    HFILE hInfFile;
-    LPSTR lpInfFileName;
-} INF_FILE;
-
-extern INF_FILE *InfList;
-extern WORD InfNumEntries;
-
-extern LPCSTR IP_GetFileName(HINF16 hInf);
-
 /* string substitutions */
 
 struct inf_file;
diff --git a/include/gdi.h b/include/gdi.h
index d29a202bb27..5b45dd023d4 100644
--- a/include/gdi.h
+++ b/include/gdi.h
@@ -96,15 +96,15 @@ typedef struct tagDC
     INT          vportExtY;
 
     int           flags;
-    HRGN16        hClipRgn;     /* Clip region (may be 0) */
-    HRGN16        hVisRgn;      /* Visible region (must never be 0) */
-    HRGN16        hGCClipRgn;   /* GC clip region (ClipRgn AND VisRgn) */
-    HPEN16        hPen;
-    HBRUSH16      hBrush;
-    HFONT16       hFont;
-    HBITMAP16     hBitmap;
-    HANDLE16      hDevice;
-    HPALETTE16    hPalette;
+    HRGN          hClipRgn;     /* Clip region (may be 0) */
+    HRGN          hVisRgn;      /* Visible region (must never be 0) */
+    HRGN          hGCClipRgn;   /* GC clip region (ClipRgn AND VisRgn) */
+    HPEN          hPen;
+    HBRUSH        hBrush;
+    HFONT         hFont;
+    HBITMAP       hBitmap;
+    HANDLE        hDevice;
+    HPALETTE      hPalette;
 
     GdiFont       gdiFont;
     GdiPath       path;
diff --git a/include/palette.h b/include/palette.h
index dc898ee0054..a10bf56d51e 100644
--- a/include/palette.h
+++ b/include/palette.h
@@ -37,6 +37,6 @@ typedef struct tagPALETTEOBJ
     LOGPALETTE                   logpalette; /* _MUST_ be the last field */
 } PALETTEOBJ;
 
-extern HPALETTE16 PALETTE_Init(void);
+extern HPALETTE PALETTE_Init(void);
 
 #endif /* __WINE_PALETTE_H */
diff --git a/include/wincrypt.h b/include/wincrypt.h
index ffbb0f5fb4c..1084b52cef2 100644
--- a/include/wincrypt.h
+++ b/include/wincrypt.h
@@ -28,15 +28,6 @@ typedef unsigned long HCRYPTKEY;
 typedef unsigned long HCRYPTHASH;
 
 /* CSP Structs */
-typedef struct _VTableProvStruc {
-    DWORD    Version;
-    BOOL    (*pFuncVerifyImage)(LPCSTR lpszImage, BYTE *pSigData);
-    BOOL    (*pFuncReturnhWnd)(DWORD *phWnd);
-    DWORD    dwProvType;
-    BYTE     *pbContextInfo;
-    DWORD    cbContextInfo;
-    LPSTR    pszProvName;
-} VTableProvStruc, *PVTableProvStruc;
 
 typedef struct _CRYPTOAPI_BLOB {
   DWORD    cbData;
diff --git a/loader/ne/module.c b/loader/ne/module.c
index 0c4053dcc84..806832fca7c 100644
--- a/loader/ne/module.c
+++ b/loader/ne/module.c
@@ -1713,7 +1713,7 @@ HMODULE16 WINAPI MapHModuleLS(HMODULE hmod) {
 	if (!hmod)
 		return TASK_GetCurrent()->hInstance;
 	if (!HIWORD(hmod))
-		return hmod; /* we already have a 16 bit module handle */
+		return LOWORD(hmod); /* we already have a 16 bit module handle */
 	pModule = (NE_MODULE*)GlobalLock16(hFirstModule);
 	while (pModule)  {
 		if (pModule->module32 == hmod)
@@ -1747,7 +1747,7 @@ HMODULE WINAPI MapHModuleSL(HMODULE16 hmod) {
  */
 void WINAPI MapHInstLS( CONTEXT86 *context )
 {
-    context->Eax = MapHModuleLS(context->Eax);
+    context->Eax = MapHModuleLS( (HMODULE)context->Eax );
 }
 
 /***************************************************************************
@@ -1756,7 +1756,7 @@ void WINAPI MapHInstLS( CONTEXT86 *context )
  */
 void WINAPI MapHInstSL( CONTEXT86 *context )
 {
-    context->Eax = MapHModuleSL(context->Eax);
+    context->Eax = (DWORD)MapHModuleSL( context->Eax );
 }
 
 /***************************************************************************
@@ -1764,7 +1764,7 @@ void WINAPI MapHInstSL( CONTEXT86 *context )
  */
 void WINAPI MapHInstLS_PN( CONTEXT86 *context )
 {
-    if (context->Eax) context->Eax = MapHModuleLS(context->Eax);
+    if (context->Eax) context->Eax = MapHModuleLS( (HMODULE)context->Eax );
 }
 
 /***************************************************************************
@@ -1772,5 +1772,5 @@ void WINAPI MapHInstLS_PN( CONTEXT86 *context )
  */
 void WINAPI MapHInstSL_PN( CONTEXT86 *context )
 {
-    if (context->Eax) context->Eax = MapHModuleSL(context->Eax);
+    if (context->Eax) context->Eax = (DWORD)MapHModuleSL( context->Eax );
 }
diff --git a/memory/registry.c b/memory/registry.c
index e3c57d0f2e4..33e49aa22fe 100644
--- a/memory/registry.c
+++ b/memory/registry.c
@@ -287,7 +287,7 @@ DWORD WINAPI RegQueryInfoKeyA( HKEY hkey, LPSTR class, LPDWORD class_len, LPDWOR
  */
 DWORD WINAPI RegCloseKey( HKEY hkey )
 {
-    if (!hkey || hkey >= 0x80000000) return ERROR_SUCCESS;
+    if (!hkey || hkey >= (HKEY)0x80000000) return ERROR_SUCCESS;
     return RtlNtStatusToDosError( NtClose( hkey ) );
 }
 
diff --git a/memory/selector.c b/memory/selector.c
index 7c82d4e44dd..e161fa68fcb 100644
--- a/memory/selector.c
+++ b/memory/selector.c
@@ -908,7 +908,7 @@ void WINAPI AllocMappedBuffer( CONTEXT86 *context )
         context->Eax = context->Edi = 0;
     else
     {
-        buffer[0] = handle;
+        buffer[0] = (DWORD)handle;
         buffer[1] = ptr;
 
         context->Eax = (DWORD) ptr;
@@ -932,7 +932,7 @@ void WINAPI FreeMappedBuffer( CONTEXT86 *context )
 
         UnMapLS(buffer[1]);
 
-        GlobalUnlock(buffer[0]);
-        GlobalFree(buffer[0]);
+        GlobalUnlock((HGLOBAL)buffer[0]);
+        GlobalFree((HGLOBAL)buffer[0]);
     }
 }
diff --git a/misc/registry.c b/misc/registry.c
index 948c909205e..b83841946c9 100644
--- a/misc/registry.c
+++ b/misc/registry.c
@@ -1652,7 +1652,7 @@ LONG WINAPI RegReplaceKeyA( HKEY hkey, LPCSTR lpSubKey, LPCSTR lpNewFile,
  */
 static inline void fix_win16_hkey( HKEY *hkey )
 {
-    if (*hkey == 0 || *hkey == 1) *hkey = HKEY_CLASSES_ROOT;
+    if (*hkey == 0 || *hkey == (HKEY)1) *hkey = HKEY_CLASSES_ROOT;
 }
 
 /******************************************************************************
diff --git a/msdos/vxd.c b/msdos/vxd.c
index 91d2dc8cded..384fea36323 100644
--- a/msdos/vxd.c
+++ b/msdos/vxd.c
@@ -1174,7 +1174,7 @@ void WINAPI VXD_Win32s( CONTEXT86 *context )
          */
     {
         DWORD *stack    = (DWORD *)W32S_APP2WINE(context->Edx);
-        HANDLE handle = stack[0];
+        HANDLE handle   = (HANDLE)stack[0];
         DWORD *id       = (DWORD *)W32S_APP2WINE(stack[1]);
 
         TRACE("NtCloseSection(%lx, %lx)\n", (DWORD)handle, (DWORD)id);
@@ -1197,7 +1197,7 @@ void WINAPI VXD_Win32s( CONTEXT86 *context )
          */
     {
         DWORD *stack    = (DWORD *)W32S_APP2WINE(context->Edx);
-        HANDLE handle = stack[0];
+        HANDLE handle   = (HANDLE)stack[0];
         HANDLE new_handle;
 
         TRACE("NtDupSection(%lx)\n", (DWORD)handle);
@@ -1229,7 +1229,7 @@ void WINAPI VXD_Win32s( CONTEXT86 *context )
          */
     {
         DWORD *  stack          = (DWORD *)W32S_APP2WINE(context->Edx);
-        HANDLE SectionHandle  = stack[0];
+        HANDLE   SectionHandle  = (HANDLE)stack[0];
         DWORD    ProcessHandle  = stack[1]; /* ignored */
         DWORD *  BaseAddress    = (DWORD *)W32S_APP2WINE(stack[2]);
         DWORD    ZeroBits       = stack[3];
@@ -1651,4 +1651,3 @@ void WINAPI VXD_Win32s( CONTEXT86 *context )
     }
 
 }
-
diff --git a/objects/palette.c b/objects/palette.c
index 4b40621f2e8..d84ce71fd02 100644
--- a/objects/palette.c
+++ b/objects/palette.c
@@ -100,9 +100,9 @@ static const PALETTEENTRY sys_pal_template[NB_RESERVED_COLORS] =
  *
  * Create the system palette.
  */
-HPALETTE16 PALETTE_Init(void)
+HPALETTE PALETTE_Init(void)
 {
-    HPALETTE16          hpalette;
+    HPALETTE          hpalette;
     LOGPALETTE *        palPtr;
     PALETTEOBJ*         palObj;
 
@@ -115,7 +115,7 @@ HPALETTE16 PALETTE_Init(void)
     palPtr->palVersion = 0x300;
     palPtr->palNumEntries = NB_RESERVED_COLORS;
     memcpy( palPtr->palPalEntry, sys_pal_template, sizeof(sys_pal_template) );
-    hpalette = CreatePalette16( palPtr );
+    hpalette = CreatePalette( palPtr );
     HeapFree( GetProcessHeap(), 0, palPtr );
 
     palObj = (PALETTEOBJ*) GDI_GetObjPtr( hpalette, PALETTE_MAGIC );
diff --git a/relay32/snoop.c b/relay32/snoop.c
index 6fa0c7b8a99..7fea6f85e8b 100644
--- a/relay32/snoop.c
+++ b/relay32/snoop.c
@@ -184,8 +184,8 @@ SNOOP_GetProcAddress(HMODULE hmod,LPCSTR name,DWORD ordinal,FARPROC origfun) {
 	for (j=0;j<PE_HEADER(hmod)->FileHeader.NumberOfSections;j++)
 		/* 0x42 is special ELF loader tag */
 		if ((pe_seg[j].VirtualAddress==0x42) ||
-		    (((DWORD)origfun-hmod>=pe_seg[j].VirtualAddress)&&
-		     ((DWORD)origfun-hmod <pe_seg[j].VirtualAddress+
+		    (((char *)origfun - (char *)hmod>=pe_seg[j].VirtualAddress)&&
+		     ((char *)origfun - (char *)hmod <pe_seg[j].VirtualAddress+
 		    		   pe_seg[j].SizeOfRawData
 		   ))
 		)
diff --git a/scheduler/syslevel.c b/scheduler/syslevel.c
index 9d875538d13..feb3a9b5264 100644
--- a/scheduler/syslevel.c
+++ b/scheduler/syslevel.c
@@ -148,7 +148,7 @@ VOID WINAPI _KERNEL32_86(SYSLEVEL *lock)
  */
 DWORD WINAPI _ConfirmSysLevel(SYSLEVEL *lock)
 {
-    if ( lock && lock->crst.OwningThread == GetCurrentThreadId() )
+    if ( lock && lock->crst.OwningThread == (HANDLE)GetCurrentThreadId() )
         return lock->crst.RecursionCount;
     else
         return 0L;
@@ -160,7 +160,8 @@ DWORD WINAPI _ConfirmSysLevel(SYSLEVEL *lock)
  */
 VOID WINAPI _CheckNotSysLevel(SYSLEVEL *lock)
 {
-    if (lock && lock->crst.OwningThread == GetCurrentThreadId() && lock->crst.RecursionCount)
+    if (lock && lock->crst.OwningThread == (HANDLE)GetCurrentThreadId() &&
+        lock->crst.RecursionCount)
     {
         ERR( "Holding lock %p level %d\n", lock, lock->level );
         DbgBreakPoint();
diff --git a/scheduler/thread.c b/scheduler/thread.c
index 382f45c4360..9f567d77edb 100644
--- a/scheduler/thread.c
+++ b/scheduler/thread.c
@@ -760,7 +760,7 @@ BOOL WINAPI SetThreadLocale(
 #undef GetCurrentThread
 HANDLE WINAPI GetCurrentThread(void)
 {
-    return 0xfffffffe;
+    return (HANDLE)0xfffffffe;
 }
 
 
diff --git a/server/registry.c b/server/registry.c
index 48de2fbbd01..1a54f126efc 100644
--- a/server/registry.c
+++ b/server/registry.c
@@ -87,8 +87,8 @@ struct key_value
 
 
 /* the special root keys */
-#define HKEY_SPECIAL_ROOT_FIRST   HKEY_CLASSES_ROOT
-#define HKEY_SPECIAL_ROOT_LAST    HKEY_DYN_DATA
+#define HKEY_SPECIAL_ROOT_FIRST   ((unsigned int)HKEY_CLASSES_ROOT)
+#define HKEY_SPECIAL_ROOT_LAST    ((unsigned int)HKEY_DYN_DATA)
 #define NB_SPECIAL_ROOT_KEYS      (HKEY_SPECIAL_ROOT_LAST - HKEY_SPECIAL_ROOT_FIRST + 1)
 #define IS_SPECIAL_ROOT_HKEY(h)   (((unsigned int)(h) >= HKEY_SPECIAL_ROOT_FIRST) && \
                                    ((unsigned int)(h) <= HKEY_SPECIAL_ROOT_LAST))
diff --git a/server/sock.c b/server/sock.c
index 1615a20e9d6..fb726118e8a 100644
--- a/server/sock.c
+++ b/server/sock.c
@@ -72,7 +72,7 @@ struct sock
     struct event       *event;       /* event object */
     user_handle_t       window;      /* window to send the message to */
     unsigned int        message;     /* message to send */
-    unsigned int        wparam;      /* message wparam (socket handle) */
+    obj_handle_t        wparam;      /* message wparam (socket handle) */
     int                 errors[FD_MAX_EVENTS]; /* event errors */
     struct sock*        deferred;    /* socket that waits for a deferred accept */
     struct async_queue  read_q;      /* Queue for asynchronous reads */
@@ -260,7 +260,7 @@ static void sock_wake_up( struct sock *sock, int pollev )
             if (sock->pmask & (1 << event))
             {
                 unsigned int lparam = (1 << event) | (sock->errors[event] << 16);
-                post_message( sock->window, sock->message, sock->wparam, lparam );
+                post_message( sock->window, sock->message, (unsigned int)sock->wparam, lparam );
             }
         }
         sock->pmask = 0;
diff --git a/win32/newfns.c b/win32/newfns.c
index 80219c6ba12..41d07ade187 100644
--- a/win32/newfns.c
+++ b/win32/newfns.c
@@ -195,7 +195,7 @@ HANDLE WINAPI CreateMailslotA( LPCSTR lpName, DWORD nMaxMessageSize,
 {
     FIXME("(%s,%ld,%ld,%p): stub\n", debugstr_a(lpName),
           nMaxMessageSize, lReadTimeout, sa);
-    return 1;
+    return (HANDLE)1;
 }
 
 
@@ -217,7 +217,7 @@ HANDLE WINAPI CreateMailslotW( LPCWSTR lpName, DWORD nMaxMessageSize,
 {
     FIXME("(%s,%ld,%ld,%p): stub\n", debugstr_w(lpName),
           nMaxMessageSize, lReadTimeout, sa);
-    return 1;
+    return (HANDLE)1;
 }
 
 
-- 
GitLab