From 51792c41f0c8aabbcaaadbaa6119a3055ebcfb3f Mon Sep 17 00:00:00 2001 From: Timo Kreuzer Date: Fri, 21 Mar 2008 00:01:33 +0000 Subject: [PATCH] - started fixing NtUserCallXxx defines - moved bad NtUserXxx macros to bottom - added some comments to ntuser bad stuff svn path=/trunk/; revision=32729 --- reactos/include/reactos/win32k/ntuser.h | 144 ++++++++++++++---------- 1 file changed, 82 insertions(+), 62 deletions(-) diff --git a/reactos/include/reactos/win32k/ntuser.h b/reactos/include/reactos/win32k/ntuser.h index 6fd749acfb1..297ce697935 100644 --- a/reactos/include/reactos/win32k/ntuser.h +++ b/reactos/include/reactos/win32k/ntuser.h @@ -506,7 +506,7 @@ NtUserCallHwndLock( HWND NTAPI NtUserCallHwndOpt( - HWND Param, + HWND hWnd, DWORD Routine); DWORD @@ -539,11 +539,14 @@ NtUserCallNextHookEx( #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_DESTROY_CARET 0xffff0002 -#define NOPARAM_ROUTINE_UNINIT_MESSAGE_PUMP 0xffff0003 -#define NOPARAM_ROUTINE_INIT_MESSAGE_PUMP 0xffff0004 #define NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO 0xffff0005 #define NOPARAM_ROUTINE_ANYPOPUP 0xffff0006 #define NOPARAM_ROUTINE_CSRSS_INITIALIZED 0xffff0007 @@ -552,61 +555,62 @@ NTAPI NtUserCallNoParam( DWORD Routine); -#define ONEPARAM_ROUTINE_GETMENU 0x01 -#define ONEPARAM_ROUTINE_ISWINDOWUNICODE 0x02 -#define ONEPARAM_ROUTINE_WINDOWFROMDC 0x03 -#define ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID 0x04 -#define ONEPARAM_ROUTINE_SWAPMOUSEBUTTON 0x05 -#define ONEPARAM_ROUTINE_SETCARETBLINKTIME 0x06 -#define ONEPARAM_ROUTINE_GETCARETINFO 0x07 -#define ONEPARAM_ROUTINE_SWITCHCARETSHOWING 0x08 -#define ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS 0x09 -#define ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO 0x0a -#define ONEPARAM_ROUTINE_GETCURSORPOSITION 0x0b -#define ONEPARAM_ROUTINE_ISWINDOWINDESTROY 0x0c -#define ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING 0x0d -#define ONEPARAM_ROUTINE_GETDESKTOPMAPPING 0x0e -#define ONEPARAM_ROUTINE_GETWINDOWINSTANCE 0x10 -#define ONEPARAM_ROUTINE_CREATECURICONHANDLE 0x25 -#define ONEPARAM_ROUTINE_MSQSETWAKEMASK 0x27 -#define ONEPARAM_ROUTINE_GETKEYBOARDTYPE 0x28 -#define ONEPARAM_ROUTINE_GETKEYBOARDLAYOUT 0x29 -#define ONEPARAM_ROUTINE_SHOWCURSOR 0x30 -#define ONEPARAM_ROUTINE_REGISTERUSERMODULE 0x31 +#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_SETDCPENCOLOR 0x45 -#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0x46 -#define TWOPARAM_ROUTINE_GETDCCOLOR 0x47 -#define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0x48 -#define TWOPARAM_ROUTINE_GETWINDOWRGN 0x49 -#define TWOPARAM_ROUTINE_SETMENUBARHEIGHT 0x50 -#define TWOPARAM_ROUTINE_SETMENUITEMRECT 0x51 -#define TWOPARAM_ROUTINE_SETGUITHRDHANDLE 0x52 +#define TWOPARAM_ROUTINE_ENABLEWINDOW 0x60 +#define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x62 +#define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x63 + +#define TWOPARAM_ROUTINE_SETDCPENCOLOR 0xfffd0045 /* Private ROS */ +#define TWOPARAM_ROUTINE_SETDCBRUSHCOLOR 0xfffd0046 +#define TWOPARAM_ROUTINE_GETDCCOLOR 0xfffd0047 +#define TWOPARAM_ROUTINE_GETWINDOWRGNBOX 0xfffd0048 +#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_ENABLEWINDOW 0x53 -#define TWOPARAM_ROUTINE_UNKNOWN 0x54 -#define TWOPARAM_ROUTINE_SHOWOWNEDPOPUPS 0x55 -#define TWOPARAM_ROUTINE_SWITCHTOTHISWINDOW 0x56 -#define TWOPARAM_ROUTINE_SETWNDCONTEXTHLPID 0x58 -#define TWOPARAM_ROUTINE_SETCARETPOS 0x60 -#define TWOPARAM_ROUTINE_GETWINDOWINFO 0x61 -#define TWOPARAM_ROUTINE_REGISTERLOGONPROC 0x62 -#define TWOPARAM_ROUTINE_GETSYSCOLORBRUSHES 0x63 -#define TWOPARAM_ROUTINE_GETSYSCOLORPENS 0x64 -#define TWOPARAM_ROUTINE_GETSYSCOLORS 0x65 -#define TWOPARAM_ROUTINE_SETSYSCOLORS 0x66 +#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 @@ -919,7 +923,7 @@ NtUserEnumDisplayMonitors ( LPCRECT lprcClip, MONITORENUMPROC lpfnEnum, LPARAM dwData );*/ -/* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */ +/* FIXME: The call below is ros-specific and should be rewritten to use the same params as the correct call above. */ INT NTAPI NtUserEnumDisplayMonitors( @@ -2339,18 +2343,6 @@ DWORD NTAPI NtUserYieldTask(VOID); -#define NtUserGetDCBrushColor(hbr) \ - (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR) - -#define NtUserGetDCPenColor(hbr) \ - (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR) - -#define NtUserSetDCBrushColor(hbr, crColor) \ - (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR) - -#define NtUserSetDCPenColor(hbr, crColor) \ - (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR) - /* lParam of DDE messages */ typedef struct tagKMDDEEXECUTEDATA { @@ -2381,6 +2373,24 @@ typedef struct tagKMDDELPARAM * ReactOS-specific NtUser calls and their related structures, both which shouldn't exist. */ +/* The following macros don't belong to ntuser, but are part of gdi */ + +/* Should be done in usermode */ +#define NtUserGetDCBrushColor(hbr) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_BRUSH, TWOPARAM_ROUTINE_GETDCCOLOR) + +/* Should be done in usermode */ +#define NtUserGetDCPenColor(hbr) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), OBJ_PEN, TWOPARAM_ROUTINE_GETDCCOLOR) + +/* Should be done in usermode */ +#define NtUserSetDCBrushColor(hbr, crColor) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCBRUSHCOLOR) + +/* Should be done in usermode */ +#define NtUserSetDCPenColor(hbr, crColor) \ + (COLORREF)NtUserCallTwoParam((DWORD)(hbr), (DWORD)crColor, TWOPARAM_ROUTINE_SETDCPENCOLOR) + NTSTATUS NTAPI @@ -2393,13 +2403,14 @@ NtUserBuildMenuItemList( HMENU hMenu, PVOID Buffer, ULONG nBufSize, - DWORD Reserved); + DWORD Reserved); +/* Use ONEPARAM_ROUTINE_CREATEEMPTYCURSOROBJECT (0x21) ? */ HANDLE NTAPI NtUserCreateCursorIconHandle( PICONINFO IconInfo, - BOOL Indirect); + BOOL Indirect); typedef struct _WNDPROC_INFO @@ -2412,7 +2423,7 @@ BOOL NTAPI NtUserDereferenceWndProcHandle(IN HANDLE wpHandle, OUT PWNDPROC_INFO wpInfo); - +/* Use ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS */ UINT NTAPI NtUserEnumClipboardFormats( @@ -2426,14 +2437,17 @@ HWND NTAPI NtUserGetCapture(VOID); +/* Should be done in usermode */ ULONG_PTR NTAPI NtUserGetClassLong(HWND hWnd, INT Offset, BOOL Ansi); +/* Should be done in usermode */ BOOL NTAPI NtUserGetClientOrigin(HWND hWnd, LPPOINT Point); +/* Should be done in usermode */ BOOL NTAPI NtUserGetClientRect(HWND hWnd, LPRECT Rect); @@ -2467,6 +2481,7 @@ NtUserGetMonitorInfo( IN HMONITOR hMonitor, OUT LPMONITORINFO pMonitorInfo); +/* Should be done in usermode */ HANDLE NTAPI NtUserGetProp(HWND hWnd, ATOM Atom); @@ -2494,10 +2509,12 @@ HWND NTAPI NtUserGetWindow(HWND hWnd, UINT Relationship); +/* Should be done in usermode */ LONG NTAPI NtUserGetWindowLong(HWND hWnd, DWORD Index, BOOL Ansi); +/* Should be done in usermode */ BOOL NTAPI NtUserGetWindowRect(HWND hWnd, LPRECT Rect); @@ -2638,6 +2655,7 @@ typedef struct tagNTUSERSENDMESSAGEINFO WNDPROC Proc; } NTUSERSENDMESSAGEINFO, *PNTUSERSENDMESSAGEINFO; +/* use NtUserMessageCall */ LRESULT NTAPI NtUserSendMessage(HWND hWnd, UINT Msg, @@ -2645,6 +2663,7 @@ NtUserSendMessage(HWND hWnd, LPARAM lParam, PNTUSERSENDMESSAGEINFO Info); +/* use NtUserMessageCall */ BOOL NTAPI NtUserSendMessageCallback( @@ -2655,6 +2674,7 @@ NtUserSendMessageCallback( SENDASYNCPROC lpCallBack, ULONG_PTR dwData); +/* use NtUserMessageCall */ LRESULT NTAPI NtUserSendMessageTimeout(HWND hWnd, UINT Msg, @@ -2665,7 +2685,7 @@ NtUserSendMessageTimeout(HWND hWnd, ULONG_PTR *uResult, PNTUSERSENDMESSAGEINFO Info); - +/* use NtUserMessageCall */ BOOL NTAPI NtUserSendNotifyMessage(