James Hawkins : msi: Translate ERROR_BAD_PATHNAME into ERROR_FILE_NOT_FOUND .

Alexandre Julliard julliard at winehq.org
Tue Feb 5 06:33:57 CST 2008


Module: wine
Branch: master
Commit: 856800c84be11cb525ce4d7a296f7efe102aa037
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=856800c84be11cb525ce4d7a296f7efe102aa037

Author: James Hawkins <truiken at gmail.com>
Date:   Mon Feb  4 11:34:10 2008 -0600

msi: Translate ERROR_BAD_PATHNAME into ERROR_FILE_NOT_FOUND.

---

 dlls/msi/msi.c       |   10 ++++++++--
 dlls/msi/tests/msi.c |    7 ++-----
 2 files changed, 10 insertions(+), 7 deletions(-)

diff --git a/dlls/msi/msi.c b/dlls/msi/msi.c
index c1478b3..f4ee66c 100644
--- a/dlls/msi/msi.c
+++ b/dlls/msi/msi.c
@@ -1569,7 +1569,7 @@ UINT WINAPI MsiGetFileVersionW(LPCWSTR szFilePath, LPWSTR lpVersionBuf,
         '%','d','.','%','d','.','%','d','.','%','d',0};
     static const WCHAR szLangFormat[] = {'%','d',0};
     UINT ret = 0;
-    DWORD dwVerLen;
+    DWORD dwVerLen, gle;
     LPVOID lpVer = NULL;
     VS_FIXEDFILEINFO *ffi;
     UINT puLen;
@@ -1581,7 +1581,13 @@ UINT WINAPI MsiGetFileVersionW(LPCWSTR szFilePath, LPWSTR lpVersionBuf,
 
     dwVerLen = GetFileVersionInfoSizeW(szFilePath, NULL);
     if( !dwVerLen )
-        return GetLastError();
+    {
+        gle = GetLastError();
+        if (gle == ERROR_BAD_PATHNAME)
+            return ERROR_FILE_NOT_FOUND;
+
+        return gle;
+    }
 
     lpVer = msi_alloc(dwVerLen);
     if( !lpVer )
diff --git a/dlls/msi/tests/msi.c b/dlls/msi/tests/msi.c
index 57fe405..79652a1 100644
--- a/dlls/msi/tests/msi.c
+++ b/dlls/msi/tests/msi.c
@@ -1847,17 +1847,14 @@ static void test_MsiGetFileVersion(void)
     lstrcpyA(version, "version");
     lstrcpyA(lang, "lang");
     r = MsiGetFileVersionA("", version, &versz, lang, &langsz);
+    ok(r == ERROR_FILE_NOT_FOUND,
+       "Expected ERROR_FILE_NOT_FOUND, got %d\n", r);
     ok(!lstrcmpA(version, "version"),
        "Expected version to be unchanged, got %s\n", version);
     ok(versz == MAX_PATH, "Expected %d, got %d\n", MAX_PATH, versz);
     ok(!lstrcmpA(lang, "lang"),
        "Expected lang to be unchanged, got %s\n", lang);
     ok(langsz == MAX_PATH, "Expected %d, got %d\n", MAX_PATH, langsz);
-    todo_wine
-    {
-        ok(r == ERROR_FILE_NOT_FOUND,
-           "Expected ERROR_FILE_NOT_FOUND, got %d\n", r);
-    }
 
     /* nonexistent szFilePath */
     versz = MAX_PATH;




More information about the wine-cvs mailing list