[ros-diffs] [janderwald] 35451: * Restore file with SHFileOperation

janderwald at svn.reactos.org janderwald at svn.reactos.org
Tue Aug 19 15:14:25 CEST 2008


Author: janderwald
Date: Tue Aug 19 08:14:25 2008
New Revision: 35451

URL: http://svn.reactos.org/svn/reactos?rev=35451&view=rev
Log:
* Restore file with SHFileOperation

Modified:
    trunk/reactos/lib/recyclebin/recyclebin_v5.c

Modified: trunk/reactos/lib/recyclebin/recyclebin_v5.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/lib/recyclebin/recyclebin_v5.c?rev=35451&r1=35450&r2=35451&view=diff
==============================================================================
--- trunk/reactos/lib/recyclebin/recyclebin_v5.c [iso-8859-1] (original)
+++ trunk/reactos/lib/recyclebin/recyclebin_v5.c [iso-8859-1] Tue Aug 19 08:14:25 2008
@@ -472,6 +472,7 @@
 	PINFO2_HEADER pHeader;
 	DELETED_FILE_RECORD *pRecord, *pLast;
 	DWORD dwEntries, i;
+	SHFILEOPSTRUCTW op;
 
 	TRACE("(%p, %s, %p)\n", This, debugstr_w(pDeletedFileName), pDeletedFile);
 
@@ -496,7 +497,12 @@
 		if (pRecord->dwRecordUniqueId == pDeletedFile->dwRecordUniqueId)
 		{
 			/* Restore file */
-			if (!MoveFileW(pDeletedFileName, pDeletedFile->FileNameW))
+			ZeroMemory(&op, sizeof(op));
+			op.wFunc = FO_COPY;
+			op.pFrom = pDeletedFileName;
+			op.pTo = pDeletedFile->FileNameW;
+
+			if (!SHFileOperationW(&op))
 			{
 				UnmapViewOfFile(pHeader);
 				return HRESULT_FROM_WIN32(GetLastError());



More information about the Ros-diffs mailing list