Author: janderwald Date: Fri Sep 18 02:48:47 2009 New Revision: 43070
URL: http://svn.reactos.org/svn/reactos?rev=43070&view=rev Log: - Allow creating a copy of a file residing in the same directory - Free the correct the buffer - Romanian language needs to be updated See issue #4846 for more details.
Modified: trunk/reactos/dll/win32/shell32/lang/bg-BG.rc trunk/reactos/dll/win32/shell32/lang/ca-ES.rc trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc trunk/reactos/dll/win32/shell32/lang/da-DK.rc trunk/reactos/dll/win32/shell32/lang/de-DE.rc trunk/reactos/dll/win32/shell32/lang/el-GR.rc trunk/reactos/dll/win32/shell32/lang/en-GB.rc trunk/reactos/dll/win32/shell32/lang/en-US.rc trunk/reactos/dll/win32/shell32/lang/es-ES.rc trunk/reactos/dll/win32/shell32/lang/fi-FI.rc trunk/reactos/dll/win32/shell32/lang/fr-FR.rc trunk/reactos/dll/win32/shell32/lang/hu-HU.rc trunk/reactos/dll/win32/shell32/lang/it-IT.rc trunk/reactos/dll/win32/shell32/lang/ja-JP.rc trunk/reactos/dll/win32/shell32/lang/ko-KR.rc trunk/reactos/dll/win32/shell32/lang/nl-NL.rc trunk/reactos/dll/win32/shell32/lang/no-NO.rc trunk/reactos/dll/win32/shell32/lang/pl-PL.rc trunk/reactos/dll/win32/shell32/lang/pt-BR.rc trunk/reactos/dll/win32/shell32/lang/pt-PT.rc trunk/reactos/dll/win32/shell32/lang/ru-RU.rc trunk/reactos/dll/win32/shell32/lang/sk-SK.rc trunk/reactos/dll/win32/shell32/lang/sl-SI.rc trunk/reactos/dll/win32/shell32/lang/sv-SE.rc trunk/reactos/dll/win32/shell32/lang/tr-TR.rc trunk/reactos/dll/win32/shell32/lang/uk-UA.rc trunk/reactos/dll/win32/shell32/lang/zh-CN.rc trunk/reactos/dll/win32/shell32/lang/zh-TW.rc trunk/reactos/dll/win32/shell32/precomp.h trunk/reactos/dll/win32/shell32/shfldr_desktop.c trunk/reactos/dll/win32/shell32/shfldr_fs.c trunk/reactos/dll/win32/shell32/shresdef.h trunk/reactos/dll/win32/shell32/shv_def_cmenu.c trunk/reactos/dll/win32/shell32/undocshell.h
Modified: trunk/reactos/dll/win32/shell32/lang/bg-BG.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/bg-B... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/bg-BG.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -749,8 +749,9 @@ IDS_INSTALLNEWFONT "Ñëàãàíå íà íîâ øðèôò..."
IDS_DEFAULT_CLUSTER_SIZE "Ïîäðàçáèðàí ðàçïðåäåëèòåëåí ðàçìåð" -END - - - - + IDS_COPY_OF "Copy of" +END + + + +
Modified: trunk/reactos/dll/win32/shell32/lang/ca-ES.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ca-E... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ca-ES.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/cs-C... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/cs-CZ.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -749,4 +749,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/da-DK.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/da-D... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/da-DK.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -737,4 +737,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/de-DE.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/de-D... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/de-DE.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -752,4 +752,5 @@ IDS_INSTALLNEWFONT "Neue Schriftart installieren..."
IDS_DEFAULT_CLUSTER_SIZE "Standardgröße" -END + IDS_COPY_OF "Kopie von" +END
Modified: trunk/reactos/dll/win32/shell32/lang/el-GR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/el-G... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/el-GR.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -749,4 +749,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/en-GB.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-G... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-GB.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/en-US.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/en-U... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/en-US.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/es-ES.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/es-E... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/es-ES.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -751,4 +751,5 @@ IDS_INSTALLNEWFONT "Instalar Nueva Fuente..."
IDS_DEFAULT_CLUSTER_SIZE "Tamaño asignado por defecto" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/fi-FI.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fi-F... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fi-FI.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/fr-FR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/fr-F... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/fr-FR.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -752,4 +752,5 @@ IDS_INSTALLNEWFONT "Installer une nouvelle police..."
IDS_DEFAULT_CLUSTER_SIZE "Taille d'allocation par défaut" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/hu-HU.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/hu-H... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/hu-HU.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -751,4 +751,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/it-IT.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/it-I... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/it-IT.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -749,4 +749,5 @@ IDS_INSTALLNEWFONT "Installazione nuovi Font..."
IDS_DEFAULT_CLUSTER_SIZE "Dimensione predefinita di allocazione" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/ja-JP.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ja-J... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ja-JP.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -749,4 +749,5 @@ IDS_INSTALLNEWFONT "Vµ¢tHgÌCXg[..."
IDS_DEFAULT_CLUSTER_SIZE "ftHg AP[V TCY" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/ko-KR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ko-K... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ko-KR.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/nl-NL.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/nl-N... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/nl-NL.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/no-NO.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/no-N... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/no-NO.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -751,5 +751,5 @@ IDS_INSTALLNEWFONT "Installere nye skrifttyper..."
IDS_DEFAULT_CLUSTER_SIZE "Standard tildelingsstørrelse" - -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/pl-PL.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pl-P... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pl-PL.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -755,4 +755,5 @@ IDS_INSTALLNEWFONT "Zainstaluj Now¹ Czcionkê..."
IDS_DEFAULT_CLUSTER_SIZE "Domylny rozmiar jednostki alokacji" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/pt-BR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-B... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-BR.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -750,4 +750,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/pt-PT.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/pt-P... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/pt-PT.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -750,4 +750,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/ru-RU.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/ru-R... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/ru-RU.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -747,4 +747,5 @@ IDS_INSTALLNEWFONT "Óñòàíîâèòü íîâûé øðèôò..."
IDS_DEFAULT_CLUSTER_SIZE "Âûäåëÿåìûé ïî óìîë÷àíèþ ðàçìåð" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/sk-SK.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sk-S... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sk-SK.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -754,4 +754,5 @@ IDS_INSTALLNEWFONT "&Naintalova nové písmo..."
IDS_DEFAULT_CLUSTER_SIZE "Predvolená alokaèná ve¾kos" //Default allocation size -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/sl-SI.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sl-S... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sl-SI.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/sv-SE.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/sv-S... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/sv-SE.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/tr-TR.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/tr-T... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/tr-TR.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -748,4 +748,5 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/uk-UA.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/uk-U... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/uk-UA.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -749,4 +749,5 @@ IDS_INSTALLNEWFONT "²íñòàëþâàòè íîâèé øðèôò..."
IDS_DEFAULT_CLUSTER_SIZE "Ðîçì³ð êëàñòåðà çà ïðîìîâ÷àííÿì" -END + IDS_COPY_OF "Copy of" +END
Modified: trunk/reactos/dll/win32/shell32/lang/zh-CN.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-C... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-CN.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -736,5 +736,6 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" -END - + IDS_COPY_OF "Copy of" +END +
Modified: trunk/reactos/dll/win32/shell32/lang/zh-TW.rc URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/lang/zh-T... ============================================================================== --- trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/lang/zh-TW.rc [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -749,7 +749,7 @@ IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size" - + IDS_COPY_OF "Copy of" END
#pragma code_page(default)
Modified: trunk/reactos/dll/win32/shell32/precomp.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/precomp.h... ============================================================================== --- trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/precomp.h [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -60,6 +60,7 @@ #include "version.h" #include "shellfolder.h" #include "xdg.h" +#include "shellapi.h"
#include "wine/debug.h" #include "wine/unicode.h"
Modified: trunk/reactos/dll/win32/shell32/shfldr_desktop.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shfldr_de... ============================================================================== --- trunk/reactos/dll/win32/shell32/shfldr_desktop.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shfldr_desktop.c [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -1289,8 +1289,8 @@ WCHAR szTargetPath[MAX_PATH]; SHFILEOPSTRUCTW op; LPITEMIDLIST pidl; - LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList; - int res; + LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList, pszFileName; + int res, length; STRRET strRet; IGenericSFImpl *This = impl_from_ISFHelper(iface);
@@ -1377,8 +1377,28 @@
res = SHFileOperationW(&op);
- HeapFree(GetProcessHeap(), 0, pszSrc); - HeapFree(GetProcessHeap(), 0, pszTarget); + if (res == DE_SAMEFILE) + { + length = wcslen(szTargetPath); + + + pszFileName = wcsrchr(pszSrcList, '\'); + pszFileName++; + + if (LoadStringW(shell32_hInstance, IDS_COPY_FROM, pszTarget, MAX_PATH - length)) + { + wcscat(szTargetPath, L" "); + } + + wcscat(szTargetPath, pszFileName); + op.pTo = szTargetPath; + + res = SHFileOperationW(&op); + } + + + HeapFree(GetProcessHeap(), 0, pszSrcList); + HeapFree(GetProcessHeap(), 0, pszTargetList);
if (res) return E_FAIL;
Modified: trunk/reactos/dll/win32/shell32/shfldr_fs.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shfldr_fs... ============================================================================== --- trunk/reactos/dll/win32/shell32/shfldr_fs.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shfldr_fs.c [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -1260,16 +1260,17 @@ WCHAR szTargetPath[MAX_PATH]; SHFILEOPSTRUCTW op; LPITEMIDLIST pidl; - LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList; - int res; + LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList, pszFileName; + int res, length; + HRESULT hr; STRRET strRet;
IGenericSFImpl *This = impl_from_ISFHelper(iface);
TRACE ("(%p)->(%p,%u,%p)\n", This, pSFFrom, cidl, apidl);
- IShellFolder_QueryInterface (pSFFrom, &IID_IPersistFolder2, (LPVOID *) & ppf2); - if (ppf2) + hr = IShellFolder_QueryInterface (pSFFrom, &IID_IPersistFolder2, (LPVOID *) & ppf2); + if (SUCCEEDED(hr)) { if (FAILED(IPersistFolder2_GetCurFolder (ppf2, &pidl))) { @@ -1349,8 +1350,26 @@
res = SHFileOperationW(&op);
- HeapFree(GetProcessHeap(), 0, pszSrc); - HeapFree(GetProcessHeap(), 0, pszTarget); + if (res == DE_SAMEFILE) + { + length = wcslen(szTargetPath); + + pszFileName = wcsrchr(pszSrcList, '\'); + pszFileName++; + + if (LoadStringW(shell32_hInstance, IDS_COPY_FROM, pszTarget, MAX_PATH - length)) + { + wcscat(szTargetPath, L" "); + } + + wcscat(szTargetPath, pszFileName); + op.pTo = szTargetPath; + + res = SHFileOperationW(&op); + } + + HeapFree(GetProcessHeap(), 0, pszSrcList); + HeapFree(GetProcessHeap(), 0, pszTargetList);
if (res) return E_FAIL;
Modified: trunk/reactos/dll/win32/shell32/shresdef.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shresdef.... ============================================================================== --- trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shresdef.h [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -168,6 +168,7 @@ #define IDS_RENAME 328 #define IDS_INSERT 329 #define IDS_DESCRIPTION 330 +#define IDS_COPY_OF 331
/* Note: this string is referenced from the registry */ #define IDS_RECYCLEBIN_FOLDER_NAME 8964
Modified: trunk/reactos/dll/win32/shell32/shv_def_cmenu.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/shv_def_c... ============================================================================== --- trunk/reactos/dll/win32/shell32/shv_def_cmenu.c [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/shv_def_cmenu.c [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -1052,7 +1052,12 @@ return E_FAIL; }
- if (FAILED(IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (LPVOID*)&psfFrom))) + if (_ILIsDesktop(pidl)) + { + /* use desktop shellfolder */ + psfFrom = psfDesktop; + } + else if (FAILED(IShellFolder_BindToObject(psfDesktop, pidl, NULL, &IID_IShellFolder, (LPVOID*)&psfFrom))) { ERR("no IShellFolder\n");
Modified: trunk/reactos/dll/win32/shell32/undocshell.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/dll/win32/shell32/undocshel... ============================================================================== --- trunk/reactos/dll/win32/shell32/undocshell.h [iso-8859-1] (original) +++ trunk/reactos/dll/win32/shell32/undocshell.h [iso-8859-1] Fri Sep 18 02:48:47 2009 @@ -81,6 +81,8 @@ #define RFF_NOLABEL 0x08 #define RFF_NOSEPARATEMEM 0x20 /* NT only */
+#define DE_SAMEFILE 0x71 + /* RunFileFlg notification structure */ typedef struct {