- 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
This commit is contained in:
Timo Kreuzer 2008-03-22 02:53:56 +00:00
parent b690ccfd98
commit 19761f316e
4 changed files with 297 additions and 147 deletions

View file

@ -197,7 +197,7 @@ BOOL
STDCALL STDCALL
DeregisterShellHookWindow(HWND hWnd) DeregisterShellHookWindow(HWND hWnd)
{ {
return NtUserCallHwnd(HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW, (DWORD)hWnd); return NtUserCallHwnd(hWnd, HWND_ROUTINE_DEREGISTERSHELLHOOKWINDOW);
} }
/* /*
@ -207,7 +207,7 @@ BOOL
STDCALL STDCALL
RegisterShellHookWindow(HWND hWnd) RegisterShellHookWindow(HWND hWnd)
{ {
return NtUserCallHwnd(HWND_ROUTINE_REGISTERSHELLHOOKWINDOW, (DWORD)hWnd); return NtUserCallHwnd(hWnd, HWND_ROUTINE_REGISTERSHELLHOOKWINDOW);
} }
/* /*

View file

@ -479,30 +479,199 @@ NtUserBuildPropList(
DWORD BufferSize, DWORD BufferSize,
DWORD *Count); 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_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 DWORD
NTAPI NTAPI
NtUserCallHwnd( NtUserCallHwnd(
DWORD Unknown0, HWND hWnd,
DWORD Unknown1); 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 BOOL
NTAPI NTAPI
NtUserCallHwndLock( NtUserCallHwndLock(
HWND hWnd, HWND hWnd,
DWORD Routine); DWORD Routine);
#define HWNDOPT_ROUTINE_SETPROGMANWINDOW 0x4A
#define HWNDOPT_ROUTINE_SETTASKMANWINDOW 0x4B
HWND HWND
NTAPI NTAPI
NtUserCallHwndOpt( NtUserCallHwndOpt(
@ -512,16 +681,16 @@ NtUserCallHwndOpt(
DWORD DWORD
NTAPI NTAPI
NtUserCallHwndParam( NtUserCallHwndParam(
DWORD Unknown0, HWND hWnd,
DWORD Unknown1, DWORD Param,
DWORD Unknown2); DWORD Routine);
DWORD DWORD
NTAPI NTAPI
NtUserCallHwndParamLock( NtUserCallHwndParamLock(
DWORD Unknown0, HWND hWnd,
DWORD Unknown1, DWORD Param,
DWORD Unknown2); DWORD Routine);
BOOL BOOL
NTAPI NTAPI
@ -537,82 +706,17 @@ NtUserCallNextHookEx(
WPARAM wParam, WPARAM wParam,
LPARAM lParam); 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 DWORD
NTAPI NTAPI
NtUserCallNoParam( NtUserCallNoParam(
DWORD Routine); 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 DWORD
NTAPI NTAPI
NtUserCallOneParam( NtUserCallOneParam(
DWORD Param, DWORD Param,
DWORD Routine); 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 DWORD
NTAPI NTAPI
NtUserCallTwoParam( NtUserCallTwoParam(
@ -642,7 +746,8 @@ NtUserCheckImeHotKey(
DWORD dwUnknown2); DWORD dwUnknown2);
HWND NTAPI HWND NTAPI
NtUserChildWindowFromPointEx(HWND Parent, NtUserChildWindowFromPointEx(
HWND Parent,
LONG x, LONG x,
LONG y, LONG y,
UINT Flags); UINT Flags);
@ -2370,6 +2475,52 @@ typedef struct tagKMDDELPARAM
* 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 DWORD
NTAPI NTAPI
NtUserBuildMenuItemList( NtUserBuildMenuItemList(

View file

@ -65,54 +65,6 @@ NtUserBuildHimcList(
return 0; 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 DWORD
STDCALL STDCALL
NtUserConvertMemHandle( NtUserConvertMemHandle(

View file

@ -823,21 +823,68 @@ CLEANUP:
HWND HWND
STDCALL STDCALL
NtUserCallHwndOpt( NtUserCallHwndOpt(
HWND Param, HWND hWnd,
DWORD Routine) DWORD Routine)
{ {
switch (Routine) switch (Routine)
{ {
case HWNDOPT_ROUTINE_SETPROGMANWINDOW: case HWNDOPT_ROUTINE_SETPROGMANWINDOW:
GetW32ThreadInfo()->Desktop->hProgmanWindow = Param; GetW32ThreadInfo()->Desktop->hProgmanWindow = hWnd;
break; break;
case HWNDOPT_ROUTINE_SETTASKMANWINDOW: case HWNDOPT_ROUTINE_SETTASKMANWINDOW:
GetW32ThreadInfo()->Desktop->hTaskManWindow = Param; GetW32ThreadInfo()->Desktop->hTaskManWindow = hWnd;
break; 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 */ /* EOF */