shell32: Add support of KF_REDIRECT_DEL_SOURCE_CONTENTS flag to redirection.

oldstable
Mariusz Pluciński 2011-07-05 11:07:30 +02:00 committed by Alexandre Julliard
parent 104bf57c11
commit 9435f3ce15
2 changed files with 19 additions and 2 deletions

View File

@ -3232,12 +3232,30 @@ static HRESULT redirect_known_folder(
lstrcpyW(dstPath, pszTargetPath);
ZeroMemory(&fileOp, sizeof(fileOp));
fileOp.wFunc = FO_COPY;
if(flags & KF_REDIRECT_DEL_SOURCE_CONTENTS)
fileOp.wFunc = FO_MOVE;
else
fileOp.wFunc = FO_COPY;
fileOp.pFrom = srcPath;
fileOp.pTo = dstPath;
fileOp.fFlags = FOF_NO_UI;
hr = (SHFileOperationW(&fileOp)==0 ? S_OK : E_FAIL);
if(flags & KF_REDIRECT_DEL_SOURCE_CONTENTS)
{
ZeroMemory(srcPath, sizeof(srcPath));
lstrcpyW(srcPath, lpSrcPath);
ZeroMemory(&fileOp, sizeof(fileOp));
fileOp.wFunc = FO_DELETE;
fileOp.pFrom = srcPath;
fileOp.fFlags = FOF_NO_UI;
hr = (SHFileOperationW(&fileOp)==0 ? S_OK : E_FAIL);
}
}
CoTaskMemFree(lpSrcPath);

View File

@ -1397,7 +1397,6 @@ static void test_knownFolders(void)
/* check if original directory was really removed */
dwAttributes = GetFileAttributesW(sExamplePath);
todo_wine
ok(dwAttributes==INVALID_FILE_ATTRIBUTES, "directory should not exist, but has attributes: 0x%08x\n", dwAttributes );