Skip to content
Snippets Groups Projects
Commit 2d6eabac authored by Huw D. M. Davies's avatar Huw D. M. Davies Committed by Alexandre Julliard
Browse files

Set the correct value for the cch element of MENUITEMINFO in

GetMenuItemInfo.
parent 70e16ad0
No related branches found
No related tags found
No related merge requests found
......@@ -4293,34 +4293,40 @@ static BOOL GetMenuItemInfo_common ( HMENU hmenu, UINT item, BOOL bypos,
if (lpmii->fMask & MIIM_TYPE) {
lpmii->fType = menu->fType;
switch (MENU_ITEM_TYPE(menu->fType)) {
case MF_STRING:
if (menu->text && lpmii->dwTypeData && lpmii->cch) {
if (unicode) {
lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text, lpmii->cch);
lpmii->cch = lstrlenW((LPWSTR)menu->text);
} else {
lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
lpmii->cch = lstrlenA(menu->text);
}
}
break;
case MF_OWNERDRAW:
case MF_BITMAP:
lpmii->dwTypeData = menu->text;
/* fall through */
default:
lpmii->cch = 0;
case MF_STRING:
if (menu->text) {
int len = lstrlenA(menu->text);
if(lpmii->dwTypeData && lpmii->cch) {
if (unicode)
lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text,
lpmii->cch);
else
lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
/* if we've copied a substring we return its length */
if(lpmii->cch <= len)
lpmii->cch--;
} else /* return length of string */
lpmii->cch = len;
}
break;
case MF_OWNERDRAW:
case MF_BITMAP:
lpmii->dwTypeData = menu->text;
/* fall through */
default:
lpmii->cch = 0;
}
}
if (lpmii->fMask & MIIM_STRING) {
if (unicode) {
lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text, lpmii->cch);
lpmii->cch = lstrlenW((LPWSTR)menu->text);
} else {
lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
lpmii->cch = lstrlenA(menu->text);
if(lpmii->dwTypeData && lpmii->cch) {
if (unicode)
lstrcpynAtoW((LPWSTR) lpmii->dwTypeData, menu->text,
lpmii->cch);
else
lstrcpynA(lpmii->dwTypeData, menu->text, lpmii->cch);
}
lpmii->cch = lstrlenA(menu->text);
}
if (lpmii->fMask & MIIM_FTYPE)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment