IDS_INSTALLNEWFONT "Ñëàãàíå íà íîâ øðèôò..."
IDS_DEFAULT_CLUSTER_SIZE "Ïîäðàçáèðàí ðàçïðåäåëèòåëåí ðàçìåð"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Neue Schriftart installieren..."
IDS_DEFAULT_CLUSTER_SIZE "Standardgröße"
+ IDS_COPY_OF "Kopie von"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Instalar Nueva Fuente..."
IDS_DEFAULT_CLUSTER_SIZE "Tamaño asignado por defecto"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Installer une nouvelle police..."
IDS_DEFAULT_CLUSTER_SIZE "Taille d'allocation par défaut"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Installazione nuovi Font..."
IDS_DEFAULT_CLUSTER_SIZE "Dimensione predefinita di allocazione"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "\90V\82µ\82¢\83t\83H\83\93\83g\82Ì\83C\83\93\83X\83g\81[\83\8b..."
IDS_DEFAULT_CLUSTER_SIZE "\83f\83t\83H\83\8b\83g \83A\83\8d\83P\81[\83V\83\87\83\93 \83T\83C\83Y"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Installere nye skrifttyper..."
IDS_DEFAULT_CLUSTER_SIZE "Standard tildelingsstørrelse"
-
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Zainstaluj Now¹ Czcionkê..."
IDS_DEFAULT_CLUSTER_SIZE "Domy\9clny rozmiar jednostki alokacji"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Óñòàíîâèòü íîâûé øðèôò..."
IDS_DEFAULT_CLUSTER_SIZE "Âûäåëÿåìûé ïî óìîë÷àíèþ ðàçìåð"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "&Nain\9atalova\9d nové písmo..."
IDS_DEFAULT_CLUSTER_SIZE "Predvolená alokaèná ve¾kos\9d" //Default allocation size
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "²íñòàëþâàòè íîâèé øðèôò..."
IDS_DEFAULT_CLUSTER_SIZE "Ðîçì³ð êëàñòåðà çà ïðîìîâ÷àííÿì"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
+ IDS_COPY_OF "Copy of"
END
IDS_INSTALLNEWFONT "Install New Font..."
IDS_DEFAULT_CLUSTER_SIZE "Default allocation size"
-
+ IDS_COPY_OF "Copy of"
END
#pragma code_page(default)
#include "version.h"
#include "shellfolder.h"
#include "xdg.h"
+#include "shellapi.h"
#include "wine/debug.h"
#include "wine/unicode.h"
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);
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;
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)))
{
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;
#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
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");
#define RFF_NOLABEL 0x08
#define RFF_NOSEPARATEMEM 0x20 /* NT only */
+#define DE_SAMEFILE 0x71
+
/* RunFileFlg notification structure */
typedef struct
{