7 modified files
reactos/include/win32k
diff -u -r1.131 -r1.132
--- ntuser.h 1 May 2004 16:43:14 -0000 1.131
+++ ntuser.h 1 May 2004 18:06:59 -0000 1.132
@@ -156,11 +156,12 @@
WPARAM wParam,
LPARAM lParam);
-#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_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
DWORD
STDCALL
NtUserCallNoParam(
reactos/lib/user32/include
diff -u -r1.24 -r1.25
--- user32.h 1 May 2004 16:43:14 -0000 1.24
+++ user32.h 1 May 2004 18:06:59 -0000 1.25
@@ -30,6 +30,8 @@
VOID DeleteFrameBrushes(VOID);
void DrawCaret(HWND hWnd, PTHRDCARETINFO CaretInfo);
+#define NtUserAnyPopup() \
+ (BOOL)NtUserCallNoParam(NOPARAM_ROUTINE_ANYPOPUP)
#define NtUserValidateRgn(hWnd, hRgn) \
(BOOL)NtUserCallTwoParam((DWORD)hWnd, (DWORD)hRgn, TWOPARAM_ROUTINE_VALIDATERGN)
reactos/lib/user32/misc
diff -u -r1.60 -r1.61
--- stubs.c 1 May 2004 16:43:14 -0000 1.60
+++ stubs.c 1 May 2004 18:06:59 -0000 1.61
@@ -1,4 +1,4 @@
-/* $Id: stubs.c,v 1.60 2004/05/01 16:43:14 weiden Exp $
+/* $Id: stubs.c,v 1.61 2004/05/01 18:06:59 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@@ -23,17 +23,6 @@
*/
BOOL
STDCALL
-AnyPopup(VOID)
-{
- UNIMPLEMENTED;
- return FALSE;
-}
-
-/*
- * @unimplemented
- */
-BOOL
-STDCALL
AttachThreadInput(
DWORD idAttach,
DWORD idAttachTo,
reactos/lib/user32/windows
diff -u -r1.113 -r1.114
--- window.c 29 Apr 2004 21:13:16 -0000 1.113
+++ window.c 1 May 2004 18:06:59 -0000 1.114
@@ -1,4 +1,4 @@
-/* $Id: window.c,v 1.113 2004/04/29 21:13:16 gvg Exp $
+/* $Id: window.c,v 1.114 2004/05/01 18:06:59 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS user32.dll
@@ -1645,5 +1645,15 @@
prcUpdate, flags);
}
+/*
+ * @implemented
+ */
+BOOL
+STDCALL
+AnyPopup(VOID)
+{
+ return NtUserAnyPopup();
+}
+
/* EOF */
reactos/subsys/win32k/include
diff -u -r1.55 -r1.56
--- window.h 17 Apr 2004 11:00:14 -0000 1.55
+++ window.h 1 May 2004 18:06:59 -0000 1.56
@@ -210,6 +210,9 @@
VOID FASTCALL
IntGetWindowBorderMeasures(PWINDOW_OBJECT WindowObject, INT *cx, INT *cy);
+BOOL FASTCALL
+IntAnyPopup(VOID);
+
DWORD IntRemoveWndProcHandle(WNDPROC Handle);
DWORD IntRemoveProcessWndProcHandles(HANDLE ProcessID);
DWORD IntAddWndProcHandle(WNDPROC WindowProc, BOOL IsUnicode);
reactos/subsys/win32k/ntuser
diff -u -r1.67 -r1.68
--- misc.c 1 May 2004 16:43:15 -0000 1.67
+++ misc.c 1 May 2004 18:06:59 -0000 1.68
@@ -1,4 +1,4 @@
-/* $Id: misc.c,v 1.67 2004/05/01 16:43:15 weiden Exp $
+/* $Id: misc.c,v 1.68 2004/05/01 18:06:59 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -132,7 +132,11 @@
case NOPARAM_ROUTINE_GETMESSAGEEXTRAINFO:
Result = (DWORD)MsqGetMessageExtraInfo();
break;
-
+
+ case NOPARAM_ROUTINE_ANYPOPUP:
+ Result = (DWORD)IntAnyPopup();
+ break;
+
default:
DPRINT1("Calling invalid routine number 0x%x in NtUserCallNoParam\n");
SetLastWin32Error(ERROR_INVALID_PARAMETER);
reactos/subsys/win32k/ntuser
diff -u -r1.221 -r1.222
--- window.c 29 Apr 2004 21:17:36 -0000 1.221
+++ window.c 1 May 2004 18:06:59 -0000 1.222
@@ -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.221 2004/04/29 21:17:36 gvg Exp $
+/* $Id: window.c,v 1.222 2004/05/01 18:06:59 weiden Exp $
*
* COPYRIGHT: See COPYING in the top level directory
* PROJECT: ReactOS kernel
@@ -1070,6 +1070,36 @@
IntUnLockRelatives(Wnd);
}
+BOOL FASTCALL
+IntAnyPopup(VOID)
+{
+ PWINDOW_OBJECT Window, Child;
+
+ if(!(Window = IntGetWindowObject(IntGetDesktopWindow())))
+ {
+ SetLastWin32Error(ERROR_INVALID_WINDOW_HANDLE);
+ return FALSE;
+ }
+
+ IntLockRelatives(Window);
+ for(Child = Window->FirstChild; Child; Child = Child->NextSibling)
+ {
+ if(Child->Owner && Child->Style & WS_VISIBLE)
+ {
+ /*
+ * The desktop has a popup window if one of them has
+ * an owner window and is visible
+ */
+ IntUnLockRelatives(Window);
+ IntReleaseWindowObject(Window);
+ return TRUE;
+ }
+ }
+ IntUnLockRelatives(Window);
+ IntReleaseWindowObject(Window);
+ return FALSE;
+}
+
/* FUNCTIONS *****************************************************************/
/*
CVSspam 0.2.8