https://git.reactos.org/?p=reactos.git;a=commitdiff;h=46ff964e22a969377ec312...
commit 46ff964e22a969377ec312cbe6b7731a7f50942b Author: Katayama Hirofumi MZ katayama.hirofumi.mz@gmail.com AuthorDate: Tue Aug 18 05:30:54 2020 +0900 Commit: GitHub noreply@github.com CommitDate: Tue Aug 18 05:30:54 2020 +0900
[SHELL32] Implement Move To Folder (#3056)
- Add context menu item "Mo&ve to folder..." and implement the action. - Implement the "Mo&ve to folder..." menu item of "Edit" menu of Explorer. CORE-11132 --- dll/win32/shell32/CCopyToMenu.cpp | 3 +- .../shell32/{CCopyToMenu.h => CCopyToMoveToMenu.h} | 55 +++++++++- dll/win32/shell32/CDefView.cpp | 1 + dll/win32/shell32/CDefaultContextMenu.cpp | 22 +++- dll/win32/shell32/CMakeLists.txt | 1 + .../shell32/{CCopyToMenu.cpp => CMoveToMenu.cpp} | 111 ++++++++------------- dll/win32/shell32/lang/bg-BG.rc | 4 + dll/win32/shell32/lang/ca-ES.rc | 4 + dll/win32/shell32/lang/cs-CZ.rc | 4 + dll/win32/shell32/lang/da-DK.rc | 4 + dll/win32/shell32/lang/de-DE.rc | 4 + dll/win32/shell32/lang/el-GR.rc | 4 + dll/win32/shell32/lang/en-GB.rc | 4 + dll/win32/shell32/lang/en-US.rc | 4 + dll/win32/shell32/lang/es-ES.rc | 4 + dll/win32/shell32/lang/et-EE.rc | 4 + dll/win32/shell32/lang/fi-FI.rc | 4 + dll/win32/shell32/lang/fr-FR.rc | 4 + dll/win32/shell32/lang/he-IL.rc | 4 + dll/win32/shell32/lang/hi-IN.rc | 4 + dll/win32/shell32/lang/hu-HU.rc | 4 + dll/win32/shell32/lang/id-ID.rc | 4 + dll/win32/shell32/lang/it-IT.rc | 4 + dll/win32/shell32/lang/ja-JP.rc | 4 + dll/win32/shell32/lang/ko-KR.rc | 4 + dll/win32/shell32/lang/nl-NL.rc | 4 + dll/win32/shell32/lang/no-NO.rc | 4 + dll/win32/shell32/lang/pl-PL.rc | 4 + dll/win32/shell32/lang/pt-BR.rc | 4 + dll/win32/shell32/lang/pt-PT.rc | 4 + dll/win32/shell32/lang/ro-RO.rc | 4 + dll/win32/shell32/lang/ru-RU.rc | 4 + dll/win32/shell32/lang/sk-SK.rc | 4 + dll/win32/shell32/lang/sl-SI.rc | 4 + dll/win32/shell32/lang/sq-AL.rc | 4 + dll/win32/shell32/lang/sv-SE.rc | 4 + dll/win32/shell32/lang/tr-TR.rc | 4 + dll/win32/shell32/lang/uk-UA.rc | 4 + dll/win32/shell32/lang/zh-CN.rc | 4 + dll/win32/shell32/lang/zh-TW.rc | 4 + dll/win32/shell32/precomp.h | 2 +- dll/win32/shell32/res/rgs/movetomenu.rgs | 26 +++++ dll/win32/shell32/rgs_res.rc | 1 + dll/win32/shell32/shell32.cpp | 1 + dll/win32/shell32/shresdef.h | 6 ++ 45 files changed, 286 insertions(+), 79 deletions(-)
diff --git a/dll/win32/shell32/CCopyToMenu.cpp b/dll/win32/shell32/CCopyToMenu.cpp index bc1325bb86d..a20ed449abe 100644 --- a/dll/win32/shell32/CCopyToMenu.cpp +++ b/dll/win32/shell32/CCopyToMenu.cpp @@ -9,8 +9,7 @@
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-static HRESULT -_GetCidlFromDataObject(IDataObject *pDataObject, CIDA** ppcida) +HRESULT _GetCidlFromDataObject(IDataObject *pDataObject, CIDA** ppcida) { static CLIPFORMAT s_cfHIDA = 0; if (s_cfHIDA == 0) diff --git a/dll/win32/shell32/CCopyToMenu.h b/dll/win32/shell32/CCopyToMoveToMenu.h similarity index 51% rename from dll/win32/shell32/CCopyToMenu.h rename to dll/win32/shell32/CCopyToMoveToMenu.h index a56cba111de..da61ca14284 100644 --- a/dll/win32/shell32/CCopyToMenu.h +++ b/dll/win32/shell32/CCopyToMoveToMenu.h @@ -1,11 +1,13 @@ /* * PROJECT: shell32 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) - * PURPOSE: CopyTo implementation + * PURPOSE: CopyTo and MoveTo implementation * COPYRIGHT: Copyright 2020 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) */ #pragma once
+HRESULT _GetCidlFromDataObject(IDataObject *pDataObject, CIDA** ppcida); + class CCopyToMenu : public CComCoClass<CCopyToMenu, &CLSID_CopyToMenu>, public CComObjectRootEx<CComMultiThreadModelNoCS>, @@ -56,3 +58,54 @@ public: COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite) END_COM_MAP() }; + +class CMoveToMenu : + public CComCoClass<CMoveToMenu, &CLSID_MoveToMenu>, + public CComObjectRootEx<CComMultiThreadModelNoCS>, + public IContextMenu2, + public IObjectWithSite, + public IShellExtInit +{ +protected: + UINT m_idCmdFirst, m_idCmdLast, m_idCmdMoveTo; + CComPtr<IDataObject> m_pDataObject; + CComPtr<IUnknown> m_pSite; + + HRESULT DoMoveToFolder(LPCMINVOKECOMMANDINFO lpici); + HRESULT DoRealMove(LPCMINVOKECOMMANDINFO lpici, PCUIDLIST_ABSOLUTE pidl); + CStringW DoGetFileTitle(); + +public: + CComHeapPtr<ITEMIDLIST> m_pidlFolder; + WNDPROC m_fnOldWndProc; + + CMoveToMenu(); + ~CMoveToMenu(); + + // IContextMenu + virtual HRESULT WINAPI QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, UINT uFlags); + virtual HRESULT WINAPI InvokeCommand(LPCMINVOKECOMMANDINFO lpcmi); + virtual HRESULT WINAPI GetCommandString(UINT_PTR idCommand, UINT uFlags, UINT *lpReserved, LPSTR lpszName, UINT uMaxNameLen); + + // IContextMenu2 + virtual HRESULT WINAPI HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam); + + // IShellExtInit + virtual HRESULT WINAPI Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID); + + // IObjectWithSite + virtual HRESULT WINAPI SetSite(IUnknown *pUnkSite); + virtual HRESULT WINAPI GetSite(REFIID riid, void **ppvSite); + + DECLARE_REGISTRY_RESOURCEID(IDR_MOVETOMENU) + DECLARE_NOT_AGGREGATABLE(CMoveToMenu) + + DECLARE_PROTECT_FINAL_CONSTRUCT() + + BEGIN_COM_MAP(CMoveToMenu) + COM_INTERFACE_ENTRY_IID(IID_IContextMenu2, IContextMenu2) + COM_INTERFACE_ENTRY_IID(IID_IContextMenu, IContextMenu) + COM_INTERFACE_ENTRY_IID(IID_IShellExtInit, IShellExtInit) + COM_INTERFACE_ENTRY_IID(IID_IObjectWithSite, IObjectWithSite) + END_COM_MAP() +}; diff --git a/dll/win32/shell32/CDefView.cpp b/dll/win32/shell32/CDefView.cpp index a42d4d495cb..6948e572958 100644 --- a/dll/win32/shell32/CDefView.cpp +++ b/dll/win32/shell32/CDefView.cpp @@ -1823,6 +1823,7 @@ LRESULT CDefView::OnCommand(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL &bHand case FCIDM_SHVIEW_RENAME: case FCIDM_SHVIEW_PROPERTIES: case FCIDM_SHVIEW_COPYTO: + case FCIDM_SHVIEW_MOVETO: return OnExplorerCommand(dwCmdID, TRUE);
case FCIDM_SHVIEW_INSERT: diff --git a/dll/win32/shell32/CDefaultContextMenu.cpp b/dll/win32/shell32/CDefaultContextMenu.cpp index a717078f70b..30d1433df65 100644 --- a/dll/win32/shell32/CDefaultContextMenu.cpp +++ b/dll/win32/shell32/CDefaultContextMenu.cpp @@ -49,6 +49,7 @@ struct _StaticInvokeCommandMap_ { "properties", FCIDM_SHVIEW_PROPERTIES}, { "rename", FCIDM_SHVIEW_RENAME}, { "copyto", FCIDM_SHVIEW_COPYTO }, + { "moveto", FCIDM_SHVIEW_MOVETO }, };
class CDefaultContextMenu : @@ -95,7 +96,7 @@ class CDefaultContextMenu : HRESULT DoRename(LPCMINVOKECOMMANDINFO lpcmi); HRESULT DoProperties(LPCMINVOKECOMMANDINFO lpcmi); HRESULT DoCreateNewFolder(LPCMINVOKECOMMANDINFO lpici); - HRESULT DoCopyToFolder(LPCMINVOKECOMMANDINFO lpici); + HRESULT DoCopyToMoveToFolder(LPCMINVOKECOMMANDINFO lpici, BOOL bCopy); HRESULT InvokeShellExt(LPCMINVOKECOMMANDINFO lpcmi); HRESULT InvokeRegVerb(LPCMINVOKECOMMANDINFO lpcmi); DWORD BrowserFlagsFromVerb(LPCMINVOKECOMMANDINFO lpcmi, PStaticShellEntry pEntry); @@ -895,7 +896,7 @@ CDefaultContextMenu::DoProperties( }
HRESULT -CDefaultContextMenu::DoCopyToFolder(LPCMINVOKECOMMANDINFO lpici) +CDefaultContextMenu::DoCopyToMoveToFolder(LPCMINVOKECOMMANDINFO lpici, BOOL bCopy) { HRESULT hr = E_FAIL; if (!m_pDataObj) @@ -905,7 +906,12 @@ CDefaultContextMenu::DoCopyToFolder(LPCMINVOKECOMMANDINFO lpici) }
CComPtr<IContextMenu> pContextMenu; - hr = SHCoCreateInstance(NULL, &CLSID_CopyToMenu, NULL, IID_PPV_ARG(IContextMenu, &pContextMenu)); + if (bCopy) + hr = SHCoCreateInstance(NULL, &CLSID_CopyToMenu, NULL, + IID_PPV_ARG(IContextMenu, &pContextMenu)); + else + hr = SHCoCreateInstance(NULL, &CLSID_MoveToMenu, NULL, + IID_PPV_ARG(IContextMenu, &pContextMenu)); if (FAILED_UNEXPECTEDLY(hr)) return hr;
@@ -918,7 +924,10 @@ CDefaultContextMenu::DoCopyToFolder(LPCMINVOKECOMMANDINFO lpici) if (FAILED_UNEXPECTEDLY(hr)) return hr;
- lpici->lpVerb = "copyto"; + if (bCopy) + lpici->lpVerb = "copyto"; + else + lpici->lpVerb = "moveto";
return pContextMenu->InvokeCommand(lpici); } @@ -1279,7 +1288,10 @@ CDefaultContextMenu::InvokeCommand( Result = DoCreateNewFolder(&LocalInvokeInfo); break; case FCIDM_SHVIEW_COPYTO: - Result = DoCopyToFolder(&LocalInvokeInfo); + Result = DoCopyToMoveToFolder(&LocalInvokeInfo, TRUE); + break; + case FCIDM_SHVIEW_MOVETO: + Result = DoCopyToMoveToFolder(&LocalInvokeInfo, FALSE); break; default: Result = E_INVALIDARG; diff --git a/dll/win32/shell32/CMakeLists.txt b/dll/win32/shell32/CMakeLists.txt index aa51a47fe43..5c812e953e4 100644 --- a/dll/win32/shell32/CMakeLists.txt +++ b/dll/win32/shell32/CMakeLists.txt @@ -84,6 +84,7 @@ list(APPEND SOURCE CNewMenu.cpp CSendToMenu.cpp CCopyToMenu.cpp + CMoveToMenu.cpp CShellDispatch.cpp CFolder.cpp CFolderItems.cpp diff --git a/dll/win32/shell32/CCopyToMenu.cpp b/dll/win32/shell32/CMoveToMenu.cpp similarity index 73% copy from dll/win32/shell32/CCopyToMenu.cpp copy to dll/win32/shell32/CMoveToMenu.cpp index bc1325bb86d..020a8e70b8a 100644 --- a/dll/win32/shell32/CCopyToMenu.cpp +++ b/dll/win32/shell32/CMoveToMenu.cpp @@ -1,7 +1,7 @@ /* * PROJECT: shell32 * LICENSE: GPL-2.0-or-later (https://spdx.org/licenses/GPL-2.0-or-later) - * PURPOSE: CopyTo implementation + * PURPOSE: MoveTo implementation * COPYRIGHT: Copyright 2020 Katayama Hirofumi MZ (katayama.hirofumi.mz@gmail.com) */
@@ -9,48 +9,14 @@
WINE_DEFAULT_DEBUG_CHANNEL(shell);
-static HRESULT -_GetCidlFromDataObject(IDataObject *pDataObject, CIDA** ppcida) -{ - static CLIPFORMAT s_cfHIDA = 0; - if (s_cfHIDA == 0) - { - s_cfHIDA = static_cast<CLIPFORMAT>(RegisterClipboardFormatW(CFSTR_SHELLIDLIST)); - } - - FORMATETC fmt = { s_cfHIDA, NULL, DVASPECT_CONTENT, -1, TYMED_HGLOBAL }; - STGMEDIUM medium; - - HRESULT hr = pDataObject->GetData(&fmt, &medium); - if (FAILED_UNEXPECTEDLY(hr)) - return hr; - - LPVOID lpSrc = GlobalLock(medium.hGlobal); - SIZE_T cbSize = GlobalSize(medium.hGlobal); - - *ppcida = reinterpret_cast<CIDA *>(::CoTaskMemAlloc(cbSize)); - if (*ppcida) - { - memcpy(*ppcida, lpSrc, cbSize); - hr = S_OK; - } - else - { - ERR("Out of memory\n"); - hr = E_FAIL; - } - ReleaseStgMedium(&medium); - return hr; -} - -CCopyToMenu::CCopyToMenu() : +CMoveToMenu::CMoveToMenu() : m_idCmdFirst(0), m_idCmdLast(0), - m_idCmdCopyTo(-1) + m_idCmdMoveTo(-1) { }
-CCopyToMenu::~CCopyToMenu() +CMoveToMenu::~CMoveToMenu() { }
@@ -59,8 +25,8 @@ CCopyToMenu::~CCopyToMenu() static LRESULT CALLBACK WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) { - CCopyToMenu *this_ = - reinterpret_cast<CCopyToMenu *>(GetWindowLongPtr(hwnd, GWLP_USERDATA)); + CMoveToMenu *this_ = + reinterpret_cast<CMoveToMenu *>(GetWindowLongPtr(hwnd, GWLP_USERDATA));
switch (uMsg) { @@ -74,27 +40,27 @@ WindowProc(HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam) static int CALLBACK BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) { - CCopyToMenu *this_ = - reinterpret_cast<CCopyToMenu *>(GetWindowLongPtr(hwnd, GWLP_USERDATA)); + CMoveToMenu *this_ = + reinterpret_cast<CMoveToMenu *>(GetWindowLongPtr(hwnd, GWLP_USERDATA));
switch (uMsg) { case BFFM_INITIALIZED: { SetWindowLongPtr(hwnd, GWLP_USERDATA, lpData); - this_ = reinterpret_cast<CCopyToMenu *>(lpData); + this_ = reinterpret_cast<CMoveToMenu *>(lpData);
// Select initial directory SendMessageW(hwnd, BFFM_SETSELECTION, FALSE, reinterpret_cast<LPARAM>(static_cast<LPCITEMIDLIST>(this_->m_pidlFolder)));
// Set caption - CString strCaption(MAKEINTRESOURCEW(IDS_COPYITEMS)); + CString strCaption(MAKEINTRESOURCEW(IDS_MOVEITEMS)); SetWindowTextW(hwnd, strCaption);
// Set OK button text - CString strCopy(MAKEINTRESOURCEW(IDS_COPYBUTTON)); - SetDlgItemText(hwnd, IDOK, strCopy); + CString strMove(MAKEINTRESOURCEW(IDS_MOVEBUTTON)); + SetDlgItemText(hwnd, IDOK, strMove);
// Subclassing this_->m_fnOldWndProc = @@ -126,7 +92,7 @@ BrowseCallbackProc(HWND hwnd, UINT uMsg, LPARAM lParam, LPARAM lpData) return FALSE; }
-HRESULT CCopyToMenu::DoRealCopy(LPCMINVOKECOMMANDINFO lpici, LPCITEMIDLIST pidl) +HRESULT CMoveToMenu::DoRealMove(LPCMINVOKECOMMANDINFO lpici, LPCITEMIDLIST pidl) { CComHeapPtr<CIDA> pCIDA; HRESULT hr = _GetCidlFromDataObject(m_pDataObject, &pCIDA); @@ -178,14 +144,14 @@ HRESULT CCopyToMenu::DoRealCopy(LPCMINVOKECOMMANDINFO lpici, LPCITEMIDLIST pidl) }
SHFILEOPSTRUCTW op = { lpici->hwnd }; - op.wFunc = FO_COPY; + op.wFunc = FO_MOVE; op.pFrom = strFiles; op.pTo = szPath; op.fFlags = FOF_ALLOWUNDO; return ((SHFileOperation(&op) == 0) ? S_OK : E_FAIL); }
-CStringW CCopyToMenu::DoGetFileTitle() +CStringW CMoveToMenu::DoGetFileTitle() { CStringW ret = L"(file)";
@@ -222,12 +188,12 @@ CStringW CCopyToMenu::DoGetFileTitle() return ret; }
-HRESULT CCopyToMenu::DoCopyToFolder(LPCMINVOKECOMMANDINFO lpici) +HRESULT CMoveToMenu::DoMoveToFolder(LPCMINVOKECOMMANDINFO lpici) { WCHAR wszPath[MAX_PATH]; HRESULT hr = E_FAIL;
- TRACE("DoCopyToFolder(%p)\n", lpici); + TRACE("DoMoveToFolder(%p)\n", lpici);
if (!SHGetPathFromIDListW(m_pidlFolder, wszPath)) { @@ -237,7 +203,7 @@ HRESULT CCopyToMenu::DoCopyToFolder(LPCMINVOKECOMMANDINFO lpici)
CStringW strFileTitle = DoGetFileTitle(); CStringW strTitle; - strTitle.Format(IDS_COPYTOTITLE, static_cast<LPCWSTR>(strFileTitle)); + strTitle.Format(IDS_MOVETOTITLE, static_cast<LPCWSTR>(strFileTitle));
BROWSEINFOW info = { lpici->hwnd }; info.pidlRoot = NULL; @@ -248,14 +214,14 @@ HRESULT CCopyToMenu::DoCopyToFolder(LPCMINVOKECOMMANDINFO lpici) CComHeapPtr<ITEMIDLIST> pidl(SHBrowseForFolder(&info)); if (pidl) { - hr = DoRealCopy(lpici, pidl); + hr = DoRealMove(lpici, pidl); }
return hr; }
HRESULT WINAPI -CCopyToMenu::QueryContextMenu(HMENU hMenu, +CMoveToMenu::QueryContextMenu(HMENU hMenu, UINT indexMenu, UINT idCmdFirst, UINT idCmdLast, @@ -264,17 +230,22 @@ CCopyToMenu::QueryContextMenu(HMENU hMenu, MENUITEMINFOW mii; UINT Count = 0;
- TRACE("CCopyToMenu::QueryContextMenu(%p, %u, %u, %u, %u)\n", + TRACE("CMoveToMenu::QueryContextMenu(%p, %u, %u, %u, %u)\n", hMenu, indexMenu, idCmdFirst, idCmdLast, uFlags);
m_idCmdFirst = m_idCmdLast = idCmdFirst;
// insert separator if necessary + CStringW strCopyTo(MAKEINTRESOURCEW(IDS_COPYTOMENU)); + WCHAR szBuff[128]; ZeroMemory(&mii, sizeof(mii)); mii.cbSize = sizeof(mii); mii.fMask = MIIM_TYPE; + mii.dwTypeData = szBuff; + mii.cch = _countof(szBuff); if (GetMenuItemInfoW(hMenu, indexMenu - 1, TRUE, &mii) && - mii.fType != MFT_SEPARATOR) + mii.fType != MFT_SEPARATOR && + !(mii.fType == MFT_STRING && CStringW(szBuff) == strCopyTo)) { ZeroMemory(&mii, sizeof(mii)); mii.cbSize = sizeof(mii); @@ -287,8 +258,8 @@ CCopyToMenu::QueryContextMenu(HMENU hMenu, } }
- // insert "Copy to folder..." - CStringW strText(MAKEINTRESOURCEW(IDS_COPYTOMENU)); + // insert "Move to folder..." + CStringW strText(MAKEINTRESOURCEW(IDS_MOVETOMENU)); ZeroMemory(&mii, sizeof(mii)); mii.cbSize = sizeof(mii); mii.fMask = MIIM_ID | MIIM_TYPE; @@ -298,7 +269,7 @@ CCopyToMenu::QueryContextMenu(HMENU hMenu, mii.wID = m_idCmdLast; if (InsertMenuItemW(hMenu, indexMenu, TRUE, &mii)) { - m_idCmdCopyTo = m_idCmdLast++; + m_idCmdMoveTo = m_idCmdLast++; ++indexMenu; ++Count; } @@ -307,23 +278,23 @@ CCopyToMenu::QueryContextMenu(HMENU hMenu, }
HRESULT WINAPI -CCopyToMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpici) +CMoveToMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpici) { HRESULT hr = E_FAIL; - TRACE("CCopyToMenu::InvokeCommand(%p)\n", lpici); + TRACE("CMoveToMenu::InvokeCommand(%p)\n", lpici);
if (HIWORD(lpici->lpVerb) == 0) { - if (m_idCmdFirst + LOWORD(lpici->lpVerb) == m_idCmdCopyTo) + if (m_idCmdFirst + LOWORD(lpici->lpVerb) == m_idCmdMoveTo) { - hr = DoCopyToFolder(lpici); + hr = DoMoveToFolder(lpici); } } else { - if (::lstrcmpiA(lpici->lpVerb, "copyto") == 0) + if (::lstrcmpiA(lpici->lpVerb, "moveto") == 0) { - hr = DoCopyToFolder(lpici); + hr = DoMoveToFolder(lpici); } }
@@ -331,7 +302,7 @@ CCopyToMenu::InvokeCommand(LPCMINVOKECOMMANDINFO lpici) }
HRESULT WINAPI -CCopyToMenu::GetCommandString(UINT_PTR idCmd, +CMoveToMenu::GetCommandString(UINT_PTR idCmd, UINT uType, UINT *pwReserved, LPSTR pszName, @@ -344,14 +315,14 @@ CCopyToMenu::GetCommandString(UINT_PTR idCmd, }
HRESULT WINAPI -CCopyToMenu::HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam) +CMoveToMenu::HandleMenuMsg(UINT uMsg, WPARAM wParam, LPARAM lParam) { TRACE("This %p uMsg %x\n", this, uMsg); return E_NOTIMPL; }
HRESULT WINAPI -CCopyToMenu::Initialize(PCIDLIST_ABSOLUTE pidlFolder, +CMoveToMenu::Initialize(PCIDLIST_ABSOLUTE pidlFolder, IDataObject *pdtobj, HKEY hkeyProgID) { m_pidlFolder.Attach(ILClone(pidlFolder)); @@ -359,13 +330,13 @@ CCopyToMenu::Initialize(PCIDLIST_ABSOLUTE pidlFolder, return S_OK; }
-HRESULT WINAPI CCopyToMenu::SetSite(IUnknown *pUnkSite) +HRESULT WINAPI CMoveToMenu::SetSite(IUnknown *pUnkSite) { m_pSite = pUnkSite; return S_OK; }
-HRESULT WINAPI CCopyToMenu::GetSite(REFIID riid, void **ppvSite) +HRESULT WINAPI CMoveToMenu::GetSite(REFIID riid, void **ppvSite) { if (!m_pSite) return E_FAIL; diff --git a/dll/win32/shell32/lang/bg-BG.rc b/dll/win32/shell32/lang/bg-BG.rc index 56ca1049511..bbd769dbfe9 100644 --- a/dll/win32/shell32/lang/bg-BG.rc +++ b/dll/win32/shell32/lang/bg-BG.rc @@ -1003,4 +1003,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/ca-ES.rc b/dll/win32/shell32/lang/ca-ES.rc index 8e920649408..5384ca39295 100644 --- a/dll/win32/shell32/lang/ca-ES.rc +++ b/dll/win32/shell32/lang/ca-ES.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/cs-CZ.rc b/dll/win32/shell32/lang/cs-CZ.rc index 4c86a7c5869..c5bcb89937c 100644 --- a/dll/win32/shell32/lang/cs-CZ.rc +++ b/dll/win32/shell32/lang/cs-CZ.rc @@ -1008,4 +1008,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/da-DK.rc b/dll/win32/shell32/lang/da-DK.rc index 6bf29e180b5..f7b56f0c689 100644 --- a/dll/win32/shell32/lang/da-DK.rc +++ b/dll/win32/shell32/lang/da-DK.rc @@ -1008,4 +1008,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/de-DE.rc b/dll/win32/shell32/lang/de-DE.rc index 42e29f229e3..54ea2e4af95 100644 --- a/dll/win32/shell32/lang/de-DE.rc +++ b/dll/win32/shell32/lang/de-DE.rc @@ -1003,4 +1003,8 @@ BEGIN IDS_COPYTOTITLE "Wählen Sie den Ort, in den '%s' kopiert werden soll. Klicken Sie anschließend auf Kopieren." IDS_COPYITEMS "Elemente kopieren" IDS_COPYBUTTON "Kopieren" + IDS_MOVETOMENU "In Ordner &verschieben..." + IDS_MOVETOTITLE "Wählen Sie den Ort, in den '%s' verschoben werden soll. Klicken Sie anschließend auf Verschieben." + IDS_MOVEITEMS "Elemente verschieben" + IDS_MOVEBUTTON "Verschieben" END diff --git a/dll/win32/shell32/lang/el-GR.rc b/dll/win32/shell32/lang/el-GR.rc index fd2bb3cfc42..897ce7ce517 100644 --- a/dll/win32/shell32/lang/el-GR.rc +++ b/dll/win32/shell32/lang/el-GR.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/en-GB.rc b/dll/win32/shell32/lang/en-GB.rc index 4d1f9e55495..ccbbe8e1f09 100644 --- a/dll/win32/shell32/lang/en-GB.rc +++ b/dll/win32/shell32/lang/en-GB.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/en-US.rc b/dll/win32/shell32/lang/en-US.rc index 21f06a42d42..b7b8d80b273 100644 --- a/dll/win32/shell32/lang/en-US.rc +++ b/dll/win32/shell32/lang/en-US.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/es-ES.rc b/dll/win32/shell32/lang/es-ES.rc index bdf04fd74a4..4cad05f2368 100644 --- a/dll/win32/shell32/lang/es-ES.rc +++ b/dll/win32/shell32/lang/es-ES.rc @@ -1011,4 +1011,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/et-EE.rc b/dll/win32/shell32/lang/et-EE.rc index 8585ad68b08..aa53f7bd374 100644 --- a/dll/win32/shell32/lang/et-EE.rc +++ b/dll/win32/shell32/lang/et-EE.rc @@ -1009,4 +1009,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/fi-FI.rc b/dll/win32/shell32/lang/fi-FI.rc index 80356afb3d5..e33bf0b7a1b 100644 --- a/dll/win32/shell32/lang/fi-FI.rc +++ b/dll/win32/shell32/lang/fi-FI.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/fr-FR.rc b/dll/win32/shell32/lang/fr-FR.rc index d209b586591..f032d9311d0 100644 --- a/dll/win32/shell32/lang/fr-FR.rc +++ b/dll/win32/shell32/lang/fr-FR.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/he-IL.rc b/dll/win32/shell32/lang/he-IL.rc index 8d469bf407e..4d5690c40e1 100644 --- a/dll/win32/shell32/lang/he-IL.rc +++ b/dll/win32/shell32/lang/he-IL.rc @@ -1004,4 +1004,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/hi-IN.rc b/dll/win32/shell32/lang/hi-IN.rc index 59be1fd3cbf..ac380f56403 100644 --- a/dll/win32/shell32/lang/hi-IN.rc +++ b/dll/win32/shell32/lang/hi-IN.rc @@ -997,4 +997,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/hu-HU.rc b/dll/win32/shell32/lang/hu-HU.rc index ea91a553c1f..7fa873b907b 100644 --- a/dll/win32/shell32/lang/hu-HU.rc +++ b/dll/win32/shell32/lang/hu-HU.rc @@ -1001,4 +1001,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/id-ID.rc b/dll/win32/shell32/lang/id-ID.rc index 09571a9f2a6..d8b5a0d482f 100644 --- a/dll/win32/shell32/lang/id-ID.rc +++ b/dll/win32/shell32/lang/id-ID.rc @@ -998,4 +998,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/it-IT.rc b/dll/win32/shell32/lang/it-IT.rc index ed3dac4bfc8..c7961cecae8 100644 --- a/dll/win32/shell32/lang/it-IT.rc +++ b/dll/win32/shell32/lang/it-IT.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/ja-JP.rc b/dll/win32/shell32/lang/ja-JP.rc index 3593c981ce7..4d49baf9bf2 100644 --- a/dll/win32/shell32/lang/ja-JP.rc +++ b/dll/win32/shell32/lang/ja-JP.rc @@ -999,4 +999,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/ko-KR.rc b/dll/win32/shell32/lang/ko-KR.rc index 3c46406aab7..1c58188d4e9 100644 --- a/dll/win32/shell32/lang/ko-KR.rc +++ b/dll/win32/shell32/lang/ko-KR.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/nl-NL.rc b/dll/win32/shell32/lang/nl-NL.rc index 26b311387a5..c5b82b3b260 100644 --- a/dll/win32/shell32/lang/nl-NL.rc +++ b/dll/win32/shell32/lang/nl-NL.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/no-NO.rc b/dll/win32/shell32/lang/no-NO.rc index 1831921be23..4e5a739ff65 100644 --- a/dll/win32/shell32/lang/no-NO.rc +++ b/dll/win32/shell32/lang/no-NO.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/pl-PL.rc b/dll/win32/shell32/lang/pl-PL.rc index 44e4bde14f7..3f544061d55 100644 --- a/dll/win32/shell32/lang/pl-PL.rc +++ b/dll/win32/shell32/lang/pl-PL.rc @@ -1008,4 +1008,8 @@ BEGIN IDS_COPYTOTITLE "Zaznacz miejsce, w które chcesz skopiować '%s', a następnie kliknij przycisk Kopiuj." IDS_COPYITEMS "Kopiowanie elementów" IDS_COPYBUTTON "Kopiuj" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/pt-BR.rc b/dll/win32/shell32/lang/pt-BR.rc index 9610e4e0fb6..1052bfe9250 100644 --- a/dll/win32/shell32/lang/pt-BR.rc +++ b/dll/win32/shell32/lang/pt-BR.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/pt-PT.rc b/dll/win32/shell32/lang/pt-PT.rc index f64de677bc9..8c027f41871 100644 --- a/dll/win32/shell32/lang/pt-PT.rc +++ b/dll/win32/shell32/lang/pt-PT.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/ro-RO.rc b/dll/win32/shell32/lang/ro-RO.rc index b4f0e6059aa..eb0f8eb660a 100644 --- a/dll/win32/shell32/lang/ro-RO.rc +++ b/dll/win32/shell32/lang/ro-RO.rc @@ -1004,4 +1004,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/ru-RU.rc b/dll/win32/shell32/lang/ru-RU.rc index 406a0937b34..9080370a56f 100644 --- a/dll/win32/shell32/lang/ru-RU.rc +++ b/dll/win32/shell32/lang/ru-RU.rc @@ -1009,4 +1009,8 @@ BEGIN IDS_COPYTOTITLE "Выберите расположение, куда вы хотите скопировать '%s', затем нажмите кнопку 'Копировать'." IDS_COPYITEMS "Копирование элементов" IDS_COPYBUTTON "Копировать" + IDS_MOVETOMENU "Переместить в папку..." + IDS_MOVETOTITLE "Выберите место, куда Вы хотите переместить '%s'. Затем нажмите кнопку 'Переместить.'" + IDS_MOVEITEMS "Перемещение предметов" + IDS_MOVEBUTTON "Переместить" END diff --git a/dll/win32/shell32/lang/sk-SK.rc b/dll/win32/shell32/lang/sk-SK.rc index 93e87e85cad..1c50c821e27 100644 --- a/dll/win32/shell32/lang/sk-SK.rc +++ b/dll/win32/shell32/lang/sk-SK.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/sl-SI.rc b/dll/win32/shell32/lang/sl-SI.rc index eca49866975..720ebe4bf81 100644 --- a/dll/win32/shell32/lang/sl-SI.rc +++ b/dll/win32/shell32/lang/sl-SI.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/sq-AL.rc b/dll/win32/shell32/lang/sq-AL.rc index fa69346d878..8834bd41517 100644 --- a/dll/win32/shell32/lang/sq-AL.rc +++ b/dll/win32/shell32/lang/sq-AL.rc @@ -1006,4 +1006,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/sv-SE.rc b/dll/win32/shell32/lang/sv-SE.rc index a81f73f5c6a..df2a3b42eaa 100644 --- a/dll/win32/shell32/lang/sv-SE.rc +++ b/dll/win32/shell32/lang/sv-SE.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/tr-TR.rc b/dll/win32/shell32/lang/tr-TR.rc index 519103301b3..f31eef1ddb8 100644 --- a/dll/win32/shell32/lang/tr-TR.rc +++ b/dll/win32/shell32/lang/tr-TR.rc @@ -1004,4 +1004,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/uk-UA.rc b/dll/win32/shell32/lang/uk-UA.rc index 62d8787ec23..d27d60b5808 100644 --- a/dll/win32/shell32/lang/uk-UA.rc +++ b/dll/win32/shell32/lang/uk-UA.rc @@ -1002,4 +1002,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/zh-CN.rc b/dll/win32/shell32/lang/zh-CN.rc index a07f3cfdaf6..44e03161cd2 100644 --- a/dll/win32/shell32/lang/zh-CN.rc +++ b/dll/win32/shell32/lang/zh-CN.rc @@ -1012,4 +1012,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/lang/zh-TW.rc b/dll/win32/shell32/lang/zh-TW.rc index c634e81d2f4..7077460b6a5 100644 --- a/dll/win32/shell32/lang/zh-TW.rc +++ b/dll/win32/shell32/lang/zh-TW.rc @@ -1013,4 +1013,8 @@ BEGIN IDS_COPYTOTITLE "Select the place where you want to copy '%s'. Then click the Copy button." IDS_COPYITEMS "Copy Items" IDS_COPYBUTTON "Copy" + IDS_MOVETOMENU "Mo&ve to folder..." + IDS_MOVETOTITLE "Select the place where you want to move '%s' to. Then click the Move button." + IDS_MOVEITEMS "Move Items" + IDS_MOVEBUTTON "Move" END diff --git a/dll/win32/shell32/precomp.h b/dll/win32/shell32/precomp.h index 2703b42e817..84bb7e49dc5 100644 --- a/dll/win32/shell32/precomp.h +++ b/dll/win32/shell32/precomp.h @@ -81,7 +81,7 @@ #include "COpenWithMenu.h" #include "CNewMenu.h" #include "CSendToMenu.h" -#include "CCopyToMenu.h" +#include "CCopyToMoveToMenu.h" #include "dialogs/filedefext.h" #include "dialogs/drvdefext.h" #include "CQueryAssociations.h" diff --git a/dll/win32/shell32/res/rgs/movetomenu.rgs b/dll/win32/shell32/res/rgs/movetomenu.rgs new file mode 100644 index 00000000000..5d72d749faa --- /dev/null +++ b/dll/win32/shell32/res/rgs/movetomenu.rgs @@ -0,0 +1,26 @@ +HKCR +{ + NoRemove CLSID + { + ForceRemove {C2FBB631-2971-11D1-A18C-00C04FD75D13} = s 'ReactOS MoveTo Object Service' + { + val flags = d '1' + InprocServer32 = s '%MODULE%' + { + val ThreadingModel = s 'Apartment' + } + } + } + NoRemove AllFilesystemObjects + { + NoRemove shellex + { + NoRemove ContextMenuHandlers + { + ForceRemove MoveTo = s '{C2FBB631-2971-11D1-A18C-00C04FD75D13}' + { + } + } + } + } +} diff --git a/dll/win32/shell32/rgs_res.rc b/dll/win32/shell32/rgs_res.rc index 9435241aaaa..9c5aacd0c48 100644 --- a/dll/win32/shell32/rgs_res.rc +++ b/dll/win32/shell32/rgs_res.rc @@ -31,3 +31,4 @@ IDR_SHELL REGISTRY "res/rgs/shell.rgs" IDR_ACTIVEDESKTOP REGISTRY "res/rgs/activedesktop.rgs" IDR_SENDTOMENU REGISTRY "res/rgs/sendtomenu.rgs" IDR_COPYTOMENU REGISTRY "res/rgs/copytomenu.rgs" +IDR_MOVETOMENU REGISTRY "res/rgs/movetomenu.rgs" diff --git a/dll/win32/shell32/shell32.cpp b/dll/win32/shell32/shell32.cpp index 527cbd29342..011d5b2980b 100644 --- a/dll/win32/shell32/shell32.cpp +++ b/dll/win32/shell32/shell32.cpp @@ -291,6 +291,7 @@ BEGIN_OBJECT_MAP(ObjectMap) OBJECT_ENTRY(CLSID_NewMenu, CNewMenu) OBJECT_ENTRY(CLSID_SendToMenu, CSendToMenu) OBJECT_ENTRY(CLSID_CopyToMenu, CCopyToMenu) + OBJECT_ENTRY(CLSID_MoveToMenu, CMoveToMenu) OBJECT_ENTRY(CLSID_StartMenu, CStartMenuDummy) OBJECT_ENTRY(CLSID_MenuBandSite, CMenuSite) OBJECT_ENTRY(CLSID_MenuBand, CMenuBand) diff --git a/dll/win32/shell32/shresdef.h b/dll/win32/shell32/shresdef.h index 81f22f97530..e3be5f4f255 100644 --- a/dll/win32/shell32/shresdef.h +++ b/dll/win32/shell32/shresdef.h @@ -301,6 +301,10 @@ #define IDS_COPYTOTITLE 30533 #define IDS_COPYITEMS 30534 #define IDS_COPYBUTTON 30535 +#define IDS_MOVETOMENU 30536 +#define IDS_MOVETOTITLE 30537 +#define IDS_MOVEITEMS 30538 +#define IDS_MOVEBUTTON 30539
/* Dialogs */
@@ -801,6 +805,7 @@ #define IDM_RENAME (FCIDM_SHVIEW_RENAME - 0x7000) #define IDM_PROPERTIES (FCIDM_SHVIEW_PROPERTIES - 0x7000) #define IDM_COPYTO (FCIDM_SHVIEW_COPYTO - 0x7000) +#define IDM_MOVETO (FCIDM_SHVIEW_MOVETO - 0x7000)
#define IDM_DRAGFILE 0xce #define IDM_COPYHERE 0x7 @@ -842,3 +847,4 @@ #define IDR_ACTIVEDESKTOP 157 #define IDR_SENDTOMENU 158 #define IDR_COPYTOMENU 159 +#define IDR_MOVETOMENU 160