Make sure that functions returning an HWND always return a full 32-bit
handle.
diff --git a/windows/winpos.c b/windows/winpos.c
index 8a9be5e..843864a 100644
--- a/windows/winpos.c
+++ b/windows/winpos.c
@@ -374,6 +374,7 @@
if (!hwndScope) hwndScope = GetDesktopWindow();
if (!(wndScope = WIN_FindWndPtr( hwndScope ))) return 0;
+ hwndScope = wndScope->hwndSelf; /* make it a full handle */
*hittest = HTERROR;
wndPtr = WIN_LockWndPtr(wndScope->child);
@@ -892,7 +893,7 @@
HWND WINAPI SetShellWindow(HWND hwndshell)
{ WARN("(hWnd=%08x) semi stub\n",hwndshell );
- hGlobalShellWindow = hwndshell;
+ hGlobalShellWindow = WIN_GetFullHandle( hwndshell );
return hGlobalShellWindow;
}
@@ -1423,6 +1424,9 @@
hwndActive = PERQDATA_GetActiveWnd( pOldActiveQueue->pQData );
}
+ if ((wndPtr = WIN_FindWndPtr(hWnd)))
+ hWnd = wndPtr->hwndSelf; /* make it a full handle */
+
/* paranoid checks */
if( hWnd == GetDesktopWindow() || (bRet = (hWnd == hwndActive)) )
goto CLEANUP_END;
@@ -1430,7 +1434,6 @@
/* if (wndPtr && (GetFastQueue16() != wndPtr->hmemTaskQ))
* return 0;
*/
- wndPtr = WIN_FindWndPtr(hWnd);
hOldActiveQueue = hActiveQueue;
if( (wndTemp = WIN_FindWndPtr(hwndActive)) )