Fail SetMenuItemInfo if both MFT_BITMAP and MFT_SEPARATOR are

specified (an api violation).
This commit is contained in:
Mike Hearn 2003-01-15 00:51:38 +00:00 committed by Alexandre Julliard
parent 8780853ab7
commit ac8e75284a

View file

@ -4275,14 +4275,19 @@ BOOL WINAPI SetMenuItemInfoA(HMENU hmenu, UINT item, BOOL bypos,
const MENUITEMINFOA *lpmii)
{
if ((lpmii->fType & (MF_HILITE|MF_POPUP)) || (lpmii->fState)) {
/* QuickTime does pass invalid data into SetMenuItemInfo.
* do some of the checks Windows does.
*/
WARN("Bad masks for type (0x%08x) or state (0x%08x)\n",
lpmii->fType,lpmii->fState );
return FALSE;
/* QuickTime does pass invalid data into SetMenuItemInfo.
* do some of the checks Windows does.
*/
WARN("Bad masks (0x%08x) for type (0x%08x) or state (0x%08x)\n",
lpmii->fMask, lpmii->fType,lpmii->fState );
}
/* is the app setting both MFT_BITMAP and MFT_SEPARATOR (which is wrong)? */
if (lpmii->fType & (MFT_BITMAP | MFT_SEPARATOR)) {
WARN("fType contains MFT_BITMAP and MFT_SEPARATOR, API violation\n");
return FALSE;
}
return SetMenuItemInfo_common(MENU_FindItem(&hmenu, &item, bypos? MF_BYPOSITION : 0),
(const MENUITEMINFOW *)lpmii, FALSE);
}