mirror of
https://github.com/reactos/reactos.git
synced 2024-09-28 05:26:58 +00:00
[0.4.14][SHELL32] Improve StartButton context menu (#5008) CORE-16544
It regressed by the introduction of the SendTo-menu in: 0.4.14-dev-238-g5308a606dc
Since then we had some unintended verbs in the start buttons context menu. Fix that by *partially* porting back: 0.4.15-dev-5611-g8e036fe74d
[SHELL32] Improve StartButton context menu (#5008) 0.4.15-dev-5614-gf156f9a137
[SHELL32] Follow-up I picked only the parts that I needed to hide the CSendToMenu, because the older branches do not have the CCopyToMenu, CMoveToMenu. And I do not intend to ever add the new source files implementing them.
This commit is contained in:
parent
38dd7d8094
commit
1e4c5509f5
|
@ -50,7 +50,6 @@ struct _StaticInvokeCommandMap_
|
|||
{ "rename", FCIDM_SHVIEW_RENAME},
|
||||
};
|
||||
|
||||
|
||||
class CDefaultContextMenu :
|
||||
public CComObjectRootEx<CComMultiThreadModelNoCS>,
|
||||
public IContextMenu3,
|
||||
|
@ -85,7 +84,7 @@ class CDefaultContextMenu :
|
|||
BOOL IsShellExtensionAlreadyLoaded(const CLSID *pclsid);
|
||||
HRESULT LoadDynamicContextMenuHandler(HKEY hKey, const CLSID *pclsid);
|
||||
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(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink);
|
||||
HRESULT DoOpenOrExplore(LPCMINVOKECOMMANDINFO lpcmi);
|
||||
|
@ -152,7 +151,6 @@ CDefaultContextMenu::CDefaultContextMenu() :
|
|||
m_iIdCBLast(0),
|
||||
m_iIdDfltFirst(0),
|
||||
m_iIdDfltLast(0)
|
||||
|
||||
{
|
||||
}
|
||||
|
||||
|
@ -348,7 +346,6 @@ HRESULT
|
|||
CDefaultContextMenu::LoadDynamicContextMenuHandler(HKEY hKey, const CLSID *pclsid)
|
||||
{
|
||||
HRESULT hr;
|
||||
|
||||
TRACE("LoadDynamicContextMenuHandler entered with This %p hKey %p pclsid %s\n", this, hKey, wine_dbgstr_guid(pclsid));
|
||||
|
||||
if (IsShellExtensionAlreadyLoaded(pclsid))
|
||||
|
@ -470,7 +467,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;
|
||||
|
||||
|
@ -480,7 +477,7 @@ CDefaultContextMenu::AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UIN
|
|||
PDynamicShellEntry pEntry = m_pDynamicEntries;
|
||||
do
|
||||
{
|
||||
HRESULT hr = pEntry->pCM->QueryContextMenu(hMenu, *pIndexMenu, idCmdFirst + cIds, idCmdLast, CMF_NORMAL);
|
||||
HRESULT hr = pEntry->pCM->QueryContextMenu(hMenu, *pIndexMenu, idCmdFirst + cIds, idCmdLast, uFlags);
|
||||
if (SUCCEEDED(hr))
|
||||
{
|
||||
pEntry->iIdCmdFirst = cIds;
|
||||
|
@ -502,7 +499,7 @@ UINT
|
|||
CDefaultContextMenu::AddStaticContextMenusToMenu(
|
||||
HMENU hMenu,
|
||||
UINT* pIndexMenu,
|
||||
UINT iIdCmdFirst,
|
||||
UINT iIdCmdFirst,
|
||||
UINT iIdCmdLast)
|
||||
{
|
||||
MENUITEMINFOW mii;
|
||||
|
@ -688,7 +685,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;
|
||||
|
|
|
@ -244,6 +244,7 @@ UINT CSendToMenu::InsertSendToItems(HMENU hMenu, UINT idCmdFirst, UINT Pos)
|
|||
{
|
||||
CStringW strNone(MAKEINTRESOURCEW(IDS_NONE));
|
||||
AppendMenuW(hMenu, MF_GRAYED | MF_DISABLED | MF_STRING, idCmd, strNone);
|
||||
++idCmd;
|
||||
}
|
||||
|
||||
return idCmd - idCmdFirst;
|
||||
|
@ -294,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, idCmdFirst);
|
||||
|
||||
HMENU hSubMenu = CreateMenu();
|
||||
if (!hSubMenu)
|
||||
{
|
||||
|
@ -323,7 +327,7 @@ CSendToMenu::QueryContextMenu(HMENU hMenu,
|
|||
m_hSubMenu = hSubMenu;
|
||||
DestroyMenu(hOldSubMenu);
|
||||
|
||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cItems);
|
||||
return MAKE_HRESULT(SEVERITY_SUCCESS, 0, idCmdFirst + cItems);
|
||||
}
|
||||
|
||||
STDMETHODIMP
|
||||
|
|
Loading…
Reference in a new issue