mirror of
https://github.com/reactos/reactos.git
synced 2024-09-28 05:26:58 +00:00
- 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. svn path=/trunk/; revision=43070
This commit is contained in:
parent
885d8e0656
commit
8c36300c0b
|
@ -749,6 +749,7 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Слагане на нов шрифт..."
|
IDS_INSTALLNEWFONT "Слагане на нов шрифт..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Подразбиран разпределителен размер"
|
IDS_DEFAULT_CLUSTER_SIZE "Подразбиран разпределителен размер"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -749,4 +749,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -737,4 +737,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -752,4 +752,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Neue Schriftart installieren..."
|
IDS_INSTALLNEWFONT "Neue Schriftart installieren..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Standardgröße"
|
IDS_DEFAULT_CLUSTER_SIZE "Standardgröße"
|
||||||
|
IDS_COPY_OF "Kopie von"
|
||||||
END
|
END
|
||||||
|
|
|
@ -749,4 +749,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -751,4 +751,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Instalar Nueva Fuente..."
|
IDS_INSTALLNEWFONT "Instalar Nueva Fuente..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Tamaño asignado por defecto"
|
IDS_DEFAULT_CLUSTER_SIZE "Tamaño asignado por defecto"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -752,4 +752,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Installer une nouvelle police..."
|
IDS_INSTALLNEWFONT "Installer une nouvelle police..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Taille d'allocation par défaut"
|
IDS_DEFAULT_CLUSTER_SIZE "Taille d'allocation par défaut"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -751,4 +751,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -749,4 +749,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Installazione nuovi Font..."
|
IDS_INSTALLNEWFONT "Installazione nuovi Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Dimensione predefinita di allocazione"
|
IDS_DEFAULT_CLUSTER_SIZE "Dimensione predefinita di allocazione"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -749,4 +749,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "新しいフォントのインストール..."
|
IDS_INSTALLNEWFONT "新しいフォントのインストール..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "デフォルト アロケーション サイズ"
|
IDS_DEFAULT_CLUSTER_SIZE "デフォルト アロケーション サイズ"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -751,5 +751,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Installere nye skrifttyper..."
|
IDS_INSTALLNEWFONT "Installere nye skrifttyper..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Standard tildelingsstørrelse"
|
IDS_DEFAULT_CLUSTER_SIZE "Standard tildelingsstørrelse"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -755,4 +755,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Zainstaluj Now¹ Czcionkê..."
|
IDS_INSTALLNEWFONT "Zainstaluj Now¹ Czcionkê..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Domyœlny rozmiar jednostki alokacji"
|
IDS_DEFAULT_CLUSTER_SIZE "Domyœlny rozmiar jednostki alokacji"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -750,4 +750,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -750,4 +750,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -747,4 +747,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Óñòàíîâèòü íîâûé øðèôò..."
|
IDS_INSTALLNEWFONT "Óñòàíîâèòü íîâûé øðèôò..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Âûäåëÿåìûé ïî óìîë÷àíèþ ðàçìåð"
|
IDS_DEFAULT_CLUSTER_SIZE "Âûäåëÿåìûé ïî óìîë÷àíèþ ðàçìåð"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -754,4 +754,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "&Nainštalova<76> nové písmo..."
|
IDS_INSTALLNEWFONT "&Nainštalova<76> nové písmo..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Predvolená alokaèná ve¾kos<6F>" //Default allocation size
|
IDS_DEFAULT_CLUSTER_SIZE "Predvolená alokaèná ve¾kos<6F>" //Default allocation size
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -748,4 +748,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -749,4 +749,5 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "²íñòàëþâàòè íîâèé øðèôò..."
|
IDS_INSTALLNEWFONT "²íñòàëþâàòè íîâèé øðèôò..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Ðîçì³ð êëàñòåðà çà ïðîìîâ÷àííÿì"
|
IDS_DEFAULT_CLUSTER_SIZE "Ðîçì³ð êëàñòåðà çà ïðîìîâ÷àííÿì"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
|
@ -736,5 +736,6 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
||||||
|
|
|
@ -749,7 +749,7 @@ BEGIN
|
||||||
IDS_INSTALLNEWFONT "Install New Font..."
|
IDS_INSTALLNEWFONT "Install New Font..."
|
||||||
|
|
||||||
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
|
||||||
|
IDS_COPY_OF "Copy of"
|
||||||
END
|
END
|
||||||
|
|
||||||
#pragma code_page(default)
|
#pragma code_page(default)
|
||||||
|
|
|
@ -60,6 +60,7 @@
|
||||||
#include "version.h"
|
#include "version.h"
|
||||||
#include "shellfolder.h"
|
#include "shellfolder.h"
|
||||||
#include "xdg.h"
|
#include "xdg.h"
|
||||||
|
#include "shellapi.h"
|
||||||
|
|
||||||
#include "wine/debug.h"
|
#include "wine/debug.h"
|
||||||
#include "wine/unicode.h"
|
#include "wine/unicode.h"
|
||||||
|
|
|
@ -1289,8 +1289,8 @@ ISF_Desktop_ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UI
|
||||||
WCHAR szTargetPath[MAX_PATH];
|
WCHAR szTargetPath[MAX_PATH];
|
||||||
SHFILEOPSTRUCTW op;
|
SHFILEOPSTRUCTW op;
|
||||||
LPITEMIDLIST pidl;
|
LPITEMIDLIST pidl;
|
||||||
LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList;
|
LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList, pszFileName;
|
||||||
int res;
|
int res, length;
|
||||||
STRRET strRet;
|
STRRET strRet;
|
||||||
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
|
|
||||||
|
@ -1377,8 +1377,28 @@ ISF_Desktop_ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UI
|
||||||
|
|
||||||
res = SHFileOperationW(&op);
|
res = SHFileOperationW(&op);
|
||||||
|
|
||||||
HeapFree(GetProcessHeap(), 0, pszSrc);
|
if (res == DE_SAMEFILE)
|
||||||
HeapFree(GetProcessHeap(), 0, pszTarget);
|
{
|
||||||
|
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)
|
if (res)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
|
@ -1260,16 +1260,17 @@ ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UINT cidl,
|
||||||
WCHAR szTargetPath[MAX_PATH];
|
WCHAR szTargetPath[MAX_PATH];
|
||||||
SHFILEOPSTRUCTW op;
|
SHFILEOPSTRUCTW op;
|
||||||
LPITEMIDLIST pidl;
|
LPITEMIDLIST pidl;
|
||||||
LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList;
|
LPWSTR pszSrc, pszTarget, pszSrcList, pszTargetList, pszFileName;
|
||||||
int res;
|
int res, length;
|
||||||
|
HRESULT hr;
|
||||||
STRRET strRet;
|
STRRET strRet;
|
||||||
|
|
||||||
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
IGenericSFImpl *This = impl_from_ISFHelper(iface);
|
||||||
|
|
||||||
TRACE ("(%p)->(%p,%u,%p)\n", This, pSFFrom, cidl, apidl);
|
TRACE ("(%p)->(%p,%u,%p)\n", This, pSFFrom, cidl, apidl);
|
||||||
|
|
||||||
IShellFolder_QueryInterface (pSFFrom, &IID_IPersistFolder2, (LPVOID *) & ppf2);
|
hr = IShellFolder_QueryInterface (pSFFrom, &IID_IPersistFolder2, (LPVOID *) & ppf2);
|
||||||
if (ppf2)
|
if (SUCCEEDED(hr))
|
||||||
{
|
{
|
||||||
if (FAILED(IPersistFolder2_GetCurFolder (ppf2, &pidl)))
|
if (FAILED(IPersistFolder2_GetCurFolder (ppf2, &pidl)))
|
||||||
{
|
{
|
||||||
|
@ -1349,8 +1350,26 @@ ISFHelper_fnCopyItems (ISFHelper * iface, IShellFolder * pSFFrom, UINT cidl,
|
||||||
|
|
||||||
res = SHFileOperationW(&op);
|
res = SHFileOperationW(&op);
|
||||||
|
|
||||||
HeapFree(GetProcessHeap(), 0, pszSrc);
|
if (res == DE_SAMEFILE)
|
||||||
HeapFree(GetProcessHeap(), 0, pszTarget);
|
{
|
||||||
|
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)
|
if (res)
|
||||||
return E_FAIL;
|
return E_FAIL;
|
||||||
|
|
|
@ -168,6 +168,7 @@
|
||||||
#define IDS_RENAME 328
|
#define IDS_RENAME 328
|
||||||
#define IDS_INSERT 329
|
#define IDS_INSERT 329
|
||||||
#define IDS_DESCRIPTION 330
|
#define IDS_DESCRIPTION 330
|
||||||
|
#define IDS_COPY_OF 331
|
||||||
|
|
||||||
/* Note: this string is referenced from the registry */
|
/* Note: this string is referenced from the registry */
|
||||||
#define IDS_RECYCLEBIN_FOLDER_NAME 8964
|
#define IDS_RECYCLEBIN_FOLDER_NAME 8964
|
||||||
|
|
|
@ -1052,7 +1052,12 @@ DoPaste(
|
||||||
return E_FAIL;
|
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");
|
ERR("no IShellFolder\n");
|
||||||
|
|
||||||
|
|
|
@ -81,6 +81,8 @@ BOOL WINAPI StrRetToStrNW(LPWSTR,DWORD,LPSTRRET,const ITEMIDLIST*);
|
||||||
#define RFF_NOLABEL 0x08
|
#define RFF_NOLABEL 0x08
|
||||||
#define RFF_NOSEPARATEMEM 0x20 /* NT only */
|
#define RFF_NOSEPARATEMEM 0x20 /* NT only */
|
||||||
|
|
||||||
|
#define DE_SAMEFILE 0x71
|
||||||
|
|
||||||
/* RunFileFlg notification structure */
|
/* RunFileFlg notification structure */
|
||||||
typedef struct
|
typedef struct
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue