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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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-…
==============================================================================
--- 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.…
==============================================================================
--- 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_d…
==============================================================================
--- 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_f…
==============================================================================
--- 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_…
==============================================================================
--- 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/undocshe…
==============================================================================
--- 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
{