From dfe969ab146be94e3159ac0fa7957006a21f4eb3 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Tue, 5 Jan 2010 19:26:32 +0000 Subject: [PATCH] =?UTF-8?q?[win32k]=20/=20[user32]=20Merge=20from=20amd64?= =?UTF-8?q?=20branch:=2034780=20some=20DWORD=20->=20DWORD=5FPTR=20(Timo=20?= =?UTF-8?q?Kreuzer)=2034781=20fix=20usage=20of=20InterlockedCompareExchang?= =?UTF-8?q?ePointer=20(Timo=20Kreuzer)=2034782=20fix=20usage=20of=20Interl?= =?UTF-8?q?ockedCompareExchangePointer=20(Timo=20Kreuzer)=2034908=20some?= =?UTF-8?q?=2064=20bit=20fixes=20in=20win32k=20(Timo=20Kreuzer)=2034909=20?= =?UTF-8?q?some=20more=20win32k=2064=20bit=20fixes=20(Timo=20Kreuzer)=2034?= =?UTF-8?q?965=20Fix=20typos.=20(Samuel=20Serapi=C3=B3n)=2041479=20Remove?= =?UTF-8?q?=20usage=20of=20RETURN()=20macro=20(Timo=20Kreuzer)=2041540=20M?= =?UTF-8?q?ake=20parameters=20for=20NtUserCallOneParam=20and=20NtUserCallT?= =?UTF-8?q?woParam=20DWORD=5FPTR=20instead=20of=20DWORD=20(Timo=20Kreuzer)?= =?UTF-8?q?=2041546=20Add=20=5FFLOATOBJ=5FGetFix=20for=20non-x86=20(Timo?= =?UTF-8?q?=20Kreuzer)=2041547=20Only=20export=20FLOATOBJ=5F*=20api=20on?= =?UTF-8?q?=20x86=20(Timo=20Kreuzer)=2044238=20Fix=20some=2064=20bit=20isu?= =?UTF-8?q?es.=20(Timo=20Kreuzer)=2043969=20undefine=20i386=20in=20the=20p?= =?UTF-8?q?spec=20file=20(Timo=20Kreuzer)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit svn path=/trunk/; revision=44956 --- reactos/dll/win32/user32/include/user32p.h | 34 ++++---- reactos/dll/win32/user32/misc/misc.c | 2 +- reactos/dll/win32/user32/misc/stubs.c | 2 +- reactos/dll/win32/user32/windows/dc.c | 2 +- reactos/dll/win32/user32/windows/defwnd.c | 2 +- reactos/dll/win32/user32/windows/hook.c | 2 +- reactos/dll/win32/user32/windows/input.c | 4 +- reactos/dll/win32/user32/windows/paint.c | 4 +- reactos/dll/win32/user32/windows/window.c | 2 +- reactos/include/reactos/win32k/ntuser.h | 14 ++-- .../subsystems/win32/win32k/eng/engwindow.c | 2 +- .../win32/win32k/include/floatobj.h | 1 + .../subsystems/win32/win32k/ntuser/callback.c | 4 +- .../subsystems/win32/win32k/ntuser/class.c | 2 +- reactos/subsystems/win32/win32k/ntuser/hook.c | 4 +- reactos/subsystems/win32/win32k/ntuser/menu.c | 6 +- reactos/subsystems/win32/win32k/ntuser/misc.c | 45 ++++++----- .../subsystems/win32/win32k/ntuser/painting.c | 2 +- .../win32/win32k/ntuser/simplecall.c | 80 +++++++++---------- reactos/subsystems/win32/win32k/win32k.pspec | 55 ++++++------- 20 files changed, 138 insertions(+), 131 deletions(-) diff --git a/reactos/dll/win32/user32/include/user32p.h b/reactos/dll/win32/user32/include/user32p.h index 7e8deb8704e..3f99b845e6c 100644 --- a/reactos/dll/win32/user32/include/user32p.h +++ b/reactos/dll/win32/user32/include/user32p.h @@ -38,31 +38,31 @@ (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_ANYPOPUP) #define NtUserValidateRgn(hWnd, hRgn) \ - (BOOL)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN) + (BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)hRgn, TWOPARAM_ROUTINE_VALIDATERGN) #define NtUserSetWindowContextHelpId(hWnd, dwContextHelpId) \ (BOOL)NtUserCallHwndParam(hWnd, dwContextHelpId, HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID) #define NtUserSetCaretPos(X, Y) \ - (BOOL)NtUserCallTwoParam((DWORD)X, (DWORD)Y, TWOPARAM_ROUTINE_SETCARETPOS) + (BOOL)NtUserCallTwoParam((DWORD_PTR)X, (DWORD_PTR)Y, TWOPARAM_ROUTINE_SETCARETPOS) #define NtUserSetGUIThreadHandle(field, hwnd) \ - (BOOL)NtUserCallTwoParam((DWORD)field, (DWORD)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE) + (BOOL)NtUserCallTwoParam((DWORD_PTR)field, (DWORD_PTR)hwnd, TWOPARAM_ROUTINE_SETGUITHRDHANDLE) #define NtUserSetMenuBarHeight(menu, height) \ - (BOOL)NtUserCallTwoParam((DWORD)menu, (DWORD)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT) + (BOOL)NtUserCallTwoParam((DWORD_PTR)menu, (DWORD_PTR)height, TWOPARAM_ROUTINE_SETMENUBARHEIGHT) #define NtUserRegisterLogonProcess(hproc, x) \ - (BOOL)NtUserCallTwoParam((DWORD)hproc, (DWORD)x, TWOPARAM_ROUTINE_REGISTERLOGONPROC) + (BOOL)NtUserCallTwoParam((DWORD_PTR)hproc, (DWORD_PTR)x, TWOPARAM_ROUTINE_REGISTERLOGONPROC) #define NtUserGetSysColorBrushes(HBrushes, count) \ - (BOOL)NtUserCallTwoParam((DWORD)(HBrushes), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES) + (BOOL)NtUserCallTwoParam((DWORD_PTR)(HBrushes), (DWORD_PTR)(count), TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES) #define NtUserGetSysColors(ColorRefs, count) \ - (BOOL)NtUserCallTwoParam((DWORD)(ColorRefs), (DWORD)(count), TWOPARAM_ROUTINE_GETSYSCOLORS) + (BOOL)NtUserCallTwoParam((DWORD_PTR)(ColorRefs), (DWORD_PTR)(count), TWOPARAM_ROUTINE_GETSYSCOLORS) #define NtUserSetCaretBlinkTime(uMSeconds) \ - (BOOL)NtUserCallOneParam((DWORD)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME) + (BOOL)NtUserCallOneParam((DWORD_PTR)uMSeconds, ONEPARAM_ROUTINE_SETCARETBLINKTIME) /* #define NtUserEnumClipboardFormats(format) \ @@ -70,31 +70,31 @@ */ #define NtUserWindowFromDC(hDC) \ - (HWND)NtUserCallOneParam((DWORD)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC) + (HWND)NtUserCallOneParam((DWORD_PTR)hDC, ONEPARAM_ROUTINE_WINDOWFROMDC) #define NtUserSwitchCaretShowing(CaretInfo) \ - (BOOL)NtUserCallOneParam((DWORD)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING) + (BOOL)NtUserCallOneParam((DWORD_PTR)CaretInfo, ONEPARAM_ROUTINE_SWITCHCARETSHOWING) #define NtUserSwapMouseButton(fSwap) \ - (BOOL)NtUserCallOneParam((DWORD)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON) + (BOOL)NtUserCallOneParam((DWORD_PTR)fSwap, ONEPARAM_ROUTINE_SWAPMOUSEBUTTON) #define NtUserSetMessageExtraInfo(lParam) \ - (LPARAM)NtUserCallOneParam((DWORD)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO) + (LPARAM)NtUserCallOneParam((DWORD_PTR)lParam, ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO) #define NtUserGetWindowContextHelpId(hwnd) \ - NtUserCallOneParam((DWORD)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID) + NtUserCallOneParam((DWORD_PTR)hwnd, ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID) #define NtUserGetCursorPos(lpPoint) \ - (BOOL)NtUserCallOneParam((DWORD)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION) + (BOOL)NtUserCallOneParam((DWORD_PTR)lpPoint, ONEPARAM_ROUTINE_GETCURSORPOSITION) #define NtUserIsWindowInDestroy(hWnd) \ - (BOOL)NtUserCallOneParam((DWORD)hWnd, ONEPARAM_ROUTINE_ISWINDOWINDESTROY) + (BOOL)NtUserCallOneParam((DWORD_PTR)hWnd, ONEPARAM_ROUTINE_ISWINDOWINDESTROY) #define NtUserEnableProcessWindowGhosting(bEnable) \ - NtUserCallOneParam((DWORD)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING) + NtUserCallOneParam((DWORD_PTR)bEnable, ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING) #define NtUserShowCursor(bShow) \ - NtUserCallOneParam((DWORD)bShow, ONEPARAM_ROUTINE_SHOWCURSOR) + NtUserCallOneParam((DWORD_PTR)bShow, ONEPARAM_ROUTINE_SHOWCURSOR) #define NtUserGetDesktopMapping(Ptr) \ (PVOID)NtUserCallOneParam((DWORD)Ptr, ONEPARAM_ROUTINE_GETDESKTOPMAPPING) diff --git a/reactos/dll/win32/user32/misc/misc.c b/reactos/dll/win32/user32/misc/misc.c index 3e664b23276..5b8e9be5bf2 100644 --- a/reactos/dll/win32/user32/misc/misc.c +++ b/reactos/dll/win32/user32/misc/misc.c @@ -61,7 +61,7 @@ WINAPI RegisterLogonProcess(DWORD dwProcessId, BOOL bRegister) { return NtUserCallTwoParam(dwProcessId, - (DWORD)bRegister, + (DWORD_PTR)bRegister, TWOPARAM_ROUTINE_REGISTERLOGONPROC); } diff --git a/reactos/dll/win32/user32/misc/stubs.c b/reactos/dll/win32/user32/misc/stubs.c index dde85a8467b..b053f389da9 100644 --- a/reactos/dll/win32/user32/misc/stubs.c +++ b/reactos/dll/win32/user32/misc/stubs.c @@ -129,7 +129,7 @@ UINT WINAPI UserRealizePalette ( HDC hDC ) { - return NtUserCallOneParam((DWORD) hDC, ONEPARAM_ROUTINE_REALIZEPALETTE); + return NtUserCallOneParam((DWORD_PTR) hDC, ONEPARAM_ROUTINE_REALIZEPALETTE); } diff --git a/reactos/dll/win32/user32/windows/dc.c b/reactos/dll/win32/user32/windows/dc.c index 874b428a57b..a5203c774a5 100644 --- a/reactos/dll/win32/user32/windows/dc.c +++ b/reactos/dll/win32/user32/windows/dc.c @@ -54,7 +54,7 @@ ReleaseDC(HWND hWnd, GdiReleaseDC ( hDC ); // Release locals. // Win 3.1 throw back, hWnd is ignored and not used. - return NtUserCallOneParam((DWORD) hDC, ONEPARAM_ROUTINE_RELEASEDC); + return NtUserCallOneParam((DWORD_PTR) hDC, ONEPARAM_ROUTINE_RELEASEDC); } diff --git a/reactos/dll/win32/user32/windows/defwnd.c b/reactos/dll/win32/user32/windows/defwnd.c index 2a4a507e71b..386dbeb8b48 100644 --- a/reactos/dll/win32/user32/windows/defwnd.c +++ b/reactos/dll/win32/user32/windows/defwnd.c @@ -1787,7 +1787,7 @@ User32DefWindowProc(HWND hWnd, /* Pack the information and call win32k */ if (Change) { - if (!NtUserCallTwoParam((DWORD)hWnd, (DWORD)Flags | ((DWORD)Action << 3), TWOPARAM_ROUTINE_ROS_UPDATEUISTATE)) + if (!NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)Flags | ((DWORD_PTR)Action << 3), TWOPARAM_ROUTINE_ROS_UPDATEUISTATE)) break; } diff --git a/reactos/dll/win32/user32/windows/hook.c b/reactos/dll/win32/user32/windows/hook.c index 863383cd195..4abff2aac49 100644 --- a/reactos/dll/win32/user32/windows/hook.c +++ b/reactos/dll/win32/user32/windows/hook.c @@ -298,7 +298,7 @@ BOOL WINAPI UnhookWindowsHook ( int nCode, HOOKPROC pfnFilterProc ) { - return NtUserCallTwoParam(nCode, (DWORD)pfnFilterProc, TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK); + return NtUserCallTwoParam(nCode, (DWORD_PTR)pfnFilterProc, TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK); } /* diff --git a/reactos/dll/win32/user32/windows/input.c b/reactos/dll/win32/user32/windows/input.c index b440d0ffac8..27f76ffe449 100644 --- a/reactos/dll/win32/user32/windows/input.c +++ b/reactos/dll/win32/user32/windows/input.c @@ -155,7 +155,7 @@ GetAsyncKeyState(int vKey) HKL WINAPI GetKeyboardLayout(DWORD idThread) { - return (HKL)NtUserCallOneParam((DWORD) idThread, ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT); + return (HKL)NtUserCallOneParam((DWORD_PTR) idThread, ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT); } @@ -249,7 +249,7 @@ GetKeyboardLayoutNameW(LPWSTR pwszKLID) int WINAPI GetKeyboardType(int nTypeFlag) { -return (int)NtUserCallOneParam((DWORD) nTypeFlag, ONEPARAM_ROUTINE_GETKEYBOARDTYPE); +return (int)NtUserCallOneParam((DWORD_PTR) nTypeFlag, ONEPARAM_ROUTINE_GETKEYBOARDTYPE); } diff --git a/reactos/dll/win32/user32/windows/paint.c b/reactos/dll/win32/user32/windows/paint.c index e8f0f5f7047..cf2de87c11e 100644 --- a/reactos/dll/win32/user32/windows/paint.c +++ b/reactos/dll/win32/user32/windows/paint.c @@ -216,7 +216,7 @@ GetWindowRgn( HWND hWnd, HRGN hRgn) { - return (int)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_GETWINDOWRGN); + return (int)NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)hRgn, TWOPARAM_ROUTINE_GETWINDOWRGN); } @@ -229,7 +229,7 @@ GetWindowRgnBox( HWND hWnd, LPRECT lprc) { - return (int)NtUserCallTwoParam((DWORD)hWnd, (DWORD)lprc, TWOPARAM_ROUTINE_GETWINDOWRGNBOX); + return (int)NtUserCallTwoParam((DWORD_PTR)hWnd, (DWORD_PTR)lprc, TWOPARAM_ROUTINE_GETWINDOWRGNBOX); } diff --git a/reactos/dll/win32/user32/windows/window.c b/reactos/dll/win32/user32/windows/window.c index 4485333f230..5fbcd0281ba 100644 --- a/reactos/dll/win32/user32/windows/window.c +++ b/reactos/dll/win32/user32/windows/window.c @@ -1695,7 +1695,7 @@ BOOL WINAPI ShowOwnedPopups(HWND hWnd, BOOL fShow) { - return (BOOL)NtUserCallTwoParam((DWORD)hWnd, fShow, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS); + return (BOOL)NtUserCallTwoParam((DWORD_PTR)hWnd, fShow, TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS); } diff --git a/reactos/include/reactos/win32k/ntuser.h b/reactos/include/reactos/win32k/ntuser.h index 0259037a007..b57bd7670bb 100644 --- a/reactos/include/reactos/win32k/ntuser.h +++ b/reactos/include/reactos/win32k/ntuser.h @@ -1246,22 +1246,22 @@ NtUserCallNextHookEx( LPARAM lParam, BOOL Ansi); -DWORD +DWORD_PTR NTAPI NtUserCallNoParam( DWORD Routine); -DWORD +DWORD_PTR NTAPI NtUserCallOneParam( - DWORD Param, + DWORD_PTR Param, DWORD Routine); -DWORD +DWORD_PTR NTAPI NtUserCallTwoParam( - DWORD Param1, - DWORD Param2, + DWORD_PTR Param1, + DWORD_PTR Param2, DWORD Routine); BOOL @@ -2010,7 +2010,7 @@ enum ThreadStateRoutines THREADSTATE_GETINPUTSTATE }; -DWORD +DWORD_PTR NTAPI NtUserGetThreadState( DWORD Routine); diff --git a/reactos/subsystems/win32/win32k/eng/engwindow.c b/reactos/subsystems/win32/win32k/eng/engwindow.c index 2c69181e413..e2262e82b21 100644 --- a/reactos/subsystems/win32/win32k/eng/engwindow.c +++ b/reactos/subsystems/win32/win32k/eng/engwindow.c @@ -137,7 +137,7 @@ IntEngWndUpdateClipObj( RtlCopyMemory(&WndObjInt->WndObj.coClient, ClipObj, sizeof (CLIPOBJ)); RtlCopyMemory(&WndObjInt->WndObj.rclClient, &Window->Wnd->rcClient, sizeof (RECT)); - OldClipObj = InterlockedExchangePointer(&WndObjInt->ClientClipObj, ClipObj); + OldClipObj = InterlockedExchangePointer((PVOID*)&WndObjInt->ClientClipObj, ClipObj); if (OldClipObj != NULL) IntEngDeleteClipRegion(OldClipObj); diff --git a/reactos/subsystems/win32/win32k/include/floatobj.h b/reactos/subsystems/win32/win32k/include/floatobj.h index 3d57fb7f9b9..ff9abf03d1f 100644 --- a/reactos/subsystems/win32/win32k/include/floatobj.h +++ b/reactos/subsystems/win32/win32k/include/floatobj.h @@ -65,6 +65,7 @@ _FLOATOBJ_Equal1(FLOATOBJ *pf) #define _FLOATOBJ_IsLong(pf) ((FLOAT)((LONG)*(pf)) == *(pf)) #define _FLOATOBJ_Equal0(pf) (*(pf) == 0.) #define _FLOATOBJ_Equal1(pf) (*(pf) == 1.) +#define _FLOATOBJ_GetFix(pf) ((LONG)(*(pf) * 16.)) #define FLOATOBJ_Set0(fo) *(fo) = 0; #define FLOATOBJ_Set1(fo) *(fo) = 1; diff --git a/reactos/subsystems/win32/win32k/ntuser/callback.c b/reactos/subsystems/win32/win32k/ntuser/callback.c index b8a8eb06f26..9a8de743c54 100644 --- a/reactos/subsystems/win32/win32k/ntuser/callback.c +++ b/reactos/subsystems/win32/win32k/ntuser/callback.c @@ -474,7 +474,7 @@ co_IntCallHookProc(INT HookId, { RtlCopyMemory(Extra, ClassName.Buffer, ClassName.Length); CbtCreatewndExtra->Cs.lpszClass = - (LPCWSTR) MAKELONG(Extra - (PCHAR) CbtCreatewndExtra, 1); + (LPCWSTR)(ULONG_PTR) MAKELONG(Extra - (PCHAR) CbtCreatewndExtra, 1); Extra += ClassName.Length; if (Ansi) @@ -700,7 +700,7 @@ co_IntCallLoadMenu( HINSTANCE hModule, Result = *(LRESULT*)ResultPointer; IntCbFreeMemory(Argument); - + if (!NT_SUCCESS(Status)) { return 0; diff --git a/reactos/subsystems/win32/win32k/ntuser/class.c b/reactos/subsystems/win32/win32k/ntuser/class.c index a8c9ff202e4..71da6b97ec0 100644 --- a/reactos/subsystems/win32/win32k/ntuser/class.c +++ b/reactos/subsystems/win32/win32k/ntuser/class.c @@ -551,7 +551,7 @@ IntGetClassForDesktop(IN OUT PCLS BaseClass, Class->pclsClone = NULL; Class->pclsBase = BaseClass; Class->pclsNext = BaseClass->pclsClone; - (void)InterlockedExchangePointer(&BaseClass->pclsClone, + (void)InterlockedExchangePointer((PVOID*)&BaseClass->pclsClone, Class); } } diff --git a/reactos/subsystems/win32/win32k/ntuser/hook.c b/reactos/subsystems/win32/win32k/ntuser/hook.c index aea544e5fe4..99a6a109326 100644 --- a/reactos/subsystems/win32/win32k/ntuser/hook.c +++ b/reactos/subsystems/win32/win32k/ntuser/hook.c @@ -298,7 +298,7 @@ IntCallLowLevelHook(PHOOK Hook, INT Code, WPARAM wParam, LPARAM lParam) /* FIXME should get timeout from * HKEY_CURRENT_USER\Control Panel\Desktop\LowLevelHooksTimeout */ Status = co_MsqSendMessage(((PTHREADINFO)Hook->Thread->Tcb.Win32Thread)->MessageQueue, - (HWND)Code, + IntToPtr(Code), Hook->HookId, wParam, lParam, @@ -1342,5 +1342,5 @@ CLEANUP: UserLeave(); END_CLEANUP; } - + /* EOF */ diff --git a/reactos/subsystems/win32/win32k/ntuser/menu.c b/reactos/subsystems/win32/win32k/ntuser/menu.c index 9c933d65a6a..85afa343252 100644 --- a/reactos/subsystems/win32/win32k/ntuser/menu.c +++ b/reactos/subsystems/win32/win32k/ntuser/menu.c @@ -1857,7 +1857,7 @@ NtUserGetMenuBarInfo( RETURN(FALSE); } - hMenu = (HMENU)WindowObject->Wnd->IDMenu; + hMenu = (HMENU)(DWORD_PTR)WindowObject->Wnd->IDMenu; if (!(MenuObject = UserGetMenuObject(hMenu))) { @@ -2160,7 +2160,7 @@ NtUserHiliteMenuItem( RETURN(FALSE); } - if(Window->Wnd->IDMenu == (UINT)hMenu) + if(Window->Wnd->IDMenu == (UINT)(UINT_PTR)hMenu) { RETURN( IntHiliteMenuItem(Window, Menu, uItemHilite, uHilite)); } @@ -2567,7 +2567,7 @@ NtUserThunkedMenuItemInfo( if bInsert == TRUE call NtUserInsertMenuItem() else NtUserSetMenuItemInfo() */ if (bInsert) return UserInsertMenuItem(hMenu, uItem, fByPosition, lpmii); - + UNIMPLEMENTED return 0; } diff --git a/reactos/subsystems/win32/win32k/ntuser/misc.c b/reactos/subsystems/win32/win32k/ntuser/misc.c index 06598968782..c00f43d8837 100644 --- a/reactos/subsystems/win32/win32k/ntuser/misc.c +++ b/reactos/subsystems/win32/win32k/ntuser/misc.c @@ -63,11 +63,11 @@ IntGdiGetLanguageID(VOID) /* * @unimplemented */ -DWORD APIENTRY +DWORD_PTR APIENTRY NtUserGetThreadState( DWORD Routine) { - DECLARE_RETURN(DWORD); + DWORD_PTR ret = 0; DPRINT("Enter NtUserGetThreadState\n"); if (Routine != THREADSTATE_GETTHREADINFO) @@ -83,51 +83,56 @@ NtUserGetThreadState( { case THREADSTATE_GETTHREADINFO: GetW32ThreadInfo(); - RETURN(0); - + break; case THREADSTATE_FOCUSWINDOW: - RETURN( (DWORD)IntGetThreadFocusWindow()); + ret = (DWORD_PTR)IntGetThreadFocusWindow(); + break; case THREADSTATE_CAPTUREWINDOW: /* FIXME should use UserEnterShared */ - RETURN( (DWORD)IntGetCapture()); + ret = (DWORD_PTR)IntGetCapture(); + break; case THREADSTATE_PROGMANWINDOW: - RETURN( (DWORD)GetW32ThreadInfo()->pDeskInfo->hProgmanWindow); + ret = (DWORD_PTR)GetW32ThreadInfo()->pDeskInfo->hProgmanWindow; + break; case THREADSTATE_TASKMANWINDOW: - RETURN( (DWORD)GetW32ThreadInfo()->pDeskInfo->hTaskManWindow); + ret = (DWORD_PTR)GetW32ThreadInfo()->pDeskInfo->hTaskManWindow; + break; case THREADSTATE_ACTIVEWINDOW: - RETURN ( (DWORD)UserGetActiveWindow()); + ret = (DWORD_PTR)UserGetActiveWindow(); + break; case THREADSTATE_INSENDMESSAGE: { - DWORD Ret = ISMEX_NOSEND; PUSER_MESSAGE_QUEUE MessageQueue = ((PTHREADINFO)PsGetCurrentThreadWin32Thread())->MessageQueue; DPRINT1("THREADSTATE_INSENDMESSAGE\n"); + ret = ISMEX_NOSEND; if (!IsListEmpty(&MessageQueue->SentMessagesListHead)) { - Ret = ISMEX_SEND; + ret = ISMEX_SEND; } else if (!IsListEmpty(&MessageQueue->NotifyMessagesListHead)) { /* FIXME Need to set message flag when in callback mode with notify */ - Ret = ISMEX_NOTIFY; + ret = ISMEX_NOTIFY; } /* FIXME Need to set message flag if replied to or ReplyMessage */ - RETURN( Ret); + break; } case THREADSTATE_GETMESSAGETIME: /* FIXME Needs more work! */ - RETURN( ((PTHREADINFO)PsGetCurrentThreadWin32Thread())->timeLast); + ret = ((PTHREADINFO)PsGetCurrentThreadWin32Thread())->timeLast; + break; case THREADSTATE_GETINPUTSTATE: - RETURN( HIWORD(IntGetQueueStatus(FALSE)) & (QS_KEY | QS_MOUSEBUTTON)); + ret = HIWORD(IntGetQueueStatus(FALSE)) & (QS_KEY | QS_MOUSEBUTTON); + break; } - RETURN( 0); -CLEANUP: - DPRINT("Leave NtUserGetThreadState, ret=%i\n",_ret_); + DPRINT("Leave NtUserGetThreadState, ret=%i\n", ret); UserLeave(); - END_CLEANUP; + + return ret; } @@ -180,7 +185,7 @@ NtUserGetGUIThreadInfo( if(idThread) { - Status = PsLookupThreadByThreadId((HANDLE)idThread, &Thread); + Status = PsLookupThreadByThreadId((HANDLE)(DWORD_PTR)idThread, &Thread); if(!NT_SUCCESS(Status)) { SetLastWin32Error(ERROR_ACCESS_DENIED); diff --git a/reactos/subsystems/win32/win32k/ntuser/painting.c b/reactos/subsystems/win32/win32k/ntuser/painting.c index 00465bb2565..f419e7e2f63 100644 --- a/reactos/subsystems/win32/win32k/ntuser/painting.c +++ b/reactos/subsystems/win32/win32k/ntuser/painting.c @@ -1647,7 +1647,7 @@ BOOL UserDrawCaption( && !(Wnd->ExStyle & WS_EX_TOOLWINDOW); } else - HasIcon = (BOOL) hIcon; + HasIcon = (hIcon != 0); IconWidth = UserGetSystemMetrics(SM_CXSIZE) + Padding; diff --git a/reactos/subsystems/win32/win32k/ntuser/simplecall.c b/reactos/subsystems/win32/win32k/ntuser/simplecall.c index 91d58dbd2b7..5f47f3918f0 100644 --- a/reactos/subsystems/win32/win32k/ntuser/simplecall.c +++ b/reactos/subsystems/win32/win32k/ntuser/simplecall.c @@ -74,12 +74,12 @@ co_IntRegisterLogonProcess(HANDLE ProcessId, BOOL Register) /* * @unimplemented */ -DWORD +DWORD_PTR APIENTRY NtUserCallNoParam(DWORD Routine) { - DWORD Result = 0; - DECLARE_RETURN(DWORD); + DWORD_PTR Result = 0; + DECLARE_RETURN(DWORD_PTR); DPRINT("Enter NtUserCallNoParam\n"); UserEnterExclusive(); @@ -87,39 +87,39 @@ NtUserCallNoParam(DWORD Routine) switch(Routine) { case NOPARAM_ROUTINE_CREATEMENU: - Result = (DWORD)UserCreateMenu(FALSE); + Result = (DWORD_PTR)UserCreateMenu(FALSE); break; case NOPARAM_ROUTINE_CREATEMENUPOPUP: - Result = (DWORD)UserCreateMenu(TRUE); + Result = (DWORD_PTR)UserCreateMenu(TRUE); break; case NOPARAM_ROUTINE_DESTROY_CARET: - Result = (DWORD)co_IntDestroyCaret(PsGetCurrentThread()->Tcb.Win32Thread); + Result = (DWORD_PTR)co_IntDestroyCaret(PsGetCurrentThread()->Tcb.Win32Thread); break; case NOPARAM_ROUTINE_INIT_MESSAGE_PUMP: - Result = (DWORD)IntInitMessagePumpHook(); + Result = (DWORD_PTR)IntInitMessagePumpHook(); break; case NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP: - Result = (DWORD)IntUninitMessagePumpHook(); + Result = (DWORD_PTR)IntUninitMessagePumpHook(); break; case NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO: - Result = (DWORD)MsqGetMessageExtraInfo(); + Result = (DWORD_PTR)MsqGetMessageExtraInfo(); break; case NOPARAM_ROUTINE_ANYPOPUP: - Result = (DWORD)IntAnyPopup(); + Result = (DWORD_PTR)IntAnyPopup(); break; case NOPARAM_ROUTINE_CSRSS_INITIALIZED: - Result = (DWORD)CsrInit(); + Result = (DWORD_PTR)CsrInit(); break; case NOPARAM_ROUTINE_MSQCLEARWAKEMASK: - RETURN( (DWORD)IntMsqClearWakeMask()); + RETURN( (DWORD_PTR)IntMsqClearWakeMask()); default: DPRINT1("Calling invalid routine number 0x%x in NtUserCallNoParam\n", Routine); @@ -138,13 +138,13 @@ CLEANUP: /* * @implemented */ -DWORD +DWORD_PTR APIENTRY NtUserCallOneParam( - DWORD Param, + DWORD_PTR Param, DWORD Routine) { - DECLARE_RETURN(DWORD); + DECLARE_RETURN(DWORD_PTR); DPRINT("Enter NtUserCallOneParam\n"); @@ -160,7 +160,7 @@ NtUserCallOneParam( RETURN(TRUE); } case ONEPARAM_ROUTINE_SHOWCURSOR: - RETURN( (DWORD)UserShowCursor((BOOL)Param) ); + RETURN( (DWORD_PTR)UserShowCursor((BOOL)Param) ); case ONEPARAM_ROUTINE_GETDESKTOPMAPPING: { @@ -170,7 +170,7 @@ NtUserCallOneParam( { /* Try convert the pointer to a user mode pointer if the desktop is mapped into the process */ - RETURN((DWORD)DesktopHeapAddressToUser((PVOID)Param)); + RETURN((DWORD_PTR)DesktopHeapAddressToUser((PVOID)Param)); } else { @@ -179,11 +179,11 @@ NtUserCallOneParam( } case ONEPARAM_ROUTINE_WINDOWFROMDC: - RETURN( (DWORD)IntWindowFromDC((HDC)Param)); + RETURN( (DWORD_PTR)IntWindowFromDC((HDC)Param)); case ONEPARAM_ROUTINE_SWAPMOUSEBUTTON: { - DWORD Result; + DWORD_PTR Result; Result = gspv.bMouseBtnSwap; gspv.bMouseBtnSwap = Param ? TRUE : FALSE; @@ -192,13 +192,13 @@ NtUserCallOneParam( } case ONEPARAM_ROUTINE_SWITCHCARETSHOWING: - RETURN( (DWORD)IntSwitchCaretShowing((PVOID)Param)); + RETURN( (DWORD_PTR)IntSwitchCaretShowing((PVOID)Param)); case ONEPARAM_ROUTINE_SETCARETBLINKTIME: - RETURN( (DWORD)IntSetCaretBlinkTime((UINT)Param)); + RETURN( (DWORD_PTR)IntSetCaretBlinkTime((UINT)Param)); case ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO: - RETURN( (DWORD)MsqSetMessageExtraInfo((LPARAM)Param)); + RETURN( (DWORD_PTR)MsqSetMessageExtraInfo((LPARAM)Param)); case ONEPARAM_ROUTINE_CREATECURICONHANDLE: { @@ -210,7 +210,7 @@ NtUserCallOneParam( RETURN(0); } - RETURN((DWORD)CurIcon->Self); + RETURN((DWORD_PTR)CurIcon->Self); } case ONEPARAM_ROUTINE_GETCURSORPOSITION: @@ -236,14 +236,14 @@ NtUserCallOneParam( case ONEPARAM_ROUTINE_ISWINDOWINDESTROY: { PWINDOW_OBJECT Window; - DWORD Result; + DWORD_PTR Result; if(!(Window = UserGetWindowObject((HWND)Param))) { RETURN( FALSE); } - Result = (DWORD)IntIsWindowInDestroy(Window); + Result = (DWORD_PTR)IntIsWindowInDestroy(Window); RETURN( Result); } @@ -273,13 +273,13 @@ NtUserCallOneParam( } case ONEPARAM_ROUTINE_MSQSETWAKEMASK: - RETURN( (DWORD)IntMsqSetWakeMask(Param)); + RETURN( (DWORD_PTR)IntMsqSetWakeMask(Param)); case ONEPARAM_ROUTINE_GETKEYBOARDTYPE: RETURN( UserGetKeyboardType(Param)); case ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT: - RETURN( (DWORD)UserGetKeyboardLayout(Param)); + RETURN( (DWORD_PTR)UserGetKeyboardLayout(Param)); case ONEPARAM_ROUTINE_RELEASEDC: RETURN (UserReleaseDC(NULL, (HDC) Param, FALSE)); @@ -338,16 +338,16 @@ CLEANUP: /* * @implemented */ -DWORD +DWORD_PTR APIENTRY NtUserCallTwoParam( - DWORD Param1, - DWORD Param2, + DWORD_PTR Param1, + DWORD_PTR Param2, DWORD Routine) { NTSTATUS Status; PWINDOW_OBJECT Window; - DECLARE_RETURN(DWORD); + DECLARE_RETURN(DWORD_PTR); DPRINT("Enter NtUserCallTwoParam\n"); UserEnterExclusive(); @@ -356,12 +356,12 @@ NtUserCallTwoParam( { case TWOPARAM_ROUTINE_GETWINDOWRGNBOX: { - DWORD Ret; + DWORD_PTR Ret; RECTL rcRect; Window = UserGetWindowObject((HWND)Param1); if (!Window) RETURN(ERROR); - Ret = (DWORD)IntGetWindowRgnBox(Window, &rcRect); + Ret = (DWORD_PTR)IntGetWindowRgnBox(Window, &rcRect); Status = MmCopyToCaller((PVOID)Param2, &rcRect, sizeof(RECT)); if(!NT_SUCCESS(Status)) { @@ -375,11 +375,11 @@ NtUserCallTwoParam( Window = UserGetWindowObject((HWND)Param1); if (!Window) RETURN(ERROR); - RETURN( (DWORD)IntGetWindowRgn(Window, (HRGN)Param2)); + RETURN( (DWORD_PTR)IntGetWindowRgn(Window, (HRGN)Param2)); } case TWOPARAM_ROUTINE_SETMENUBARHEIGHT: { - DWORD Ret; + DWORD_PTR Ret; PMENU_OBJECT MenuObject = IntGetMenuObject((HMENU)Param1); if(!MenuObject) RETURN( 0); @@ -390,7 +390,7 @@ NtUserCallTwoParam( MenuObject->MenuInfo.Height = (int)Param2; } else - Ret = (DWORD)MenuObject->MenuInfo.Height; + Ret = (DWORD_PTR)MenuObject->MenuInfo.Height; IntReleaseMenuObject(MenuObject); RETURN( Ret); } @@ -400,7 +400,7 @@ NtUserCallTwoParam( PUSER_MESSAGE_QUEUE MsgQueue = ((PTHREADINFO)PsGetCurrentThread()->Tcb.Win32Thread)->MessageQueue; ASSERT(MsgQueue); - RETURN( (DWORD)MsqSetStateWindow(MsgQueue, (ULONG)Param1, (HWND)Param2)); + RETURN( (DWORD_PTR)MsqSetStateWindow(MsgQueue, (ULONG)Param1, (HWND)Param2)); } case TWOPARAM_ROUTINE_ENABLEWINDOW: @@ -412,7 +412,7 @@ NtUserCallTwoParam( Window = UserGetWindowObject((HWND)Param1); if (!Window) RETURN(0); - RETURN( (DWORD)IntShowOwnedPopups(Window, (BOOL) Param2)); + RETURN( (DWORD_PTR)IntShowOwnedPopups(Window, (BOOL) Param2)); } case TWOPARAM_ROUTINE_ROS_UPDATEUISTATE: @@ -434,10 +434,10 @@ NtUserCallTwoParam( case TWOPARAM_ROUTINE_SETCARETPOS: - RETURN( (DWORD)co_IntSetCaretPos((int)Param1, (int)Param2)); + RETURN( (DWORD_PTR)co_IntSetCaretPos((int)Param1, (int)Param2)); case TWOPARAM_ROUTINE_REGISTERLOGONPROC: - RETURN( (DWORD)co_IntRegisterLogonProcess((HANDLE)Param1, (BOOL)Param2)); + RETURN( (DWORD_PTR)co_IntRegisterLogonProcess((HANDLE)Param1, (BOOL)Param2)); } DPRINT1("Calling invalid routine number 0x%x in NtUserCallTwoParam(), Param1=0x%x Parm2=0x%x\n", Routine, Param1, Param2); diff --git a/reactos/subsystems/win32/win32k/win32k.pspec b/reactos/subsystems/win32/win32k/win32k.pspec index bfa2e6a1d95..bd2a06eb746 100644 --- a/reactos/subsystems/win32/win32k/win32k.pspec +++ b/reactos/subsystems/win32/win32k/win32k.pspec @@ -1,9 +1,10 @@ #include "include/reactos/msvctarget.h" +#undef i386 -@ stdcall FLOATOBJ_AddFloatObj(ptr ptr) FLOATOBJ_Add -@ stdcall FLOATOBJ_DivFloatObj(ptr ptr) FLOATOBJ_Div -@ stdcall FLOATOBJ_MulFloatObj(ptr ptr) FLOATOBJ_Mul -@ stdcall FLOATOBJ_SubFloatObj(ptr ptr) FLOATOBJ_Sub +@ stdcall -arch=i386 FLOATOBJ_AddFloatObj(ptr ptr) FLOATOBJ_Add +@ stdcall -arch=i386 FLOATOBJ_DivFloatObj(ptr ptr) FLOATOBJ_Div +@ stdcall -arch=i386 FLOATOBJ_MulFloatObj(ptr ptr) FLOATOBJ_Mul +@ stdcall -arch=i386 FLOATOBJ_SubFloatObj(ptr ptr) FLOATOBJ_Sub @ stdcall BRUSHOBJ_hGetColorTransform(ptr) @ stdcall BRUSHOBJ_pvAllocRbrush(ptr long) @ stdcall BRUSHOBJ_pvGetRbrush(ptr) @@ -147,29 +148,29 @@ @ stdcall EngWaitForSingleObject(ptr ptr) @ stdcall EngWideCharToMultiByte(long ptr long ptr long) @ stdcall EngWritePrinter(ptr ptr long ptr) -@ stdcall FLOATOBJ_Add(ptr ptr) -@ stdcall FLOATOBJ_AddFloat(ptr long) -@ stdcall FLOATOBJ_AddLong(ptr long) -@ stdcall FLOATOBJ_Div(ptr ptr) -@ stdcall FLOATOBJ_DivFloat(ptr long) -@ stdcall FLOATOBJ_DivLong(ptr long) -@ stdcall FLOATOBJ_Equal(ptr ptr) -@ stdcall FLOATOBJ_EqualLong(ptr long) -@ stdcall FLOATOBJ_GetFloat(ptr) -@ stdcall FLOATOBJ_GetLong(ptr) -@ stdcall FLOATOBJ_GreaterThan(ptr ptr) -@ stdcall FLOATOBJ_GreaterThanLong(ptr long) -@ stdcall FLOATOBJ_LessThan(ptr ptr) -@ stdcall FLOATOBJ_LessThanLong(ptr long) -@ stdcall FLOATOBJ_Mul(ptr ptr) -@ stdcall FLOATOBJ_MulFloat(ptr long) -@ stdcall FLOATOBJ_MulLong(ptr long) -@ stdcall FLOATOBJ_Neg(ptr) -@ stdcall FLOATOBJ_SetFloat(ptr long) -@ stdcall FLOATOBJ_SetLong(ptr long) -@ stdcall FLOATOBJ_Sub(ptr ptr) -@ stdcall FLOATOBJ_SubFloat(ptr long) -@ stdcall FLOATOBJ_SubLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Add(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_AddFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_AddLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Div(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_DivFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_DivLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Equal(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_EqualLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_GetFloat(ptr) +@ stdcall -arch=i386 FLOATOBJ_GetLong(ptr) +@ stdcall -arch=i386 FLOATOBJ_GreaterThan(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_GreaterThanLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_LessThan(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_LessThanLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Mul(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_MulFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_MulLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Neg(ptr) +@ stdcall -arch=i386 FLOATOBJ_SetFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_SetLong(ptr long) +@ stdcall -arch=i386 FLOATOBJ_Sub(ptr ptr) +@ stdcall -arch=i386 FLOATOBJ_SubFloat(ptr long) +@ stdcall -arch=i386 FLOATOBJ_SubLong(ptr long) @ stdcall FONTOBJ_cGetAllGlyphHandles(ptr ptr) @ stdcall FONTOBJ_cGetGlyphs(ptr long long ptr ptr) @ stdcall FONTOBJ_pQueryGlyphAttrs(ptr long)