int FASTCALL
-IntGetMenuItemByFlag(PMENU_OBJECT Menu, UINT uSearchBy, UINT fFlag,
- PMENU_OBJECT *SubMenu, PMENU_ITEM *MenuItem,
+IntGetMenuItemByFlag(PMENU_OBJECT Menu,
+ UINT uSearchBy,
+ UINT fFlag,
+ PMENU_OBJECT *SubMenu,
+ PMENU_ITEM *MenuItem,
PMENU_ITEM *PrevMenuItem)
{
PMENU_ITEM PrevItem = NULL;
}
BOOL FASTCALL
-IntHiliteMenuItem(PWND WindowObject, PMENU_OBJECT MenuObject,
- UINT uItemHilite, UINT uHilite)
+IntHiliteMenuItem(PWND WindowObject,
+ PMENU_OBJECT MenuObject,
+ UINT uItemHilite,
+ UINT uHilite)
{
PMENU_ITEM MenuItem;
- BOOL res = IntGetMenuItemByFlag(MenuObject, uItemHilite, uHilite, NULL, &MenuItem, NULL);
- if(!MenuItem || !res)
+ int Pos;
+
+ Pos = IntGetMenuItemByFlag(MenuObject, uItemHilite, uHilite, NULL, &MenuItem, NULL);
+
+ if (!MenuItem || (uHilite & MF_BYPOSITION && Pos == -1))
{
return FALSE;
}
- if(uHilite & MF_HILITE)
+ if (uHilite & MF_HILITE)
{
MenuItem->fState |= MF_HILITE;
}
RETURN(FALSE);
}
- if(Window->IDMenu == (UINT)(UINT_PTR)hMenu)
- {
- RETURN( IntHiliteMenuItem(Window, Menu, uItemHilite, uHilite));
- }
-
- RETURN(FALSE);
+ RETURN( IntHiliteMenuItem(Window, Menu, uItemHilite, uHilite));
CLEANUP:
TRACE("Leave NtUserHiliteMenuItem, ret=%u\n",_ret_);
EngSetLastError(ERROR_INVALID_PARAMETER);
// This will crash menu (line 80) correct_behavior test!
// "NT4 and below can't handle a bigger MENUITEMINFO struct"
- //EngSetLastError(ERROR_MENU_ITEM_NOT_FOUND);
+// EngSetLastError(ERROR_MENU_ITEM_NOT_FOUND);
return( FALSE);
}