4 modified files
reactos/subsys/win32k/include
diff -u -r1.1.4.11 -r1.1.4.12
--- internal.h 14 Sep 2004 01:00:43 -0000 1.1.4.11
+++ internal.h 24 Sep 2004 18:35:40 -0000 1.1.4.12
@@ -389,6 +389,8 @@
typedef struct _MENU_OBJECT
{
+ HANDLE Handle;
+
PW32PROCESS W32Process;
LIST_ENTRY ListEntry;
FAST_MUTEX MenuItemsLock;
@@ -807,6 +809,9 @@
#define IntGetParentObject(WndObj) \
((WndObj)->Parent)
+#define IntIsWindowUnicode(WndObj) \
+ ((WndObj)->Unicode)
+
#define IntIsWindow(WndObj) \
((WndObj) != NULL && ObmObjectDeleted(WndObj) == FALSE)
@@ -893,6 +898,7 @@
ULONG PropListItems;
/* Scrollbar info */
PWINDOW_SCROLLINFO Scroll;
+ PMENU_OBJECT Menu;
LONG UserData;
BOOL Unicode;
WNDPROC WndProcA;
@@ -934,6 +940,7 @@
PWINDOW_OBJECT INTERNAL_CALL IntGetWindow(PWINDOW_OBJECT Window, UINT uCmd);
BOOL INTERNAL_CALL IntDefSetText(PWINDOW_OBJECT WindowObject, PUNICODE_STRING WindowText);
INT INTERNAL_CALL IntInternalGetWindowText(PWINDOW_OBJECT WindowObject, LPWSTR lpString, INT nMaxCount);
+PMENU_OBJECT INTERNAL_CALL IntGetWindowMenu(PWINDOW_OBJECT WindowObject);
BOOL INTERNAL_CALL IntDereferenceWndProcHandle(WNDPROC wpHandle, WndProcHandle *Data);
DWORD INTERNAL_CALL IntRemoveWndProcHandle(WNDPROC Handle);
DWORD INTERNAL_CALL IntRemoveProcessWndProcHandles(HANDLE ProcessID);
reactos/subsys/win32k/ntuser
diff -u -r1.1.4.10 -r1.1.4.11
--- ntuser.c 13 Sep 2004 21:28:17 -0000 1.1.4.10
+++ ntuser.c 24 Sep 2004 18:35:40 -0000 1.1.4.11
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: ntuser.c,v 1.1.4.10 2004/09/13 21:28:17 weiden Exp $
+/* $Id: ntuser.c,v 1.1.4.11 2004/09/24 18:35:40 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -257,6 +257,74 @@
}
DWORD STDCALL
+NtUserCallOneParam(DWORD Param,
+ DWORD Routine)
+{
+ NTUSER_USER_OBJECT(WINDOW, Window);
+ NTUSER_USER_OBJECT(MENU, Menu);
+ BEGIN_NTUSER(DWORD, 0);
+
+ switch(Routine)
+ {
+ case ONEPARAM_ROUTINE_GETMENU:
+ ENTER_CRITICAL_SHARED();
+ VALIDATE_USER_OBJECT(WINDOW, (HWND)Param, Window);
+ Menu = IntGetWindowMenu(Window);
+ Result = (DWORD)(Menu ? Menu->Handle : NULL);
+ LEAVE_CRITICAL();
+ break;
+
+ case ONEPARAM_ROUTINE_ISWINDOWUNICODE:
+ ENTER_CRITICAL_SHARED();
+ VALIDATE_USER_OBJECT(WINDOW, (HWND)Param, Window);
+ Result = (DWORD)IntIsWindowUnicode(Window);
+ LEAVE_CRITICAL();
+ break;
+
+ case ONEPARAM_ROUTINE_WINDOWFROMDC:
+ ENTER_CRITICAL_SHARED();
+ Window = IntWindowFromDC((HDC)Param);
+ Result = (DWORD)(Window ? Window->Handle : NULL);
+ LEAVE_CRITICAL();
+ break;
+
+ case ONEPARAM_ROUTINE_GETWNDCONTEXTHLPID:
+ ENTER_CRITICAL_SHARED();
+ VALIDATE_USER_OBJECT(WINDOW, (HWND)Param, Window);
+ Result = Window->ContextHelpId;
+ LEAVE_CRITICAL();
+ break;
+
+ case ONEPARAM_ROUTINE_GETWINDOWINSTANCE:
+ ENTER_CRITICAL_SHARED();
+ VALIDATE_USER_OBJECT(WINDOW, (HWND)Param, Window);
+ Result = (DWORD)Window->Instance;
+ LEAVE_CRITICAL();
+ break;
+
+ case ONEPARAM_ROUTINE_ISWINDOWINDESTROY:
+ ENTER_CRITICAL_SHARED();
+ VALIDATE_USER_OBJECT(WINDOW, (HWND)Param, Window);
+ /* FIXME */
+ LEAVE_CRITICAL();
+ break;
+
+ case ONEPARAM_ROUTINE_SWAPMOUSEBUTTON:
+ case ONEPARAM_ROUTINE_SWITCHCARETSHOWING:
+ case ONEPARAM_ROUTINE_SETCARETBLINKTIME:
+ case ONEPARAM_ROUTINE_ENUMCLIPBOARDFORMATS:
+ case ONEPARAM_ROUTINE_SETMESSAGEEXTRAINFO:
+ case ONEPARAM_ROUTINE_GETCURSORPOSITION:
+ case ONEPARAM_ROUTINE_ENABLEPROCWNDGHSTING:
+ default:
+ DPRINT1("Calling invalid routine number 0x%x in NtUserCallOneParam\n", Routine);
+ NTUSER_FAIL_ERROR(ERROR_INVALID_PARAMETER);
+ }
+
+ END_NTUSER();
+}
+
+DWORD STDCALL
NtUserCallTwoParam(DWORD Param1,
DWORD Param2,
DWORD Routine)
reactos/subsys/win32k/ntuser
diff -u -r1.45.12.6 -r1.45.12.7
--- stubs.c 12 Sep 2004 19:21:07 -0000 1.45.12.6
+++ stubs.c 24 Sep 2004 18:35:40 -0000 1.45.12.7
@@ -1,4 +1,4 @@
-/* $Id: stubs.c,v 1.45.12.6 2004/09/12 19:21:07 weiden Exp $
+/* $Id: stubs.c,v 1.45.12.7 2004/09/24 18:35:40 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -1242,17 +1242,6 @@
*/
-DWORD
-STDCALL
-NtUserCallOneParam(
- DWORD Param,
- DWORD Routine)
-{
- UNIMPLEMENTED;
- return 0;
-}
-
-
BOOL
STDCALL
NtUserCallHwndLock(
reactos/subsys/win32k/ntuser
diff -u -r1.244.2.8 -r1.244.2.9
--- window.c 14 Sep 2004 01:00:44 -0000 1.244.2.8
+++ window.c 24 Sep 2004 18:35:40 -0000 1.244.2.9
@@ -16,7 +16,7 @@
* along with this program; if not, write to the Free Software
* Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
-/* $Id: window.c,v 1.244.2.8 2004/09/14 01:00:44 weiden Exp $
+/* $Id: window.c,v 1.244.2.9 2004/09/24 18:35:40 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -2035,6 +2035,14 @@
return Result;
}
+PMENU_OBJECT INTERNAL_CALL
+IntGetWindowMenu(PWINDOW_OBJECT WindowObject)
+{
+ ASSERT(WindowObject);
+
+ return WindowObject->Menu;
+}
+
/* WINPROC ********************************************************************/
BOOL INTERNAL_CALL
CVSspam 0.2.8