From 8499ace1ffbd3ffc795fb52047cceae6290e78d9 Mon Sep 17 00:00:00 2001 From: Nikolay Sivov Date: Fri, 9 Jun 2017 02:36:16 +0300 Subject: [PATCH] shell32: Use IS_INTRESOURCE() to test context menu verb kind. Signed-off-by: Nikolay Sivov Signed-off-by: Alexandre Julliard --- dlls/shell32/shlmenu.c | 31 +++++++++++++++++-------------- dlls/shell32/shlview_cmenu.c | 6 +++--- 2 files changed, 20 insertions(+), 17 deletions(-) diff --git a/dlls/shell32/shlmenu.c b/dlls/shell32/shlmenu.c index 7a960ad5c87..39ab4c618cb 100644 --- a/dlls/shell32/shlmenu.c +++ b/dlls/shell32/shlmenu.c @@ -1114,24 +1114,27 @@ static HRESULT WINAPI CompositeCMenu_GetCommandString(IContextMenu3* iface, UINT static HRESULT WINAPI CompositeCMenu_InvokeCommand(IContextMenu3* iface,LPCMINVOKECOMMANDINFO pici) { CompositeCMenu *This = impl_from_IContextMenu3(iface); - TRACE("(%p)->(%p)\n",iface,pici); - if(HIWORD(pici->lpVerb)) + + TRACE("(%p)->(%p)\n", iface, pici); + + if (IS_INTRESOURCE(pici->lpVerb)) { - /*call each handler until one of them succeeds*/ - UINT i=0; - for(;imenu_count;i++) - { - HRESULT hres; - if(SUCCEEDED(hres=IContextMenu_InvokeCommand(This->menus[i],pici))) - return hres; - } - return E_FAIL; + UINT id = (UINT_PTR)pici->lpVerb; + UINT index = CompositeCMenu_GetIndexForCommandId(This, id); + return IContextMenu_InvokeCommand(This->menus[index], pici); } else { - UINT id = (UINT_PTR)pici->lpVerb; - UINT index = CompositeCMenu_GetIndexForCommandId(This,id); - return IContextMenu_InvokeCommand(This->menus[index],pici); + /*call each handler until one of them succeeds*/ + UINT i; + + for (i = 0; i < This->menu_count; i++) + { + HRESULT hres; + if (SUCCEEDED(hres = IContextMenu_InvokeCommand(This->menus[i], pici))) + return hres; + } + return E_FAIL; } } diff --git a/dlls/shell32/shlview_cmenu.c b/dlls/shell32/shlview_cmenu.c index 099f5bc4ade..5c5ba1b0027 100644 --- a/dlls/shell32/shlview_cmenu.c +++ b/dlls/shell32/shlview_cmenu.c @@ -397,13 +397,13 @@ static HRESULT WINAPI ItemMenu_InvokeCommand( TRACE("(%p)->(invcom=%p verb=%p wnd=%p)\n",This,lpcmi,lpcmi->lpVerb, lpcmi->hwnd); - if( HIWORD(lpcmi->lpVerb)==0 && LOWORD(lpcmi->lpVerb) > FCIDM_SHVIEWLAST) + if (IS_INTRESOURCE(lpcmi->lpVerb) && LOWORD(lpcmi->lpVerb) > FCIDM_SHVIEWLAST) { - TRACE("Invalid Verb %x\n",LOWORD(lpcmi->lpVerb)); + TRACE("Invalid Verb %x\n", LOWORD(lpcmi->lpVerb)); return E_INVALIDARG; } - if (HIWORD(lpcmi->lpVerb) == 0) + if (IS_INTRESOURCE(lpcmi->lpVerb)) { switch(LOWORD(lpcmi->lpVerb)) {