Don't allow setting menu for child windows in IntSetMenu.

svn path=/trunk/; revision=16735
This commit is contained in:
Filip Navara 2005-07-26 10:35:13 +00:00
parent c5646382a5
commit ead342935a

View file

@ -499,13 +499,19 @@ IntSetMenu(
{ {
PMENU_OBJECT OldMenuObject, NewMenuObject = NULL; PMENU_OBJECT OldMenuObject, NewMenuObject = NULL;
if ((WindowObject->Style & (WS_CHILD | WS_POPUP)) == WS_CHILD)
{
SetLastWin32Error(ERROR_INVALID_WINDOW_HANDLE);
return FALSE;
}
*Changed = (WindowObject->IDMenu != (UINT) Menu); *Changed = (WindowObject->IDMenu != (UINT) Menu);
if (! *Changed) if (! *Changed)
{ {
return TRUE; return TRUE;
} }
if (0 != WindowObject->IDMenu) if (WindowObject->IDMenu)
{ {
OldMenuObject = IntGetMenuObject((HMENU) WindowObject->IDMenu); OldMenuObject = IntGetMenuObject((HMENU) WindowObject->IDMenu);
ASSERT(NULL == OldMenuObject || OldMenuObject->MenuInfo.Wnd == WindowObject->Self); ASSERT(NULL == OldMenuObject || OldMenuObject->MenuInfo.Wnd == WindowObject->Self);