mirror of
https://github.com/reactos/reactos.git
synced 2025-02-22 08:25:03 +00:00
[SHELL32] Improve StartButton context menu (#5008)
- Add uFlags argument to CDefaultContextMenu::AddShellExtensionsToMenu- CCopyToMenu, CMoveToMenu, and CSendToMenu check the uFlags against (CMF_NOVERBS | CMF_VERBSONLY). CORE-16544
This commit is contained in:
parent
5f1fff696b
commit
8e036fe74d
4 changed files with 13 additions and 4 deletions
|
@ -271,6 +271,9 @@ CCopyToMenu::QueryContextMenu(HMENU hMenu,
|
|||
TRACE("CCopyToMenu::QueryContextMenu(%p, %u, %u, %u, %u)\n",
|
||||
hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
||||
|
||||
if (uFlags & (CMF_NOVERBS | CMF_VERBSONLY))
|
||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);
|
||||
|
||||
m_idCmdFirst = m_idCmdLast = idCmdFirst;
|
||||
|
||||
// insert separator if necessary
|
||||
|
|
|
@ -84,7 +84,7 @@ class CDefaultContextMenu :
|
|||
BOOL IsShellExtensionAlreadyLoaded(REFCLSID clsid);
|
||||
HRESULT LoadDynamicContextMenuHandler(HKEY hKey, REFCLSID clsid);
|
||||
BOOL EnumerateDynamicContextHandlerForKey(HKEY hRootKey);
|
||||
UINT AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast);
|
||||
UINT AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags);
|
||||
UINT AddStaticContextMenusToMenu(HMENU hMenu, UINT* IndexMenu, UINT iIdCmdFirst, UINT iIdCmdLast);
|
||||
HRESULT DoPaste(LPCMINVOKECOMMANDINFOEX lpcmi, BOOL bLink);
|
||||
HRESULT DoOpenOrExplore(LPCMINVOKECOMMANDINFOEX lpcmi);
|
||||
|
@ -417,7 +417,7 @@ CDefaultContextMenu::EnumerateDynamicContextHandlerForKey(HKEY hRootKey)
|
|||
}
|
||||
|
||||
UINT
|
||||
CDefaultContextMenu::AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast)
|
||||
CDefaultContextMenu::AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags)
|
||||
{
|
||||
UINT cIds = 0;
|
||||
|
||||
|
@ -429,7 +429,7 @@ CDefaultContextMenu::AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UIN
|
|||
{
|
||||
DynamicShellEntry& info = m_DynamicEntries.GetNext(it);
|
||||
|
||||
HRESULT hr = info.pCM->QueryContextMenu(hMenu, *pIndexMenu, idCmdFirst + cIds, idCmdLast, CMF_NORMAL);
|
||||
HRESULT hr = info.pCM->QueryContextMenu(hMenu, *pIndexMenu, idCmdFirst + cIds, idCmdLast, uFlags);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
info.iIdCmdFirst = cIds;
|
||||
|
@ -636,7 +636,7 @@ CDefaultContextMenu::QueryContextMenu(
|
|||
idCmdNext = idCmdFirst + cIds;
|
||||
|
||||
/* Add dynamic context menu handlers */
|
||||
cIds += AddShellExtensionsToMenu(hMenu, &IndexMenu, idCmdNext, idCmdLast);
|
||||
cIds += AddShellExtensionsToMenu(hMenu, &IndexMenu, idCmdNext, idCmdLast, uFlags);
|
||||
m_iIdSHEFirst = m_iIdSCMLast;
|
||||
m_iIdSHELast = cIds;
|
||||
idCmdNext = idCmdFirst + cIds;
|
||||
|
|
|
@ -270,6 +270,9 @@ CMoveToMenu::QueryContextMenu(HMENU hMenu,
|
|||
TRACE("CMoveToMenu::QueryContextMenu(%p, %u, %u, %u, %u)\n",
|
||||
hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
||||
|
||||
if (uFlags & (CMF_NOVERBS | CMF_VERBSONLY))
|
||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);
|
||||
|
||||
m_idCmdFirst = m_idCmdLast = idCmdFirst;
|
||||
|
||||
// insert separator if necessary
|
||||
|
|
|
@ -295,6 +295,9 @@ CSendToMenu::QueryContextMenu(HMENU hMenu,
|
|||
TRACE("%p %p %u %u %u %u\n", this,
|
||||
hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
|
||||
|
||||
if (uFlags & (CMF_NOVERBS | CMF_VERBSONLY))
|
||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, 0);
|
||||
|
||||
HMENU hSubMenu = CreateMenu();
|
||||
if (!hSubMenu)
|
||||
{
|
||||
|
|
Loading…
Reference in a new issue