implemented AnyPopup()

svn path=/trunk/; revision=9270
This commit is contained in:
Thomas Bluemel 2004-05-01 18:06:59 +00:00
parent 86805ab86a
commit 1c49860e46
7 changed files with 60 additions and 21 deletions

View file

@ -156,11 +156,12 @@ NtUserCallNextHookEx(
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(

View file

@ -30,6 +30,8 @@ VOID CreateFrameBrushes(VOID);
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)

View file

@ -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
@ -18,17 +18,6 @@
typedef PVOID LPIMEPROW, LPIMEPROA;
#endif
/*
* @unimplemented
*/
BOOL
STDCALL
AnyPopup(VOID)
{
UNIMPLEMENTED;
return FALSE;
}
/*
* @unimplemented
*/

View file

@ -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 @@ ScrollWindowEx(HWND hWnd, int dx, int dy, CONST RECT *prcScroll,
prcUpdate, flags);
}
/*
* @implemented
*/
BOOL
STDCALL
AnyPopup(VOID)
{
return NtUserAnyPopup();
}
/* EOF */

View file

@ -210,6 +210,9 @@ IntGetWindowInfo(PWINDOW_OBJECT WindowObject, PWINDOWINFO pwi);
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);

View file

@ -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
@ -133,6 +133,10 @@ NtUserCallNoParam(DWORD Routine)
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);

View file

@ -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 @@ IntUnlinkWindow(PWINDOW_OBJECT Wnd)
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 *****************************************************************/
/*