diff --git a/reactos/dll/win32/shell32/CDefView.cpp b/reactos/dll/win32/shell32/CDefView.cpp index 895f9e0e240..b31044df079 100644 --- a/reactos/dll/win32/shell32/CDefView.cpp +++ b/reactos/dll/win32/shell32/CDefView.cpp @@ -53,6 +53,10 @@ typedef struct #define SHV_CHANGE_NOTIFY WM_USER + 0x1111 +/* For the context menu of the def view, the id of the items are based on 1 because we need + to call TrackPopupMenu and let it use the 0 value as an indication that the menu was canceled */ +#define CONTEXT_MENU_BASE_ID 1 + class CDefView : public CWindowImpl, public CComObjectRootEx, @@ -1272,7 +1276,7 @@ HRESULT CDefView::OpenSelectedItems() IUnknown_SetSite(m_pCM, (IShellView *)this); - hResult = m_pCM->QueryContextMenu(hMenu, 0, 0x20, 0x7fff, CMF_DEFAULTONLY); + hResult = m_pCM->QueryContextMenu(hMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_DEFAULTONLY); if (FAILED_UNEXPECTEDLY(hResult)) goto cleanup; @@ -1325,7 +1329,8 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b IUnknown_SetSite(m_pCM, (IShellView *)this); - hResult = m_pCM->QueryContextMenu(m_hContextMenu, 0, FCIDM_SHVIEWFIRST, FCIDM_SHVIEWLAST, CMF_NORMAL); + /* Use 1 as the first id as we want 0 the mean that the user canceled the menu */ + hResult = m_pCM->QueryContextMenu(m_hContextMenu, 0, CONTEXT_MENU_BASE_ID, FCIDM_SHVIEWLAST, CMF_NORMAL); if (FAILED_UNEXPECTEDLY(hResult)) goto cleanup; @@ -1338,7 +1343,7 @@ LRESULT CDefView::OnContextMenu(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &b if (uCommand == FCIDM_SHVIEW_OPEN && OnDefaultCommand() == S_OK) goto cleanup; - InvokeContextMenuCommand(uCommand); + InvokeContextMenuCommand(uCommand - CONTEXT_MENU_BASE_ID); cleanup: if (m_pCM) @@ -1600,7 +1605,7 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand return OnExplorerCommand(dwCmdID, FALSE); default: /* WM_COMMAND messages from the file menu are routed to the CDefView so as to let m_pCM handle the command */ - if (m_pCM) + if (m_pCM && dwCmd == 0) { InvokeContextMenuCommand(dwCmdID); } @@ -1955,6 +1960,9 @@ LRESULT CDefView::OnChangeNotify(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL & return TRUE; } +HRESULT SHGetMenuIdFromMenuMsg(UINT uMsg, LPARAM lParam, UINT *CmdId); +HRESULT SHSetMenuIdInMenuMsg(UINT uMsg, LPARAM lParam, UINT CmdId); + /********************************************************** * CDefView::OnCustomItem */ @@ -1967,12 +1975,18 @@ LRESULT CDefView::OnCustomItem(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bH return FALSE; } - LRESULT result; - HRESULT hres = SHForwardContextMenuMsg(m_pCM, uMsg, wParam, lParam, &result, TRUE); + /* The lParam of WM_DRAWITEM WM_MEASUREITEM contain a menu id and this also needs to + be changed to a menu identifier offset */ + UINT CmdID; + HRESULT hres = SHGetMenuIdFromMenuMsg(uMsg, lParam, &CmdID); if (SUCCEEDED(hres)) - return TRUE; - else - return FALSE; + SHSetMenuIdInMenuMsg(uMsg, lParam, CmdID - CONTEXT_MENU_BASE_ID); + + /* Forward the message to the IContextMenu2 */ + LRESULT result; + hres = SHForwardContextMenuMsg(m_pCM, uMsg, wParam, lParam, &result, TRUE); + + return (SUCCEEDED(hres)); } LRESULT CDefView::OnSettingChange(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHandled) diff --git a/reactos/dll/win32/shell32/CDefViewBckgrndMenu.cpp b/reactos/dll/win32/shell32/CDefViewBckgrndMenu.cpp index 6cb859ebe74..0b8b1352511 100644 --- a/reactos/dll/win32/shell32/CDefViewBckgrndMenu.cpp +++ b/reactos/dll/win32/shell32/CDefViewBckgrndMenu.cpp @@ -20,6 +20,9 @@ class CDefViewBckgrndMenu : CComPtr m_psf; CComPtr m_folderCM; + UINT m_idCmdFirst; + UINT m_LastFolderCMId; + BOOL _bIsDesktopBrowserMenu(); BOOL _bCanPaste(); public: @@ -52,6 +55,8 @@ class CDefViewBckgrndMenu : CDefViewBckgrndMenu::CDefViewBckgrndMenu() { + m_idCmdFirst = 0; + m_LastFolderCMId = 0; } CDefViewBckgrndMenu::~CDefViewBckgrndMenu() @@ -135,6 +140,39 @@ CDefViewBckgrndMenu::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFir { HRESULT hr; HMENU hMenuPart; + UINT cIds = 0; + + /* This is something the implementations of IContextMenu should never really do. + However CDefViewBckgrndMenu is more or less an overengineering result, its code could really be part of the + CDefView. Given this, I think that abusing the interface here is not that bad since only CDefView is the ony + user of this class. Here we need to do two things to keep things as simple as possible. + First we want the menu part added by the shell folder to be the first to add so as to make as few id translations + as possible. Second, we want to add the default part of the background menu without shifted ids, so as + to let the CDefView fill some parts like filling the arrange modes or checking the view mode. In order + for that to work we need to save idCmdFirst because our caller will pass id offsets to InvokeCommand. + This makes it impossible to concatenate the CDefViewBckgrndMenu with other menus since it abuses IContextMenu + but as stated above, its sole user is CDefView and should really be that way. */ + m_idCmdFirst = idCmdFirst; + + /* Query the shell folder to add any items it wants to add in the background context menu */ + hr = m_psf->CreateViewObject(NULL, IID_PPV_ARG(IContextMenu, &m_folderCM)); + if (SUCCEEDED(hr)) + { + hr = m_folderCM->QueryContextMenu(hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags); + if (SUCCEEDED(hr)) + { + m_LastFolderCMId = LOWORD(hr); + cIds = m_LastFolderCMId; + } + else + { + WARN("QueryContextMenu failed!\n"); + } + } + else + { + WARN("GetUIObjectOf didn't give any context menu!\n"); + } /* Load the default part of the background context menu */ hMenuPart = LoadMenuW(shell32_hInstance, L"MENU_002"); @@ -154,8 +192,7 @@ CDefViewBckgrndMenu::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFir } /* merge general background context menu in */ - Shell_MergeMenus(hMenu, GetSubMenu(hMenuPart, 0), indexMenu, 0, 0xFFFF, MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS); - indexMenu += GetMenuItemCount(GetSubMenu(hMenuPart, 0)); + Shell_MergeMenus(hMenu, GetSubMenu(hMenuPart, 0), indexMenu, 0, idCmdLast, MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS | MM_ADDSEPARATOR); DestroyMenu(hMenuPart); } else @@ -163,52 +200,24 @@ CDefViewBckgrndMenu::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFir ERR("Failed to load menu from resource!\n"); } - /* Query the shell folder to add any items it wants to add in the background context menu */ - hMenuPart = CreatePopupMenu(); - if (hMenuPart) - { - hr = m_psf->CreateViewObject(NULL, IID_PPV_ARG(IContextMenu, &m_folderCM)); - if (SUCCEEDED(hr)) - { - InsertMenuA(hMenu, indexMenu++, MF_BYPOSITION | MF_SEPARATOR, 0, NULL); - UINT SeparatorIndex = indexMenu; - int count = GetMenuItemCount(hMenu); - - hr = m_folderCM->QueryContextMenu(hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags); - if (SUCCEEDED(hr)) - { - //Shell_MergeMenus(hMenu, hMenuPart, indexMenu, 0, UINT_MAX, MM_ADDSEPARATOR| MM_DONTREMOVESEPS | MM_SUBMENUSHAVEIDS); - //DestroyMenu(hMenuPart); - } - else - { - WARN("QueryContextMenu failed!\n"); - } - - /* If no item was added after the separator, remove it */ - if (count == GetMenuItemCount(hMenu)) - DeleteMenu(hMenu, SeparatorIndex, MF_BYPOSITION); - - } - else - { - WARN("GetUIObjectOf didn't give any context menu!\n"); - } - } - else - { - ERR("CreatePopupMenu failed!\n"); - } - - return S_OK; + return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds); } HRESULT WINAPI CDefViewBckgrndMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) { + UINT idCmd = LOWORD(lpcmi->lpVerb); + if(HIWORD(lpcmi->lpVerb) != 0 || idCmd < m_LastFolderCMId) + { + return m_folderCM->InvokeCommand(lpcmi); + } + + /* The default part of the background menu doesn't have shifted ids so we need to convert the id offset to the real id */ + idCmd += m_idCmdFirst; + /* The commands that are handled by the def view are forwarded to it */ - switch (LOWORD(lpcmi->lpVerb)) + switch (idCmd) { case FCIDM_SHVIEW_BIGICON: case FCIDM_SHVIEW_SMALLICON: @@ -232,13 +241,12 @@ CDefViewBckgrndMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi) HWND hwndSV = NULL; if (SUCCEEDED(psv->GetWindow(&hwndSV))) - SendMessageW(hwndSV, WM_COMMAND, MAKEWPARAM(LOWORD(lpcmi->lpVerb), 0), 0); + SendMessageW(hwndSV, WM_COMMAND, MAKEWPARAM(idCmd, 0), 0); return S_OK; } - /* Unknown commands are added by the folder context menu so forward the invocation */ - return m_folderCM->InvokeCommand(lpcmi); - + ERR("Got unknown command id %ul\n", LOWORD(lpcmi->lpVerb)); + return E_FAIL; } HRESULT diff --git a/reactos/dll/win32/shell32/CDefaultContextMenu.cpp b/reactos/dll/win32/shell32/CDefaultContextMenu.cpp index 849c837f965..a16ab80e32d 100644 --- a/reactos/dll/win32/shell32/CDefaultContextMenu.cpp +++ b/reactos/dll/win32/shell32/CDefaultContextMenu.cpp @@ -78,6 +78,8 @@ class CDefaultContextMenu : UINT m_iIdSCMLast; /* last static used id */ UINT m_iIdCBFirst; /* first callback used id */ UINT m_iIdCBLast; /* last callback used id */ + UINT m_iIdDfltFirst; /* first default part id */ + UINT m_iIdDfltLast; /* last default part id */ HRESULT _DoCallback(UINT uMsg, WPARAM wParam, LPVOID lParam); void AddStaticEntry(const HKEY hkeyClass, const WCHAR *szVerb); @@ -85,8 +87,8 @@ class CDefaultContextMenu : BOOL IsShellExtensionAlreadyLoaded(const CLSID *pclsid); HRESULT LoadDynamicContextMenuHandler(HKEY hKey, const CLSID *pclsid); BOOL EnumerateDynamicContextHandlerForKey(HKEY hRootKey); - UINT InsertMenuItemsOfDynamicContextMenuExtension(HMENU hMenu, UINT IndexMenu, UINT idCmdFirst, UINT idCmdLast); - UINT AddStaticContextMenusToMenu(HMENU hMenu, UINT IndexMenu, UINT iIdCmdFirst, UINT iIdCmdLast); + UINT AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast); + UINT AddStaticContextMenusToMenu(HMENU hMenu, UINT* IndexMenu, UINT iIdCmdFirst, UINT iIdCmdLast); HRESULT DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink); HRESULT DoOpenOrExplore(LPCMINVOKECOMMANDINFO lpcmi); HRESULT DoCreateLink(LPCMINVOKECOMMANDINFO lpcmi); @@ -95,8 +97,8 @@ class CDefaultContextMenu : HRESULT DoRename(LPCMINVOKECOMMANDINFO lpcmi); HRESULT DoProperties(LPCMINVOKECOMMANDINFO lpcmi); HRESULT DoCreateNewFolder(LPCMINVOKECOMMANDINFO lpici); - HRESULT DoDynamicShellExtensions(LPCMINVOKECOMMANDINFO lpcmi); - HRESULT DoStaticShellExtensions(LPCMINVOKECOMMANDINFO lpcmi); + HRESULT InvokeShellExt(LPCMINVOKECOMMANDINFO lpcmi); + HRESULT InvokeRegVerb(LPCMINVOKECOMMANDINFO lpcmi); DWORD BrowserFlagsFromVerb(LPCMINVOKECOMMANDINFO lpcmi, PStaticShellEntry pEntry); HRESULT TryToBrowse(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl, DWORD wFlags); HRESULT InvokePidl(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl, PStaticShellEntry pEntry); @@ -149,7 +151,10 @@ CDefaultContextMenu::CDefaultContextMenu() : m_iIdSCMFirst(0), m_iIdSCMLast(0), m_iIdCBFirst(0), - m_iIdCBLast(0) + m_iIdCBLast(0), + m_iIdDfltFirst(0), + m_iIdDfltLast(0) + { } @@ -463,47 +468,38 @@ CDefaultContextMenu::EnumerateDynamicContextHandlerForKey(HKEY hRootKey) } UINT -CDefaultContextMenu::InsertMenuItemsOfDynamicContextMenuExtension(HMENU hMenu, UINT IndexMenu, UINT idCmdFirst, UINT idCmdLast) +CDefaultContextMenu::AddShellExtensionsToMenu(HMENU hMenu, UINT* pIndexMenu, UINT idCmdFirst, UINT idCmdLast) { + UINT cIds = 0; + if (!m_pDynamicEntries) - { - m_iIdSHEFirst = 0; - m_iIdSHELast = 0; - return IndexMenu; - } + return cIds; PDynamicShellEntry pEntry = m_pDynamicEntries; - m_iIdSHEFirst = idCmdFirst; do { - HRESULT hr = pEntry->pCM->QueryContextMenu(hMenu, IndexMenu++, idCmdFirst, idCmdLast, CMF_NORMAL); + HRESULT hr = pEntry->pCM->QueryContextMenu(hMenu, *pIndexMenu, idCmdFirst + cIds, idCmdLast, CMF_NORMAL); if (SUCCEEDED(hr)) { - pEntry->iIdCmdFirst = idCmdFirst; + pEntry->iIdCmdFirst = cIds; pEntry->NumIds = LOWORD(hr); - IndexMenu += pEntry->NumIds; - idCmdFirst += pEntry->NumIds + 0x10; + (*pIndexMenu) += pEntry->NumIds; - if(idCmdFirst >= idCmdLast) - { - /* There is no more room for items */ - idCmdFirst = idCmdLast; + cIds += pEntry->NumIds; + if(idCmdFirst + cIds >= idCmdLast) break; - } } TRACE("pEntry %p hr %x contextmenu %p cmdfirst %x num ids %x\n", pEntry, hr, pEntry->pCM, pEntry->iIdCmdFirst, pEntry->NumIds); pEntry = pEntry->pNext; } while (pEntry); - m_iIdSHELast = idCmdFirst; - TRACE("SH_LoadContextMenuHandlers first %x last %x\n", m_iIdSHEFirst, m_iIdSHELast); - return IndexMenu; + return cIds; } UINT CDefaultContextMenu::AddStaticContextMenusToMenu( HMENU hMenu, - UINT IndexMenu, + UINT* pIndexMenu, UINT iIdCmdFirst, UINT iIdCmdLast) { @@ -511,13 +507,12 @@ CDefaultContextMenu::AddStaticContextMenusToMenu( UINT idResource; WCHAR wszVerb[40]; UINT fState; + UINT cIds = 0; mii.cbSize = sizeof(mii); mii.fMask = MIIM_ID | MIIM_TYPE | MIIM_STATE | MIIM_DATA; mii.fType = MFT_STRING; - mii.wID = iIdCmdFirst; mii.dwTypeData = NULL; - m_iIdSCMFirst = mii.wID; PStaticShellEntry pEntry = m_pStaticEntries; @@ -596,17 +591,18 @@ CDefaultContextMenu::AddStaticContextMenusToMenu( mii.cch = wcslen(mii.dwTypeData); mii.fState = fState; - InsertMenuItemW(hMenu, IndexMenu++, TRUE, &mii); + mii.wID = iIdCmdFirst + cIds; + InsertMenuItemW(hMenu, *pIndexMenu, TRUE, &mii); + (*pIndexMenu)++; + cIds++; - mii.wID++; pEntry = pEntry->pNext; if (mii.wID >= iIdCmdLast) break; } - m_iIdSCMLast = mii.wID - 1; - return IndexMenu; + return cIds; } void WINAPI _InsertMenuItemW( @@ -659,10 +655,7 @@ CDefaultContextMenu::QueryContextMenu( { HRESULT hr; UINT idCmdNext = idCmdFirst; - - /* Add a tiny hack to make all the shell happy until we understand how we should handle 0 ids */ - if (!idCmdNext) - idCmdNext = 1; + UINT cIds = 0; TRACE("BuildShellItemContextMenu entered\n"); @@ -674,92 +667,69 @@ CDefaultContextMenu::QueryContextMenu( } /* Add static context menu handlers */ - IndexMenu = AddStaticContextMenusToMenu(hMenu, IndexMenu, idCmdNext, idCmdLast); - if (m_iIdSCMLast && m_iIdSCMFirst > m_iIdSCMLast) - m_iIdSCMLast = m_iIdSCMFirst = 0; - else if (m_iIdSCMLast) - idCmdNext = m_iIdSCMLast + 1; + cIds = AddStaticContextMenusToMenu(hMenu, &IndexMenu, idCmdFirst, idCmdLast); + m_iIdSCMFirst = 0; + m_iIdSCMLast = cIds; + idCmdNext = idCmdFirst + cIds; /* Add dynamic context menu handlers */ - BOOL bAddSep = FALSE; - IndexMenu = InsertMenuItemsOfDynamicContextMenuExtension(hMenu, IndexMenu, idCmdNext, idCmdLast); - if (m_iIdSHELast && m_iIdSHELast != m_iIdSHEFirst) - idCmdNext = m_iIdSHELast + 1; + cIds += AddShellExtensionsToMenu(hMenu, &IndexMenu, idCmdNext, idCmdLast); + m_iIdSHEFirst = m_iIdSCMLast; + m_iIdSHELast = cIds; + idCmdNext = idCmdFirst + cIds; + TRACE("SH_LoadContextMenuHandlers first %x last %x\n", m_iIdSHEFirst, m_iIdSHELast); /* Now let the callback add its own items */ QCMINFO qcminfo = {hMenu, IndexMenu, idCmdNext, idCmdLast, NULL}; if (SUCCEEDED(_DoCallback(DFM_MERGECONTEXTMENU, uFlags, &qcminfo))) { - m_iIdCBFirst = idCmdNext; - m_iIdCBLast = qcminfo.idCmdFirst; - idCmdNext = m_iIdCBLast + 1; + cIds += qcminfo.idCmdFirst; + IndexMenu += qcminfo.idCmdFirst; + m_iIdCBFirst = m_iIdSHELast; + m_iIdCBLast = cIds; + idCmdNext = idCmdFirst + cIds; } - /* The rest of the items will be added in the end of the menu */ - IndexMenu = GetMenuItemCount(hMenu); - if (uFlags & CMF_VERBSONLY) - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, idCmdNext - idCmdFirst); + return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds); /* If this is a background context menu we are done */ if (!m_cidl) - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, idCmdNext - idCmdFirst); + return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds); /* Get the attributes of the items */ SFGAOF rfg = SFGAO_BROWSABLE | SFGAO_CANCOPY | SFGAO_CANLINK | SFGAO_CANMOVE | SFGAO_CANDELETE | SFGAO_CANRENAME | SFGAO_HASPROPSHEET | SFGAO_FILESYSTEM | SFGAO_FOLDER; hr = m_psf->GetAttributesOf(m_cidl, m_apidl, &rfg); if (FAILED_UNEXPECTEDLY(hr)) - return MAKE_HRESULT(SEVERITY_SUCCESS, 0, idCmdNext - idCmdFirst); + return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds); - /* Add the standard menu entries based on the attributes of the items */ - BOOL bClipboardData = (HasClipboardData() && (rfg & SFGAO_FILESYSTEM)); - if (rfg & (SFGAO_CANCOPY | SFGAO_CANMOVE) || bClipboardData) - { - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - if (rfg & SFGAO_CANMOVE) - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_CUT, MFT_STRING, MAKEINTRESOURCEW(IDS_CUT), MFS_ENABLED); - if (rfg & SFGAO_CANCOPY) - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_COPY, MFT_STRING, MAKEINTRESOURCEW(IDS_COPY), MFS_ENABLED); - if (bClipboardData) - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_INSERT, MFT_STRING, MAKEINTRESOURCEW(IDS_PASTE), MFS_ENABLED); + /* Add the default part of the menu */ + HMENU hmenuDefault = LoadMenu(_AtlBaseModule.GetResourceInstance(), L"MENU_SHV_FILE"); - bAddSep = TRUE; - } + /* Remove uneeded entries */ + if (!(rfg & SFGAO_CANMOVE)) + DeleteMenu(hmenuDefault, IDM_CUT, MF_BYCOMMAND); + if (!(rfg & SFGAO_CANCOPY)) + DeleteMenu(hmenuDefault, IDM_COPY, MF_BYCOMMAND); + if (!((rfg & SFGAO_FILESYSTEM) && HasClipboardData())) + DeleteMenu(hmenuDefault, IDM_INSERT, MF_BYCOMMAND); + if (!(rfg & SFGAO_CANLINK)) + DeleteMenu(hmenuDefault, IDM_CREATELINK, MF_BYCOMMAND); + if (!(rfg & SFGAO_CANDELETE)) + DeleteMenu(hmenuDefault, IDM_DELETE, MF_BYCOMMAND); + if (!(rfg & SFGAO_CANRENAME)) + DeleteMenu(hmenuDefault, IDM_RENAME, MF_BYCOMMAND); + if (!(rfg & SFGAO_HASPROPSHEET)) + DeleteMenu(hmenuDefault, IDM_PROPERTIES, MF_BYCOMMAND); - if (rfg & SFGAO_CANLINK) - { - bAddSep = FALSE; - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_CREATELINK, MFT_STRING, MAKEINTRESOURCEW(IDS_CREATELINK), MFS_ENABLED); - } + UINT idMax = Shell_MergeMenus(hMenu, GetSubMenu(hmenuDefault, 0), IndexMenu, idCmdNext, idCmdLast, 0); + m_iIdDfltFirst = cIds; + cIds += idMax - idCmdNext; + m_iIdDfltLast = cIds; - if (rfg & SFGAO_CANDELETE) - { - if (bAddSep) - { - bAddSep = FALSE; - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - } - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_DELETE, MFT_STRING, MAKEINTRESOURCEW(IDS_DELETE), MFS_ENABLED); - } + DestroyMenu(hmenuDefault); - if (rfg & SFGAO_CANRENAME) - { - if (bAddSep) - { - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - } - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_RENAME, MFT_STRING, MAKEINTRESOURCEW(IDS_RENAME), MFS_ENABLED); - bAddSep = TRUE; - } - - if (rfg & SFGAO_HASPROPSHEET) - { - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - _InsertMenuItemW(hMenu, IndexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED); - } - - return S_OK; + return MAKE_HRESULT(SEVERITY_SUCCESS, 0, cIds); } HRESULT CDefaultContextMenu::DoPaste(LPCMINVOKECOMMANDINFO lpcmi, BOOL bLink) @@ -967,7 +937,7 @@ PDynamicShellEntry CDefaultContextMenu::GetDynamicEntry(UINT idCmd) { PDynamicShellEntry pEntry = m_pDynamicEntries; - while(pEntry && idCmd > pEntry->iIdCmdFirst + pEntry->NumIds) + while(pEntry && idCmd >= pEntry->iIdCmdFirst + pEntry->NumIds) pEntry = pEntry->pNext; if (!pEntry) @@ -1016,7 +986,7 @@ CDefaultContextMenu::MapVerbToCmdId(PVOID Verb, PUINT idCmd, BOOL IsUnicode) } HRESULT -CDefaultContextMenu::DoDynamicShellExtensions( +CDefaultContextMenu::InvokeShellExt( LPCMINVOKECOMMANDINFO lpcmi) { TRACE("verb %p first %x last %x\n", lpcmi->lpVerb, m_iIdSHEFirst, m_iIdSHELast); @@ -1134,7 +1104,7 @@ CDefaultContextMenu::InvokePidl(LPCMINVOKECOMMANDINFO lpcmi, LPCITEMIDLIST pidl, } HRESULT -CDefaultContextMenu::DoStaticShellExtensions( +CDefaultContextMenu::InvokeRegVerb( LPCMINVOKECOMMANDINFO lpcmi) { PStaticShellEntry pEntry = m_pStaticEntries; @@ -1198,8 +1168,37 @@ CDefaultContextMenu::InvokeCommand( LocalInvokeInfo.lpVerb = MAKEINTRESOURCEA(CmdId); } + CmdId = LOWORD(LocalInvokeInfo.lpVerb); + + if (m_pDynamicEntries && CmdId >= m_iIdSHEFirst && CmdId < m_iIdSHELast) + { + LocalInvokeInfo.lpVerb -= m_iIdSHEFirst; + Result = InvokeShellExt(&LocalInvokeInfo); + return Result; + } + + if (m_pStaticEntries && CmdId >= m_iIdSCMFirst && CmdId < m_iIdSCMLast) + { + LocalInvokeInfo.lpVerb -= m_iIdSCMFirst; + Result = InvokeRegVerb(&LocalInvokeInfo); + return Result; + } + + if (m_iIdCBFirst != m_iIdCBLast && CmdId >= m_iIdCBFirst && CmdId < m_iIdCBLast) + { + Result = _DoCallback(DFM_INVOKECOMMAND, CmdId - m_iIdCBFirst, NULL); + return Result; + } + + if (m_iIdDfltFirst != m_iIdDfltLast && CmdId >= m_iIdDfltFirst && CmdId < m_iIdDfltLast) + { + CmdId -= m_iIdDfltFirst; + /* See the definitions of IDM_CUT and co to see how this works */ + CmdId += 0x7000; + } + /* Check if this is a Id */ - switch (LOWORD(LocalInvokeInfo.lpVerb)) + switch (CmdId) { case FCIDM_SHVIEW_INSERT: Result = DoPaste(&LocalInvokeInfo, FALSE); @@ -1232,34 +1231,10 @@ CDefaultContextMenu::InvokeCommand( break; default: Result = E_UNEXPECTED; + ERR("Unhandled Verb %xl\n", LOWORD(LocalInvokeInfo.lpVerb)); break; } - /* Check for ID's we didn't find a handler for */ - if (Result == E_UNEXPECTED) - { - if (m_pDynamicEntries) - { - if (LOWORD(LocalInvokeInfo.lpVerb) >= m_iIdSHEFirst && LOWORD(LocalInvokeInfo.lpVerb) <= m_iIdSHELast) - Result = DoDynamicShellExtensions(&LocalInvokeInfo); - } - - if (m_pStaticEntries) - { - if (LOWORD(LocalInvokeInfo.lpVerb) >= m_iIdSCMFirst && LOWORD(LocalInvokeInfo.lpVerb) <= m_iIdSCMLast) - Result = DoStaticShellExtensions(&LocalInvokeInfo); - } - - if (m_iIdCBFirst != m_iIdCBLast) - { - if (LOWORD(LocalInvokeInfo.lpVerb) >= m_iIdCBFirst && LOWORD(LocalInvokeInfo.lpVerb) <= m_iIdCBLast) - Result = _DoCallback(DFM_INVOKECOMMAND, LOWORD(LocalInvokeInfo.lpVerb), NULL); - } - } - - if (Result == E_UNEXPECTED) - ERR("Unhandled Verb %xl\n", LOWORD(LocalInvokeInfo.lpVerb)); - return Result; } @@ -1315,6 +1290,42 @@ CDefaultContextMenu::HandleMenuMsg( return S_OK; } +HRESULT SHGetMenuIdFromMenuMsg(UINT uMsg, LPARAM lParam, UINT *CmdId) +{ + if (uMsg == WM_DRAWITEM) + { + DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast(lParam); + *CmdId = pDrawStruct->itemID; + return S_OK; + } + else if (uMsg == WM_MEASUREITEM) + { + MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast(lParam); + *CmdId = pMeasureStruct->itemID; + return S_OK; + } + + return E_FAIL; +} + +HRESULT SHSetMenuIdInMenuMsg(UINT uMsg, LPARAM lParam, UINT CmdId) +{ + if (uMsg == WM_DRAWITEM) + { + DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast(lParam); + pDrawStruct->itemID = CmdId; + return S_OK; + } + else if (uMsg == WM_MEASUREITEM) + { + MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast(lParam); + pMeasureStruct->itemID = CmdId; + return S_OK; + } + + return E_FAIL; +} + HRESULT WINAPI CDefaultContextMenu::HandleMenuMsg2( @@ -1323,9 +1334,7 @@ CDefaultContextMenu::HandleMenuMsg2( LPARAM lParam, LRESULT *plResult) { - switch (uMsg) - { - case WM_INITMENUPOPUP: + if (uMsg == WM_INITMENUPOPUP) { PDynamicShellEntry pEntry = m_pDynamicEntries; while (pEntry) @@ -1333,30 +1342,25 @@ CDefaultContextMenu::HandleMenuMsg2( SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE); pEntry = pEntry->pNext; } - break; + return S_OK; } - case WM_DRAWITEM: + + UINT CmdId; + HRESULT hr = SHGetMenuIdFromMenuMsg(uMsg, lParam, &CmdId); + if (FAILED(hr)) + return S_FALSE; + + if (CmdId < m_iIdSHEFirst || CmdId >= m_iIdSHELast) + return S_FALSE; + + CmdId -= m_iIdSHEFirst; + PDynamicShellEntry pEntry = GetDynamicEntry(CmdId); + if (pEntry) { - DRAWITEMSTRUCT* pDrawStruct = reinterpret_cast(lParam); - PDynamicShellEntry pEntry = GetDynamicEntry(pDrawStruct->itemID); - if (pEntry) - SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE); - break; - } - case WM_MEASUREITEM: - { - MEASUREITEMSTRUCT* pMeasureStruct = reinterpret_cast(lParam); - PDynamicShellEntry pEntry = GetDynamicEntry(pMeasureStruct->itemID); - if (pEntry) - SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE); - break; - } - case WM_MENUCHAR : - /* FIXME */ - break; - default: - ERR("Got unknown message:%d\n", uMsg); + SHSetMenuIdInMenuMsg(uMsg, lParam, CmdId - pEntry->iIdCmdFirst); + SHForwardContextMenuMsg(pEntry->pCM, uMsg, wParam, lParam, plResult, TRUE); } + return S_OK; } diff --git a/reactos/dll/win32/shell32/CNewMenu.cpp b/reactos/dll/win32/shell32/CNewMenu.cpp index e8e202e2764..8dd1d86f747 100644 --- a/reactos/dll/win32/shell32/CNewMenu.cpp +++ b/reactos/dll/win32/shell32/CNewMenu.cpp @@ -31,8 +31,7 @@ CNewMenu::CNewMenu() : m_pLinkItem(NULL), m_pSite(NULL), m_hiconFolder(NULL), - m_hiconLink(NULL), - m_idCmdFirst(0) + m_hiconLink(NULL) { } @@ -614,8 +613,6 @@ CNewMenu::QueryContextMenu(HMENU hMenu, MENUITEMINFOW mii; UINT cItems = 0; - m_idCmdFirst = idCmdFirst; - TRACE("%p %p %u %u %u %u\n", this, hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags); @@ -711,7 +708,7 @@ CNewMenu::HandleMenuMsg2(UINT uMsg, WPARAM wParam, LPARAM lParam, LRESULT *plRes if (!lpdis || lpdis->CtlType != ODT_MENU) break; - DWORD id = LOWORD(lpdis->itemID) - m_idCmdFirst; + DWORD id = LOWORD(lpdis->itemID); HICON hIcon = 0; if (id == 0) hIcon = m_hiconFolder; diff --git a/reactos/dll/win32/shell32/CNewMenu.h b/reactos/dll/win32/shell32/CNewMenu.h index a5bb86b8f82..2d2c52a355a 100644 --- a/reactos/dll/win32/shell32/CNewMenu.h +++ b/reactos/dll/win32/shell32/CNewMenu.h @@ -60,7 +60,6 @@ private: CComPtr m_pSite; HMENU m_hSubMenu; HICON m_hiconFolder, m_hiconLink; - UINT m_idCmdFirst; SHELLNEW_ITEM *LoadItem(LPCWSTR pwszExt); void UnloadItem(SHELLNEW_ITEM *pItem); diff --git a/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp b/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp index 3db5604f5c8..98e5c4fb6cf 100644 --- a/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp +++ b/reactos/dll/win32/shell32/folders/CDesktopFolder.cpp @@ -840,7 +840,7 @@ HRESULT WINAPI CDesktopFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IData /* no data object means no selection */ if (!pdtobj) { - if (uMsg == DFM_INVOKECOMMAND && wParam == DFM_CMD_PROPERTIES) + if (uMsg == DFM_INVOKECOMMAND && wParam == 0) { if (32 >= (UINT)ShellExecuteW(hwndOwner, L"open", L"rundll32.exe shell32.dll,Control_RunDLL desk.cpl", NULL, NULL, SW_SHOWNORMAL)) return E_FAIL; @@ -849,8 +849,10 @@ HRESULT WINAPI CDesktopFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IData else if (uMsg == DFM_MERGECONTEXTMENU) { QCMINFO *pqcminfo = (QCMINFO *)lParam; - _InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - _InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED); + HMENU hpopup = CreatePopupMenu(); + _InsertMenuItemW(hpopup, 0, TRUE, 0, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED); + Shell_MergeMenus(pqcminfo->hmenu, hpopup, pqcminfo->indexMenu++, pqcminfo->idCmdFirst, pqcminfo->idCmdLast, MM_ADDSEPARATOR); + DestroyMenu(hpopup); } return S_OK; diff --git a/reactos/dll/win32/shell32/folders/CFSFolder.cpp b/reactos/dll/win32/shell32/folders/CFSFolder.cpp index 393f7bf87bf..077cc3a7b03 100644 --- a/reactos/dll/win32/shell32/folders/CFSFolder.cpp +++ b/reactos/dll/win32/shell32/folders/CFSFolder.cpp @@ -1500,7 +1500,7 @@ HRESULT WINAPI CFSFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IDataObjec /* no data object means no selection */ if (!pdtobj) { - if (uMsg == DFM_INVOKECOMMAND && wParam == DFM_CMD_PROPERTIES) + if (uMsg == DFM_INVOKECOMMAND && wParam == 0) { PUITEMID_CHILD pidlChild = ILClone(ILFindLastID(pidlRoot)); LPITEMIDLIST pidlParent = ILClone(pidlRoot); @@ -1514,8 +1514,10 @@ HRESULT WINAPI CFSFolder::CallBack(IShellFolder *psf, HWND hwndOwner, IDataObjec else if (uMsg == DFM_MERGECONTEXTMENU) { QCMINFO *pqcminfo = (QCMINFO *)lParam; - _InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, 0, MFT_SEPARATOR, NULL, 0); - _InsertMenuItemW(pqcminfo->hmenu, pqcminfo->indexMenu++, TRUE, FCIDM_SHVIEW_PROPERTIES, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED); + HMENU hpopup = CreatePopupMenu(); + _InsertMenuItemW(hpopup, 0, TRUE, 0, MFT_STRING, MAKEINTRESOURCEW(IDS_PROPERTIES), MFS_ENABLED); + Shell_MergeMenus(pqcminfo->hmenu, hpopup, pqcminfo->indexMenu++, pqcminfo->idCmdFirst, pqcminfo->idCmdLast, MM_ADDSEPARATOR); + DestroyMenu(hpopup); } return S_OK; diff --git a/reactos/dll/win32/shell32/lang/bg-BG.rc b/reactos/dll/win32/shell32/lang/bg-BG.rc index 6b321738f03..b9c0e50568d 100644 --- a/reactos/dll/win32/shell32/lang/bg-BG.rc +++ b/reactos/dll/win32/shell32/lang/bg-BG.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Обзор", FCIDM_SHVIEW_EXPLORE - MENUITEM "О&тваряне", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "Из&рязване", FCIDM_SHVIEW_CUT - MENUITEM "За&помняне", FCIDM_SHVIEW_COPY + MENUITEM "Из&рязване", IDM_CUT + MENUITEM "За&помняне", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Създаване на &връзка", FCIDM_SHVIEW_CREATELINK - MENUITEM "Из&триване", FCIDM_SHVIEW_DELETE - MENUITEM "Пре&именуване", FCIDM_SHVIEW_RENAME + MENUITEM "Създаване на &връзка", IDM_CREATELINK + MENUITEM "Из&триване", IDM_DELETE + MENUITEM "Пре&именуване", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Свойства", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Свойства", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/ca-ES.rc b/reactos/dll/win32/shell32/lang/ca-ES.rc index aea05899832..0ad4880c240 100644 --- a/reactos/dll/win32/shell32/lang/ca-ES.rc +++ b/reactos/dll/win32/shell32/lang/ca-ES.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Open", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ut", FCIDM_SHVIEW_CUT - MENUITEM "&Copy", FCIDM_SHVIEW_COPY + MENUITEM "C&ut", IDM_CUT + MENUITEM "&Copy", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Delete", FCIDM_SHVIEW_DELETE - MENUITEM "&Rename", FCIDM_SHVIEW_RENAME + MENUITEM "Create &Link", IDM_CREATELINK + MENUITEM "&Delete", IDM_DELETE + MENUITEM "&Rename", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Properties", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/cs-CZ.rc b/reactos/dll/win32/shell32/lang/cs-CZ.rc index db5fc2fa487..5a178f694c4 100644 --- a/reactos/dll/win32/shell32/lang/cs-CZ.rc +++ b/reactos/dll/win32/shell32/lang/cs-CZ.rc @@ -69,17 +69,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "P&rozkoumat", FCIDM_SHVIEW_EXPLORE - MENUITEM "O&tevřít", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "Vyj&mout", FCIDM_SHVIEW_CUT - MENUITEM "&Kopírovat", FCIDM_SHVIEW_COPY + MENUITEM "Vyj&mout", IDM_CUT + MENUITEM "&Kopírovat", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Vytvořit zástupc&e", FCIDM_SHVIEW_CREATELINK - MENUITEM "O&dstranit", FCIDM_SHVIEW_DELETE - MENUITEM "&Přejmenovat", FCIDM_SHVIEW_RENAME + MENUITEM "Vytvořit zástupc&e", IDM_CREATELINK + MENUITEM "O&dstranit", IDM_DELETE + MENUITEM "&Přejmenovat", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Vlastnosti", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Vlastnosti", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/da-DK.rc b/reactos/dll/win32/shell32/lang/da-DK.rc index 99589ed9cf1..50acc12ffc9 100644 --- a/reactos/dll/win32/shell32/lang/da-DK.rc +++ b/reactos/dll/win32/shell32/lang/da-DK.rc @@ -69,17 +69,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Åbn", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "K&lip", FCIDM_SHVIEW_CUT - MENUITEM "&Kopiere", FCIDM_SHVIEW_COPY + MENUITEM "K&lip", IDM_CUT + MENUITEM "&Kopiere", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Opret &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Slet", FCIDM_SHVIEW_DELETE - MENUITEM "&Omdøb", FCIDM_SHVIEW_RENAME + MENUITEM "Opret &Link", IDM_CREATELINK + MENUITEM "&Slet", IDM_DELETE + MENUITEM "&Omdøb", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Egenskabe", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Egenskabe", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/de-DE.rc b/reactos/dll/win32/shell32/lang/de-DE.rc index 97ac0ee8b6c..c4447f24508 100644 --- a/reactos/dll/win32/shell32/lang/de-DE.rc +++ b/reactos/dll/win32/shell32/lang/de-DE.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplorer", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Öffnen", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Ausschneiden", FCIDM_SHVIEW_CUT - MENUITEM "&Kopieren", FCIDM_SHVIEW_COPY + MENUITEM "&Ausschneiden", IDM_CUT + MENUITEM "&Kopieren", IDM_COPY MENUITEM SEPARATOR - MENUITEM "&Verknüpfung erstellen", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Löschen", FCIDM_SHVIEW_DELETE - MENUITEM "&Umbenennen", FCIDM_SHVIEW_RENAME + MENUITEM "&Verknüpfung erstellen", IDM_CREATELINK + MENUITEM "&Löschen", IDM_DELETE + MENUITEM "&Umbenennen", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Eigenschaften", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Eigenschaften", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/el-GR.rc b/reactos/dll/win32/shell32/lang/el-GR.rc index ed24a0818d3..fb643a22056 100644 --- a/reactos/dll/win32/shell32/lang/el-GR.rc +++ b/reactos/dll/win32/shell32/lang/el-GR.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Εξερεύνηση", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Άνοιγμα", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "Α&ποκοπή", FCIDM_SHVIEW_CUT - MENUITEM "Α&ντιγραφή", FCIDM_SHVIEW_COPY + MENUITEM "Α&ποκοπή", IDM_CUT + MENUITEM "Α&ντιγραφή", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Δημιουργία &συντόμευσης", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Διαγραφή", FCIDM_SHVIEW_DELETE - MENUITEM "&Μετονομασία", FCIDM_SHVIEW_RENAME + MENUITEM "Δημιουργία &συντόμευσης", IDM_CREATELINK + MENUITEM "&Διαγραφή", IDM_DELETE + MENUITEM "&Μετονομασία", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Ιδιότητες", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Ιδιότητες", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/en-GB.rc b/reactos/dll/win32/shell32/lang/en-GB.rc index 37b8b6e74eb..add54b89623 100644 --- a/reactos/dll/win32/shell32/lang/en-GB.rc +++ b/reactos/dll/win32/shell32/lang/en-GB.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Open", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ut", FCIDM_SHVIEW_CUT - MENUITEM "&Copy", FCIDM_SHVIEW_COPY + MENUITEM "C&ut", IDM_CUT + MENUITEM "&Copy", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Delete", FCIDM_SHVIEW_DELETE - MENUITEM "&Rename", FCIDM_SHVIEW_RENAME + MENUITEM "Create &Link", IDM_CREATELINK + MENUITEM "&Delete", IDM_DELETE + MENUITEM "&Rename", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Properties", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/en-US.rc b/reactos/dll/win32/shell32/lang/en-US.rc index d3fab80ecdc..37cf3c1f367 100644 --- a/reactos/dll/win32/shell32/lang/en-US.rc +++ b/reactos/dll/win32/shell32/lang/en-US.rc @@ -63,17 +63,16 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Open", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "Cu&t", FCIDM_SHVIEW_CUT - MENUITEM "&Copy", FCIDM_SHVIEW_COPY + MENUITEM "Cu&t", IDM_CUT + MENUITEM "&Copy", IDM_COPY + MENUITEM "Paste", IDM_INSERT MENUITEM SEPARATOR - MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Delete", FCIDM_SHVIEW_DELETE - MENUITEM "&Rename", FCIDM_SHVIEW_RENAME + MENUITEM "Create &Link", IDM_CREATELINK + MENUITEM "&Delete", IDM_DELETE + MENUITEM "&Rename", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Properties", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/es-ES.rc b/reactos/dll/win32/shell32/lang/es-ES.rc index 23372e18e34..0dcf2f7ce63 100644 --- a/reactos/dll/win32/shell32/lang/es-ES.rc +++ b/reactos/dll/win32/shell32/lang/es-ES.rc @@ -65,17 +65,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplorar", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Abrir", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ortar", FCIDM_SHVIEW_CUT - MENUITEM "&Copiar", FCIDM_SHVIEW_COPY + MENUITEM "C&ortar", IDM_CUT + MENUITEM "&Copiar", IDM_COPY MENUITEM SEPARATOR - MENUITEM "C&rear acceso directo", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Eliminar", FCIDM_SHVIEW_DELETE - MENUITEM "Re&nombrar", FCIDM_SHVIEW_RENAME + MENUITEM "C&rear acceso directo", IDM_CREATELINK + MENUITEM "&Eliminar", IDM_DELETE + MENUITEM "Re&nombrar", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Propiedades", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Propiedades", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/fi-FI.rc b/reactos/dll/win32/shell32/lang/fi-FI.rc index 960efbfd7b8..4f7f8224d09 100644 --- a/reactos/dll/win32/shell32/lang/fi-FI.rc +++ b/reactos/dll/win32/shell32/lang/fi-FI.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Selaa", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Avaa", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Leikkaa", FCIDM_SHVIEW_CUT - MENUITEM "&Kopioi", FCIDM_SHVIEW_COPY + MENUITEM "&Leikkaa", IDM_CUT + MENUITEM "&Kopioi", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Lu&o Linkki", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Poista", FCIDM_SHVIEW_DELETE - MENUITEM "&Nimeä Uudelleen", FCIDM_SHVIEW_RENAME + MENUITEM "Lu&o Linkki", IDM_CREATELINK + MENUITEM "&Poista", IDM_DELETE + MENUITEM "&Nimeä Uudelleen", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Ominaisuudet", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Ominaisuudet", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/fr-FR.rc b/reactos/dll/win32/shell32/lang/fr-FR.rc index db47981645c..57ecdd8eb34 100644 --- a/reactos/dll/win32/shell32/lang/fr-FR.rc +++ b/reactos/dll/win32/shell32/lang/fr-FR.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplorer", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Ouvrir", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ouper", FCIDM_SHVIEW_CUT - MENUITEM "&Copier", FCIDM_SHVIEW_COPY + MENUITEM "C&ouper", IDM_CUT + MENUITEM "&Copier", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Créer un &lien", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Supprimer", FCIDM_SHVIEW_DELETE - MENUITEM "&Renommer", FCIDM_SHVIEW_RENAME + MENUITEM "Créer un &lien", IDM_CREATELINK + MENUITEM "&Supprimer", IDM_DELETE + MENUITEM "&Renommer", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Propriétés", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Propriétés", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/he-IL.rc b/reactos/dll/win32/shell32/lang/he-IL.rc index 6d58122a859..ba19acb9694 100644 --- a/reactos/dll/win32/shell32/lang/he-IL.rc +++ b/reactos/dll/win32/shell32/lang/he-IL.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "סייר", FCIDM_SHVIEW_EXPLORE - MENUITEM "פתח", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "גזור", FCIDM_SHVIEW_CUT - MENUITEM "העתק", FCIDM_SHVIEW_COPY + MENUITEM "גזור", IDM_CUT + MENUITEM "העתק", IDM_COPY MENUITEM SEPARATOR - MENUITEM "צור קישור", FCIDM_SHVIEW_CREATELINK - MENUITEM "מחק", FCIDM_SHVIEW_DELETE - MENUITEM "שנה שם", FCIDM_SHVIEW_RENAME + MENUITEM "צור קישור", IDM_CREATELINK + MENUITEM "מחק", IDM_DELETE + MENUITEM "שנה שם", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "מאפיינים", FCIDM_SHVIEW_PROPERTIES + MENUITEM "מאפיינים", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/hu-HU.rc b/reactos/dll/win32/shell32/lang/hu-HU.rc index 364d20d4344..4d6842d4339 100644 --- a/reactos/dll/win32/shell32/lang/hu-HU.rc +++ b/reactos/dll/win32/shell32/lang/hu-HU.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "B&öngész", FCIDM_SHVIEW_EXPLORE - MENUITEM "Megnyit", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "Kivágás", FCIDM_SHVIEW_CUT - MENUITEM "Másolás", FCIDM_SHVIEW_COPY + MENUITEM "Kivágás", IDM_CUT + MENUITEM "Másolás", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Parancsikon létrehozása", FCIDM_SHVIEW_CREATELINK - MENUITEM "Törlés", FCIDM_SHVIEW_DELETE - MENUITEM "Átnevezés", FCIDM_SHVIEW_RENAME + MENUITEM "Parancsikon létrehozása", IDM_CREATELINK + MENUITEM "Törlés", IDM_DELETE + MENUITEM "Átnevezés", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "Tulajdonságok", FCIDM_SHVIEW_PROPERTIES + MENUITEM "Tulajdonságok", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/it-IT.rc b/reactos/dll/win32/shell32/lang/it-IT.rc index b2a706e60eb..827047ee248 100644 --- a/reactos/dll/win32/shell32/lang/it-IT.rc +++ b/reactos/dll/win32/shell32/lang/it-IT.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&splora", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Apri", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Taglia", FCIDM_SHVIEW_CUT - MENUITEM "&Copia", FCIDM_SHVIEW_COPY + MENUITEM "&Taglia", IDM_CUT + MENUITEM "&Copia", IDM_COPY MENUITEM SEPARATOR - MENUITEM "&Crea Collegamento", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Cancella", FCIDM_SHVIEW_DELETE - MENUITEM "&Rinomina", FCIDM_SHVIEW_RENAME + MENUITEM "&Crea Collegamento", IDM_CREATELINK + MENUITEM "&Cancella", IDM_DELETE + MENUITEM "&Rinomina", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Proprietà", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Proprietà", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/ja-JP.rc b/reactos/dll/win32/shell32/lang/ja-JP.rc index c6865dad79f..a0e78cfd7fe 100644 --- a/reactos/dll/win32/shell32/lang/ja-JP.rc +++ b/reactos/dll/win32/shell32/lang/ja-JP.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "エクスプローラ(&X)", FCIDM_SHVIEW_EXPLORE - MENUITEM "開く(&O)", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "切り取り(&U)", FCIDM_SHVIEW_CUT - MENUITEM "コピー(&C)", FCIDM_SHVIEW_COPY + MENUITEM "切り取り(&U)", IDM_CUT + MENUITEM "コピー(&C)", IDM_COPY MENUITEM SEPARATOR - MENUITEM "ショートカットの作成(&L)", FCIDM_SHVIEW_CREATELINK - MENUITEM "削除(&D)", FCIDM_SHVIEW_DELETE - MENUITEM "名前の変更(&R)", FCIDM_SHVIEW_RENAME + MENUITEM "ショートカットの作成(&L)", IDM_CREATELINK + MENUITEM "削除(&D)", IDM_DELETE + MENUITEM "名前の変更(&R)", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "プロパティ(&P)", FCIDM_SHVIEW_PROPERTIES + MENUITEM "プロパティ(&P)", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/ko-KR.rc b/reactos/dll/win32/shell32/lang/ko-KR.rc index dac4134470a..c75233b8244 100644 --- a/reactos/dll/win32/shell32/lang/ko-KR.rc +++ b/reactos/dll/win32/shell32/lang/ko-KR.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Open", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ut", FCIDM_SHVIEW_CUT - MENUITEM "&Copy", FCIDM_SHVIEW_COPY + MENUITEM "C&ut", IDM_CUT + MENUITEM "&Copy", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Delete", FCIDM_SHVIEW_DELETE - MENUITEM "&Rename", FCIDM_SHVIEW_RENAME + MENUITEM "Create &Link", IDM_CREATELINK + MENUITEM "&Delete", IDM_DELETE + MENUITEM "&Rename", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Properties", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/nl-NL.rc b/reactos/dll/win32/shell32/lang/nl-NL.rc index 2d56646ac5d..90f1ad2c07b 100644 --- a/reactos/dll/win32/shell32/lang/nl-NL.rc +++ b/reactos/dll/win32/shell32/lang/nl-NL.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Open", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ut", FCIDM_SHVIEW_CUT - MENUITEM "&Copy", FCIDM_SHVIEW_COPY + MENUITEM "C&ut", IDM_CUT + MENUITEM "&Copy", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Delete", FCIDM_SHVIEW_DELETE - MENUITEM "&Rename", FCIDM_SHVIEW_RENAME + MENUITEM "Create &Link", IDM_CREATELINK + MENUITEM "&Delete", IDM_DELETE + MENUITEM "&Rename", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Properties", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/no-NO.rc b/reactos/dll/win32/shell32/lang/no-NO.rc index 71ac4985ddd..9e6f4b2ee53 100644 --- a/reactos/dll/win32/shell32/lang/no-NO.rc +++ b/reactos/dll/win32/shell32/lang/no-NO.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Utforsk", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Åpne", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "Klipp &ut", FCIDM_SHVIEW_CUT - MENUITEM "&Kopier", FCIDM_SHVIEW_COPY + MENUITEM "Klipp &ut", IDM_CUT + MENUITEM "&Kopier", IDM_COPY MENUITEM SEPARATOR - MENUITEM "&Opprett snarvei", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Slett", FCIDM_SHVIEW_DELETE - MENUITEM "&Gi nytt navn", FCIDM_SHVIEW_RENAME + MENUITEM "&Opprett snarvei", IDM_CREATELINK + MENUITEM "&Slett", IDM_DELETE + MENUITEM "&Gi nytt navn", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "Egenska&per", FCIDM_SHVIEW_PROPERTIES + MENUITEM "Egenska&per", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/pl-PL.rc b/reactos/dll/win32/shell32/lang/pl-PL.rc index 34fbdc543ea..e8e0b51b0c2 100644 --- a/reactos/dll/win32/shell32/lang/pl-PL.rc +++ b/reactos/dll/win32/shell32/lang/pl-PL.rc @@ -67,17 +67,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Eksploruj", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Otwórz", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Wytnij", FCIDM_SHVIEW_CUT - MENUITEM "&Kopiuj", FCIDM_SHVIEW_COPY + MENUITEM "&Wytnij", IDM_CUT + MENUITEM "&Kopiuj", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Utwórz &Skrót", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Usuń", FCIDM_SHVIEW_DELETE - MENUITEM "&Zmień nazwę", FCIDM_SHVIEW_RENAME + MENUITEM "Utwórz &Skrót", IDM_CREATELINK + MENUITEM "&Usuń", IDM_DELETE + MENUITEM "&Zmień nazwę", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "Wł&aściwości", FCIDM_SHVIEW_PROPERTIES + MENUITEM "Wł&aściwości", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/pt-BR.rc b/reactos/dll/win32/shell32/lang/pt-BR.rc index 4beff0ca5aa..2c894a3cad3 100644 --- a/reactos/dll/win32/shell32/lang/pt-BR.rc +++ b/reactos/dll/win32/shell32/lang/pt-BR.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Explorar", FCIDM_SHVIEW_EXPLORE - MENUITEM "A&brir", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ortar", FCIDM_SHVIEW_CUT - MENUITEM "&Copiar", FCIDM_SHVIEW_COPY + MENUITEM "C&ortar", IDM_CUT + MENUITEM "&Copiar", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Criar a&talho", FCIDM_SHVIEW_CREATELINK - MENUITEM "E&xcluir", FCIDM_SHVIEW_DELETE - MENUITEM "&Renomear", FCIDM_SHVIEW_RENAME + MENUITEM "Criar a&talho", IDM_CREATELINK + MENUITEM "E&xcluir", IDM_DELETE + MENUITEM "&Renomear", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Propriedades", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Propriedades", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/pt-PT.rc b/reactos/dll/win32/shell32/lang/pt-PT.rc index ae6db0bff89..5ec0a0b08d9 100644 --- a/reactos/dll/win32/shell32/lang/pt-PT.rc +++ b/reactos/dll/win32/shell32/lang/pt-PT.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplorador", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Abrir", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ortar", FCIDM_SHVIEW_CUT - MENUITEM "&Copiar", FCIDM_SHVIEW_COPY + MENUITEM "C&ortar", IDM_CUT + MENUITEM "&Copiar", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Criar &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Apagar", FCIDM_SHVIEW_DELETE - MENUITEM "&Renomear", FCIDM_SHVIEW_RENAME + MENUITEM "Criar &Link", IDM_CREATELINK + MENUITEM "&Apagar", IDM_DELETE + MENUITEM "&Renomear", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Propriadades", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Propriadades", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/ro-RO.rc b/reactos/dll/win32/shell32/lang/ro-RO.rc index e2894c63fe0..031520c78b1 100644 --- a/reactos/dll/win32/shell32/lang/ro-RO.rc +++ b/reactos/dll/win32/shell32/lang/ro-RO.rc @@ -65,17 +65,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplorează", FCIDM_SHVIEW_EXPLORE - MENUITEM "Desc&hide", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Decupează", FCIDM_SHVIEW_CUT - MENUITEM "&Copiază", FCIDM_SHVIEW_COPY + MENUITEM "&Decupează", IDM_CUT + MENUITEM "&Copiază", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Crează sc&urtătură", FCIDM_SHVIEW_CREATELINK - MENUITEM "Șt&erge", FCIDM_SHVIEW_DELETE - MENUITEM "&Redenumește", FCIDM_SHVIEW_RENAME + MENUITEM "Crează sc&urtătură", IDM_CREATELINK + MENUITEM "Șt&erge", IDM_DELETE + MENUITEM "&Redenumește", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Proprietăți", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Proprietăți", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/ru-RU.rc b/reactos/dll/win32/shell32/lang/ru-RU.rc index cae2c420c52..678b8f793ad 100644 --- a/reactos/dll/win32/shell32/lang/ru-RU.rc +++ b/reactos/dll/win32/shell32/lang/ru-RU.rc @@ -65,17 +65,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Проводник", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Открыть", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Вырезать", FCIDM_SHVIEW_CUT - MENUITEM "&Копировать", FCIDM_SHVIEW_COPY + MENUITEM "&Вырезать", IDM_CUT + MENUITEM "&Копировать", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Создать &ярлык", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Удалить", FCIDM_SHVIEW_DELETE - MENUITEM "Переи&меновать", FCIDM_SHVIEW_RENAME + MENUITEM "Создать &ярлык", IDM_CREATELINK + MENUITEM "&Удалить", IDM_DELETE + MENUITEM "Переи&меновать", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "Сво&йства", FCIDM_SHVIEW_PROPERTIES + MENUITEM "Сво&йства", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/sk-SK.rc b/reactos/dll/win32/shell32/lang/sk-SK.rc index ddcec467fa8..a3485f397b8 100644 --- a/reactos/dll/win32/shell32/lang/sk-SK.rc +++ b/reactos/dll/win32/shell32/lang/sk-SK.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Preskúmať", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Otvoriť", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Vystrihnúť", FCIDM_SHVIEW_CUT - MENUITEM "&Kopírovať", FCIDM_SHVIEW_COPY + MENUITEM "&Vystrihnúť", IDM_CUT + MENUITEM "&Kopírovať", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Vytvoriť o&dkaz", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Odstrániť", FCIDM_SHVIEW_DELETE - MENUITEM "Pre&menovať", FCIDM_SHVIEW_RENAME + MENUITEM "Vytvoriť o&dkaz", IDM_CREATELINK + MENUITEM "&Odstrániť", IDM_DELETE + MENUITEM "Pre&menovať", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "Vl&astnosti", FCIDM_SHVIEW_PROPERTIES + MENUITEM "Vl&astnosti", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/sl-SI.rc b/reactos/dll/win32/shell32/lang/sl-SI.rc index 99621dc3b01..65be36e0a95 100644 --- a/reactos/dll/win32/shell32/lang/sl-SI.rc +++ b/reactos/dll/win32/shell32/lang/sl-SI.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Open", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ut", FCIDM_SHVIEW_CUT - MENUITEM "&Copy", FCIDM_SHVIEW_COPY + MENUITEM "C&ut", IDM_CUT + MENUITEM "&Copy", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Delete", FCIDM_SHVIEW_DELETE - MENUITEM "&Rename", FCIDM_SHVIEW_RENAME + MENUITEM "Create &Link", IDM_CREATELINK + MENUITEM "&Delete", IDM_DELETE + MENUITEM "&Rename", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Properties", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/sq-AL.rc b/reactos/dll/win32/shell32/lang/sq-AL.rc index a8d487c324e..da1b8b60a83 100644 --- a/reactos/dll/win32/shell32/lang/sq-AL.rc +++ b/reactos/dll/win32/shell32/lang/sq-AL.rc @@ -67,17 +67,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplorues", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Hap", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "Prej", FCIDM_SHVIEW_CUT - MENUITEM "&Kopjo", FCIDM_SHVIEW_COPY + MENUITEM "Prej", IDM_CUT + MENUITEM "&Kopjo", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Krijo &Lidhje", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Fshi", FCIDM_SHVIEW_DELETE - MENUITEM "&Riemërto", FCIDM_SHVIEW_RENAME + MENUITEM "Krijo &Lidhje", IDM_CREATELINK + MENUITEM "&Fshi", IDM_DELETE + MENUITEM "&Riemërto", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Cilësime", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Cilësime", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/sv-SE.rc b/reactos/dll/win32/shell32/lang/sv-SE.rc index 70679538c02..449f75a8ece 100644 --- a/reactos/dll/win32/shell32/lang/sv-SE.rc +++ b/reactos/dll/win32/shell32/lang/sv-SE.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "U&tforska", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Öppna", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "K&lipp ut", FCIDM_SHVIEW_CUT - MENUITEM "&Kopiera", FCIDM_SHVIEW_COPY + MENUITEM "K&lipp ut", IDM_CUT + MENUITEM "&Kopiera", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Skapa &genväg", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Ta bort", FCIDM_SHVIEW_DELETE - MENUITEM "&Byt namn", FCIDM_SHVIEW_RENAME + MENUITEM "Skapa &genväg", IDM_CREATELINK + MENUITEM "&Ta bort", IDM_DELETE + MENUITEM "&Byt namn", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Egenskaper", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Egenskaper", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/tr-TR.rc b/reactos/dll/win32/shell32/lang/tr-TR.rc index 6d982e376e3..c8c7bc3cb3e 100644 --- a/reactos/dll/win32/shell32/lang/tr-TR.rc +++ b/reactos/dll/win32/shell32/lang/tr-TR.rc @@ -65,17 +65,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "A&raştır", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Aç", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Kes", FCIDM_SHVIEW_CUT - MENUITEM "&Çoğalt", FCIDM_SHVIEW_COPY + MENUITEM "&Kes", IDM_CUT + MENUITEM "&Çoğalt", IDM_COPY MENUITEM SEPARATOR - MENUITEM "K&ısayol Oluştur", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Sil", FCIDM_SHVIEW_DELETE - MENUITEM "&Yeniden Adlandır", FCIDM_SHVIEW_RENAME + MENUITEM "K&ısayol Oluştur", IDM_CREATELINK + MENUITEM "&Sil", IDM_DELETE + MENUITEM "&Yeniden Adlandır", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Husûsîyetler", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Husûsîyetler", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/uk-UA.rc b/reactos/dll/win32/shell32/lang/uk-UA.rc index 0096411b3fe..91da7e5713d 100644 --- a/reactos/dll/win32/shell32/lang/uk-UA.rc +++ b/reactos/dll/win32/shell32/lang/uk-UA.rc @@ -63,17 +63,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "&Провідник", FCIDM_SHVIEW_EXPLORE - MENUITEM "В&ідкрити", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "&Вирізати", FCIDM_SHVIEW_CUT - MENUITEM "&Копіювати", FCIDM_SHVIEW_COPY + MENUITEM "&Вирізати", IDM_CUT + MENUITEM "&Копіювати", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Створити &ярлик", FCIDM_SHVIEW_CREATELINK - MENUITEM "В&идалити", FCIDM_SHVIEW_DELETE - MENUITEM "Перей&менувати", FCIDM_SHVIEW_RENAME + MENUITEM "Створити &ярлик", IDM_CREATELINK + MENUITEM "В&идалити", IDM_DELETE + MENUITEM "Перей&менувати", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "В&ластивості", FCIDM_SHVIEW_PROPERTIES + MENUITEM "В&ластивості", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/zh-CN.rc b/reactos/dll/win32/shell32/lang/zh-CN.rc index 27cda4db17c..db6caa83f98 100644 --- a/reactos/dll/win32/shell32/lang/zh-CN.rc +++ b/reactos/dll/win32/shell32/lang/zh-CN.rc @@ -72,17 +72,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "浏览(&X)", FCIDM_SHVIEW_EXPLORE - MENUITEM "打开(&O)", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "剪切(&U)", FCIDM_SHVIEW_CUT - MENUITEM "复制(&C)", FCIDM_SHVIEW_COPY + MENUITEM "剪切(&U)", IDM_CUT + MENUITEM "复制(&C)", IDM_COPY MENUITEM SEPARATOR - MENUITEM "创建快捷方式(&L)", FCIDM_SHVIEW_CREATELINK - MENUITEM "删除(&D)", FCIDM_SHVIEW_DELETE - MENUITEM "重命名(&R)", FCIDM_SHVIEW_RENAME + MENUITEM "创建快捷方式(&L)", IDM_CREATELINK + MENUITEM "删除(&D)", IDM_DELETE + MENUITEM "重命名(&R)", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "属性(&P)", FCIDM_SHVIEW_PROPERTIES + MENUITEM "属性(&P)", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/lang/zh-TW.rc b/reactos/dll/win32/shell32/lang/zh-TW.rc index 858b8a3e9de..217037a327c 100644 --- a/reactos/dll/win32/shell32/lang/zh-TW.rc +++ b/reactos/dll/win32/shell32/lang/zh-TW.rc @@ -71,17 +71,15 @@ MENU_SHV_FILE MENU BEGIN POPUP "" BEGIN - MENUITEM "E&xplore", FCIDM_SHVIEW_EXPLORE - MENUITEM "&Open", FCIDM_SHVIEW_OPEN MENUITEM SEPARATOR - MENUITEM "C&ut", FCIDM_SHVIEW_CUT - MENUITEM "&Copy", FCIDM_SHVIEW_COPY + MENUITEM "C&ut", IDM_CUT + MENUITEM "&Copy", IDM_COPY MENUITEM SEPARATOR - MENUITEM "Create &Link", FCIDM_SHVIEW_CREATELINK - MENUITEM "&Delete", FCIDM_SHVIEW_DELETE - MENUITEM "&Rename", FCIDM_SHVIEW_RENAME + MENUITEM "Create &Link", IDM_CREATELINK + MENUITEM "&Delete", IDM_DELETE + MENUITEM "&Rename", IDM_RENAME MENUITEM SEPARATOR - MENUITEM "&Properties", FCIDM_SHVIEW_PROPERTIES + MENUITEM "&Properties", IDM_PROPERTIES END END diff --git a/reactos/dll/win32/shell32/shresdef.h b/reactos/dll/win32/shell32/shresdef.h index 37a418bef1f..61da35a4ddd 100644 --- a/reactos/dll/win32/shell32/shresdef.h +++ b/reactos/dll/win32/shell32/shresdef.h @@ -658,6 +658,14 @@ #define FCIDM_TB_REPORTVIEW 0xA004 #define FCIDM_TB_DESKTOP 0xA005 /* FIXME */ +#define IDM_CUT (FCIDM_SHVIEW_CUT - 0x7000) +#define IDM_COPY (FCIDM_SHVIEW_COPY - 0x7000) +#define IDM_INSERT (FCIDM_SHVIEW_INSERT - 0x7000) +#define IDM_CREATELINK (FCIDM_SHVIEW_CREATELINK - 0x7000) +#define IDM_DELETE (FCIDM_SHVIEW_DELETE - 0x7000) +#define IDM_RENAME (FCIDM_SHVIEW_RENAME - 0x7000) +#define IDM_PROPERTIES (FCIDM_SHVIEW_PROPERTIES - 0x7000) + /* Registrar scripts (RGS) */ #define IDR_ADMINFOLDERSHORTCUT 128 #define IDR_CONTROLPANEL 130