From 19761f316e4a9020ca06503a1dfb60d5b65cf546 Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Sat, 22 Mar 2008 02:53:56 +0000 Subject: [PATCH] - make Simplecall definitions (NtUserCallXxx) compatible to different Win versions (currently XP and Vista), using an enum and conditional compiling - move incompatible definitions to the bottom of ntuser.h (bad section) - fix parameters of NtUserCallHwnd* and move the rest of them to simplecall.c svn path=/trunk/; revision=32743 --- reactos/dll/win32/user32/windows/hook.c | 4 +- reactos/include/reactos/win32k/ntuser.h | 337 +++++++++++++----- .../subsystems/win32/win32k/ntuser/ntstubs.c | 48 --- .../win32/win32k/ntuser/simplecall.c | 55 ++- 4 files changed, 297 insertions(+), 147 deletions(-) diff --git a/reactos/dll/win32/user32/windows/hook.c b/reactos/dll/win32/user32/windows/hook.c index d6a55458a52..0b8f8f99c6c 100644 --- a/reactos/dll/win32/user32/windows/hook.c +++ b/reactos/dll/win32/user32/windows/hook.c @@ -197,7 +197,7 @@ BOOL STDCALL DeregisterShellHookWindow(HWND hWnd) { - return NtUserCallHwnd(HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW, (DWORD)hWnd); + return NtUserCallHwnd(hWnd, HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW); } /* @@ -207,7 +207,7 @@ BOOL STDCALL RegisterShellHookWindow(HWND hWnd) { - return NtUserCallHwnd(HWND_ROUTINE_REGISTERSHELLHOOKWINDOW, (DWORD)hWnd); + return NtUserCallHwnd(hWnd, HWND_ROUTINE_REGISTERSHELLHOOKWINDOW); } /* diff --git a/reactos/include/reactos/win32k/ntuser.h b/reactos/include/reactos/win32k/ntuser.h index fb632b5ea94..052f540dcea 100644 --- a/reactos/include/reactos/win32k/ntuser.h +++ b/reactos/include/reactos/win32k/ntuser.h @@ -479,30 +479,199 @@ NtUserBuildPropList( DWORD BufferSize, DWORD *Count); -enum { +/* apfnSimpleCall indices from Windows XP SP 2 */ +/* TODO: Check for differences in Windows 2000, 2003 and 2008 */ +#define WIN32K_VERSION NTDDI_WINXPSP2 // FIXME: this should go somewhere else + +enum SimpleCallRoutines +{ + NOPARAM_ROUTINE_CREATEMENU, + NOPARAM_ROUTINE_CREATEMENUPOPUP, +#if (WIN32K_VERSION >= NTDDI_VISTA) + NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, + NOPARAM_ROUTINE_MSQCLEARWAKEMASK, + NOPARAM_ROUTINE_CREATESYSTEMTHREADS, + NOPARAM_ROUTINE_DESTROY_CARET, +#endif + NOPARAM_ROUTINE_ENABLEPROCWNDGHSTING, +#if (WIN32K_VERSION < NTDDI_VISTA) + NOPARAM_ROUTINE_MSQCLEARWAKEMASK, + NOPARAM_ROUTINE_ALLOWFOREGNDACTIVATION, + NOPARAM_ROUTINE_DESTROY_CARET, +#endif + NOPARAM_ROUTINE_GETDEVICECHANGEINFO, + NOPARAM_ROUTINE_GETIMESHOWSTATUS, + NOPARAM_ROUTINE_GETINPUTDESKTOP, + NOPARAM_ROUTINE_GETMSESSAGEPOS, +#if (WIN32K_VERSION >= NTDDI_VISTA) + NOPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL, +#else + NOPARAM_ROUTINE_GETREMOTEPROCID, +#endif + NOPARAM_ROUTINE_HIDECURSORNOCAPTURE, + NOPARAM_ROUTINE_LOADCURSANDICOS, +#if (WIN32K_VERSION >= NTDDI_VISTA) + NOPARAM_ROUTINE_LOADUSERAPIHOOK, + NOPARAM_ROUTINE_PREPAREFORLOGOFF, /* 0x0f */ +#endif + NOPARAM_ROUTINE_RELEASECAPTURE, + NOPARAM_ROUTINE_RESETDBLCLICK, + NOPARAM_ROUTINE_ZAPACTIVEANDFOUS, + NOPARAM_ROUTINE_REMOTECONSHDWSTOP, + NOPARAM_ROUTINE_REMOTEDISCONNECT, + NOPARAM_ROUTINE_REMOTELOGOFF, + NOPARAM_ROUTINE_REMOTENTSECURITY, + NOPARAM_ROUTINE_REMOTESHDWSETUP, + NOPARAM_ROUTINE_REMOTESHDWSTOP, + NOPARAM_ROUTINE_REMOTEPASSTHRUENABLE, + NOPARAM_ROUTINE_REMOTEPASSTHRUDISABLE, + NOPARAM_ROUTINE_REMOTECONNECTSTATE, + NOPARAM_ROUTINE_UPDATEPERUSERIMMENABLING, + NOPARAM_ROUTINE_USERPWRCALLOUTWORKER, +#if (WIN32K_VERSION >= NTDDI_VISTA) + NOPARAM_ROUTINE_WAKERITFORSHTDWN, +#endif + NOPARAM_ROUTINE_INIT_MESSAGE_PUMP, + NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP, +#if (WIN32K_VERSION < NTDDI_VISTA) + NOPARAM_ROUTINE_LOADUSERAPIHOOK, +#endif + ONEPARAM_ROUTINE_BEGINDEFERWNDPOS, +#if (WIN32K_VERSION >= NTDDI_VISTA) + ONEPARAM_ROUTINE_GETSENDMSGRECVR, +#endif + ONEPARAM_ROUTINE_WINDOWFROMDC, + ONEPARAM_ROUTINE_ALLOWSETFOREGND, + ONEPARAM_ROUTINE_CREATEEMPTYCUROBJECT, +#if (WIN32K_VERSION < NTDDI_VISTA) + ONEPARAM_ROUTINE_CREATESYSTEMTHREADS, +#endif + ONEPARAM_ROUTINE_CSDDEUNINITIALIZE, + ONEPARAM_ROUTINE_DIRECTEDYIELD, + ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS, +#if (WIN32K_VERSION < NTDDI_VISTA) + ONEPARAM_ROUTINE_GETCURSORPOS, +#endif + ONEPARAM_ROUTINE_GETINPUTEVENT, + ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT, + ONEPARAM_ROUTINE_GETKEYBOARDTYPE, + ONEPARAM_ROUTINE_GETPROCDEFLAYOUT, + ONEPARAM_ROUTINE_GETQUEUESTATUS, + ONEPARAM_ROUTINE_GETWINSTAINFO, +#if (WIN32K_VERSION < NTDDI_VISTA) + ONEPARAM_ROUTINE_HANDLESYSTHRDCREATFAIL, +#endif + ONEPARAM_ROUTINE_LOCKFOREGNDWINDOW, + ONEPARAM_ROUTINE_LOADFONTS, + ONEPARAM_ROUTINE_MAPDEKTOPOBJECT, + ONEPARAM_ROUTINE_MESSAGEBEEP, + ONEPARAM_ROUTINE_PLAYEVENTSOUND, + ONEPARAM_ROUTINE_POSTQUITMESSAGE, +#if (WIN32K_VERSION < NTDDI_VISTA) + ONEPARAM_ROUTINE_PREPAREFORLOGOFF, +#endif + ONEPARAM_ROUTINE_REALIZEPALETTE, + ONEPARAM_ROUTINE_REGISTERLPK, +#if (WIN32K_VERSION >= NTDDI_VISTA) + ONEPARAM_ROUTINE_REGISTERSYSTEMTHREAD, +#endif + ONEPARAM_ROUTINE_REMOTERECONNECT, + ONEPARAM_ROUTINE_REMOTETHINWIRESTATUS, + ONEPARAM_ROUTINE_RELEASEDC, +#if (WIN32K_VERSION >= NTDDI_VISTA) + ONEPARAM_ROUTINE_REMOTENOTIFY, +#endif + ONEPARAM_ROUTINE_REPLYMESSAGE, + ONEPARAM_ROUTINE_SETCARETBLINKTIME, + ONEPARAM_ROUTINE_SETDBLCLICKTIME, +#if (WIN32K_VERSION < NTDDI_VISTA) + ONEPARAM_ROUTINE_SETIMESHOWSTATUS, +#endif + ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO, + ONEPARAM_ROUTINE_SETPROCDEFLAYOUT, +#if (WIN32K_VERSION >= NTDDI_VISTA) + ONEPARAM_ROUTINE_SETWATERMARKSTRINGS, +#endif + ONEPARAM_ROUTINE_SHOWCURSOR, + ONEPARAM_ROUTINE_SHOWSTARTGLASS, + ONEPARAM_ROUTINE_SWAPMOUSEBUTTON, + X_ROUTINE_WOWMODULEUNLOAD, +#if (WIN32K_VERSION < NTDDI_VISTA) + X_ROUTINE_REMOTENOTIFY, +#endif + HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW, + HWND_ROUTINE_DWP_GETENABLEDPOPUP, + HWND_ROUTINE_GETWNDCONTEXTHLPID, HWND_ROUTINE_REGISTERSHELLHOOKWINDOW, - HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW + HWND_ROUTINE_SETMSGBOX, + HWNDOPT_ROUTINE_SETPROGMANWINDOW, + HWNDOPT_ROUTINE_SETTASKMANWINDOW, + HWNDPARAM_ROUTINE_GETCLASSICOCUR, + HWNDPARAM_ROUTINE_CLEARWINDOWSTATE, + HWNDPARAM_ROUTINE_KILLSYSTEMTIMER, + HWNDPARAM_ROUTINE_SETDIALOGPOINTER, + HWNDPARAM_ROUTINE_SETVISIBLE, + HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID, + HWNDPARAM_ROUTINE_SETWINDOWSTATE, + HWNDLOCK_ROUTINE_WINDOWHASSHADOW, /* correct prefix ? */ + HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS, + HWNDLOCK_ROUTINE_DRAWMENUBAR, + HWNDLOCK_ROUTINE_CHECKIMESHOWSTATUSINTHRD, + HWNDLOCK_ROUTINE_GETSYSMENUHANDLE, + HWNDLOCK_ROUTINE_REDRAWFRAME, + HWNDLOCK_ROUTINE_REDRAWFRAMEANDHOOK, + HWNDLOCK_ROUTINE_SETDLGSYSMENU, + HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW, + HWNDLOCK_ROUTINE_SETSYSMENU, + HWNDLOCK_ROUTINE_UPDATECKIENTRECT, + HWNDLOCK_ROUTINE_UPDATEWINDOW, + X_ROUTINE_IMESHOWSTATUSCHANGE, + TWOPARAM_ROUTINE_ENABLEWINDOW, + TWOPARAM_ROUTINE_REDRAWTITLE, + TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS, + TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW, + TWOPARAM_ROUTINE_UPDATEWINDOWS, + TWOPARAM_ROUTINE_VALIDATERGN, +#if (WIN32K_VERSION >= NTDDI_VISTA) + TWOPARAM_ROUTINE_CHANGEWNDMSGFILTER, + TWOPARAM_ROUTINE_GETCURSORPOS, +#endif + TWOPARAM_ROUTINE_GETHDEVNAME, + TWOPARAM_ROUTINE_INITANSIOEM, + TWOPARAM_ROUTINE_NLSSENDIMENOTIFY, +#if (WIN32K_VERSION >= NTDDI_VISTA) + TWOPARAM_ROUTINE_REGISTERGHSTWND, +#endif + TWOPARAM_ROUTINE_REGISTERLOGONPROCESS, +#if (WIN32K_VERSION >= NTDDI_VISTA) + TWOPARAM_ROUTINE_REGISTERSBLFROSTWND, +#else + TWOPARAM_ROUTINE_REGISTERSYSTEMTHREAD, +#endif + TWOPARAM_ROUTINE_REGISTERUSERHUNGAPPHANDLERS, + TWOPARAM_ROUTINE_SHADOWCLEANUP, + TWOPARAM_ROUTINE_REMOTESHADOWSTART, + TWOPARAM_ROUTINE_SETCARETPOS, + TWOPARAM_ROUTINE_SETCURSORPOS, +#if (WIN32K_VERSION >= NTDDI_VISTA) + TWOPARAM_ROUTINE_SETPHYSCURSORPOS, +#endif + TWOPARAM_ROUTINE_UNHOOKWINDOWSHOOK, + TWOPARAM_ROUTINE_WOWCLEANUP }; DWORD NTAPI NtUserCallHwnd( - DWORD Unknown0, - DWORD Unknown1); + HWND hWnd, + DWORD Routine); -#define HWNDLOCK_ROUTINE_ARRANGEICONICWINDOWS 0x54 -#define HWNDLOCK_ROUTINE_DRAWMENUBAR 0x55 -#define HWNDLOCK_ROUTINE_REDRAWFRAME 0x58 -#define HWNDLOCK_ROUTINE_SETFOREGROUNDWINDOW 0x5B -#define HWNDLOCK_ROUTINE_UPDATEWINDOW 0x5E BOOL NTAPI NtUserCallHwndLock( HWND hWnd, DWORD Routine); -#define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A -#define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B HWND NTAPI NtUserCallHwndOpt( @@ -512,16 +681,16 @@ NtUserCallHwndOpt( DWORD NTAPI NtUserCallHwndParam( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2); + HWND hWnd, + DWORD Param, + DWORD Routine); DWORD NTAPI NtUserCallHwndParamLock( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2); + HWND hWnd, + DWORD Param, + DWORD Routine); BOOL NTAPI @@ -537,82 +706,17 @@ NtUserCallNextHookEx( WPARAM wParam, LPARAM lParam); -#define NOPARAM_ROUTINE_CREATEMENU 0x0 -#define NOPARAM_ROUTINE_CREATEMENUPOPUP 0x1 -//#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x2 -#define NOPARAM_ROUTINE_MSQCLEARWAKEMASK 0x3 -//#define ONEPARAM_ROUTINE_ALLOWFOREGNDACTIVATION 0x04 -#define NOPARAM_ROUTINE_DESTROY_CARET 0x5 -#define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0x1b -#define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0x1c - -#define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 /* Private ROS */ -#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005 -#define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006 -#define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007 DWORD NTAPI NtUserCallNoParam( DWORD Routine); -#define ONEPARAM_ROUTINE_WINDOWFROMDC 0x1f -#define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x25 -#define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x26 -#define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x28 -#define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x29 -#define ONEPARAM_ROUTINE_REALIZEPALETTE 0x35 -#define ONEPARAM_ROUTINE_RELEASEDC 0x39 -#define ONEPARAM_ROUTINE_SETCARETBLINKTIME 0x3b -#define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x3e -#define ONEPARAM_ROUTINE_SHOWCURSOR 0x40 -#define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON 0x42 -#define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0x47 - -#define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 /* Private ROS */ -#define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002 -#define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007 -#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008 -#define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c -#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d -#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e -#define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010 -#define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 -#define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027 -#define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031 DWORD NTAPI NtUserCallOneParam( DWORD Param, DWORD Routine); -#define TWOPARAM_ROUTINE_ENABLEWINDOW 0x60 -#define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x62 -#define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x63 - -#define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 /* Private ROS */ -#define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 -#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050 -#define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051 -#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052 - #define MSQ_STATE_CAPTURE 0x1 - #define MSQ_STATE_ACTIVE 0x2 - #define MSQ_STATE_FOCUS 0x3 - #define MSQ_STATE_MENUOWNER 0x4 - #define MSQ_STATE_MOVESIZE 0x5 - #define MSQ_STATE_CARET 0x6 -#define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 -#define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060 -#define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061 -#define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062 -#define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0xfffd0063 -#define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0xfffd0064 -#define TWOPARAM_ROUTINE_GETSYSCOLORS 0xfffd0065 -#define TWOPARAM_ROUTINE_SETSYSCOLORS 0xfffd0066 // use NtUserSetSysColors -#define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000 -#define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001 -#define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002 -#define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003 -#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004 DWORD NTAPI NtUserCallTwoParam( @@ -638,19 +742,20 @@ NtUserChangeDisplaySettings( DWORD STDCALL NtUserCheckImeHotKey( - DWORD dwUnknown1, - DWORD dwUnknown2); + DWORD dwUnknown1, + DWORD dwUnknown2); HWND NTAPI -NtUserChildWindowFromPointEx(HWND Parent, - LONG x, - LONG y, - UINT Flags); +NtUserChildWindowFromPointEx( + HWND Parent, + LONG x, + LONG y, + UINT Flags); BOOL NTAPI NtUserClipCursor( - RECT *lpRect); + RECT *lpRect); BOOL NTAPI @@ -669,9 +774,9 @@ NtUserCloseWindowStation( DWORD NTAPI NtUserConsoleControl( - DWORD dwUnknown1, - DWORD dwUnknown2, - DWORD dwUnknown3); + DWORD dwUnknown1, + DWORD dwUnknown2, + DWORD dwUnknown3); DWORD NTAPI @@ -2367,9 +2472,55 @@ typedef struct tagKMDDELPARAM /* NtUserBad -* ReactOS-specific NtUser calls and their related structures, both which shouldn't exist. + * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist. */ +#define NOPARAM_ROUTINE_REGISTER_PRIMITIVE 0xffff0001 +#define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005 +#define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006 +#define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007 +#define ONEPARAM_ROUTINE_GETMENU 0xfffe0001 // usermode +#define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0xfffe0002 +#define ONEPARAM_ROUTINE_GETCARETINFO 0xfffe0007 +#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0xfffe0008 +#define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0xfffe000c +#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0xfffe000d +#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0xfffe000e +#define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0xfffe0010 +#define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0xfffe0025 // CREATE_EMPTY_CURSOR_OBJECT ? +#define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0xfffe0027 +#define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0xfffe0031 +#define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0xfffe0047 // use HWND_ROUTINE_GETWNDCONTEXTHLPID +#define ONEPARAM_ROUTINE_GETCURSORPOSITION 0xfffe0048 // use ONEPARAM_ or TWOPARAM routine ? + +#define TWOPARAM_ROUTINE_ENABLEWINDOW 0x60 +#define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x62 +#define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x63 +#define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 // user mode +#define TWOPARAM_ROUTINE_GETWINDOWRGN 0xfffd0049 // user mode +#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0xfffd0050 +#define TWOPARAM_ROUTINE_SETMENUITEMRECT 0xfffd0051 +#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0xfffd0052 + #define MSQ_STATE_CAPTURE 0x1 + #define MSQ_STATE_ACTIVE 0x2 + #define MSQ_STATE_FOCUS 0x3 + #define MSQ_STATE_MENUOWNER 0x4 + #define MSQ_STATE_MOVESIZE 0x5 + #define MSQ_STATE_CARET 0x6 +#define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0xfffd0058 // use HWNDPARAM_ROUTINE_SETWNDCONTEXTHLPID +#define TWOPARAM_ROUTINE_SETCARETPOS 0xfffd0060 +#define TWOPARAM_ROUTINE_GETWINDOWINFO 0xfffd0061 +#define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0xfffd0062 +#define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0xfffd0063 +#define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0xfffd0064 +#define TWOPARAM_ROUTINE_GETSYSCOLORS 0xfffd0065 +#define TWOPARAM_ROUTINE_SETSYSCOLORS 0xfffd0066 // use NtUserSetSysColors +#define TWOPARAM_ROUTINE_ROS_SHOWWINDOW 0x1000 +#define TWOPARAM_ROUTINE_ROS_ISACTIVEICON 0x1001 +#define TWOPARAM_ROUTINE_ROS_NCDESTROY 0x1002 +#define TWOPARAM_ROUTINE_ROS_REGSYSCLASSES 0x1003 +#define TWOPARAM_ROUTINE_ROS_UPDATEUISTATE 0x1004 + DWORD NTAPI NtUserBuildMenuItemList( diff --git a/reactos/subsystems/win32/win32k/ntuser/ntstubs.c b/reactos/subsystems/win32/win32k/ntuser/ntstubs.c index a8c37d40ee4..cccb914c54c 100644 --- a/reactos/subsystems/win32/win32k/ntuser/ntstubs.c +++ b/reactos/subsystems/win32/win32k/ntuser/ntstubs.c @@ -65,54 +65,6 @@ NtUserBuildHimcList( return 0; } -DWORD -STDCALL -NtUserCallHwnd( - DWORD Unknown0, - DWORD Unknown1) -{ - switch (Unknown0) - { - case HWND_ROUTINE_REGISTERSHELLHOOKWINDOW: - if (IntIsWindow((HWND) Unknown1)) - return IntRegisterShellHookWindow((HWND) Unknown1); - return FALSE; - break; - case HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW: - if (IntIsWindow((HWND) Unknown1)) - return IntDeRegisterShellHookWindow((HWND) Unknown1); - return FALSE; - } - UNIMPLEMENTED - - return 0; -} - -DWORD -STDCALL -NtUserCallHwndParam( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2) -{ - UNIMPLEMENTED - - return 0; -} - -DWORD -STDCALL -NtUserCallHwndParamLock( - DWORD Unknown0, - DWORD Unknown1, - DWORD Unknown2) -{ - UNIMPLEMENTED - - return 0; -} - - DWORD STDCALL NtUserConvertMemHandle( diff --git a/reactos/subsystems/win32/win32k/ntuser/simplecall.c b/reactos/subsystems/win32/win32k/ntuser/simplecall.c index f182bed9579..383a50871ba 100644 --- a/reactos/subsystems/win32/win32k/ntuser/simplecall.c +++ b/reactos/subsystems/win32/win32k/ntuser/simplecall.c @@ -823,21 +823,68 @@ CLEANUP: HWND STDCALL NtUserCallHwndOpt( - HWND Param, + HWND hWnd, DWORD Routine) { switch (Routine) { case HWNDOPT_ROUTINE_SETPROGMANWINDOW: - GetW32ThreadInfo()->Desktop->hProgmanWindow = Param; + GetW32ThreadInfo()->Desktop->hProgmanWindow = hWnd; break; case HWNDOPT_ROUTINE_SETTASKMANWINDOW: - GetW32ThreadInfo()->Desktop->hTaskManWindow = Param; + GetW32ThreadInfo()->Desktop->hTaskManWindow = hWnd; break; } - return Param; + return hWnd; +} + +DWORD +STDCALL +NtUserCallHwnd( + HWND hWnd, + DWORD Routine) +{ + switch (Routine) + { + case HWND_ROUTINE_REGISTERSHELLHOOKWINDOW: + if (IntIsWindow(hWnd)) + return IntRegisterShellHookWindow(hWnd); + return FALSE; + break; + case HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW: + if (IntIsWindow(hWnd)) + return IntDeRegisterShellHookWindow(hWnd); + return FALSE; + } + UNIMPLEMENTED; + + return 0; +} + +DWORD +STDCALL +NtUserCallHwndParam( + HWND hWnd, + DWORD Param, + DWORD Routine) +{ + UNIMPLEMENTED; + + return 0; +} + +DWORD +STDCALL +NtUserCallHwndParamLock( + HWND hWnd, + DWORD Param, + DWORD Routine) +{ + UNIMPLEMENTED; + + return 0; } /* EOF */