Check the type of error returned by SHCreateDirectoryExW.
authorFabrice Ménard <menard.fabrice@wanadoo.fr>
Tue, 2 Nov 2004 05:22:39 +0000 (05:22 +0000)
committerAlexandre Julliard <julliard@winehq.org>
Tue, 2 Nov 2004 05:22:39 +0000 (05:22 +0000)
dlls/shell32/shellpath.c

index 1aaedb8e829b7ef4a9ea9596ec0973ebcc6b6f30..72b220a641a32438460d74ca8c1bc3d53c77b46b 100644 (file)
@@ -1573,7 +1573,8 @@ HRESULT WINAPI SHGetFolderPathW(
     WCHAR      szBuildPath[MAX_PATH], szTemp[MAX_PATH];
     DWORD      folder = nFolder & CSIDL_FOLDER_MASK;
     CSIDL_Type type;
-
+    int        ret;
+    
     TRACE("%p,%p,nFolder=0x%04x\n", hwndOwner,pszPath,nFolder);
 
     /* Windows always NULL-terminates the resulting path regardless of success
@@ -1656,7 +1657,8 @@ HRESULT WINAPI SHGetFolderPathW(
     }
 
     /* create directory/directories */
-    if (SHCreateDirectoryExW(hwndOwner, szBuildPath, NULL))
+    ret = SHCreateDirectoryExW(hwndOwner, szBuildPath, NULL);
+    if (ret && ret != ERROR_ALREADY_EXISTS)
     {
         ERR("Failed to create directory '%s'.\n", debugstr_w(szBuildPath));
         hr = E_FAIL;