James Hawkins : version: Return ERROR_RESOURCE_DATA_NOT_FOUND if the file does not have version information .
Alexandre Julliard
julliard at winehq.org
Tue Feb 5 06:33:50 CST 2008
Module: wine
Branch: master
Commit: 972c61d31146b1e7938a32fd4ed23058ecaa5b1f
URL: http://source.winehq.org/git/wine.git/?a=commit;h=972c61d31146b1e7938a32fd4ed23058ecaa5b1f
Author: James Hawkins <truiken at gmail.com>
Date: Mon Feb 4 11:21:05 2008 -0600
version: Return ERROR_RESOURCE_DATA_NOT_FOUND if the file does not have version information.
---
dlls/version/info.c | 4 ++++
dlls/version/tests/info.c | 25 +++++++++++++++++++++++++
2 files changed, 29 insertions(+), 0 deletions(-)
diff --git a/dlls/version/info.c b/dlls/version/info.c
index 935d0c1..2be1df7 100644
--- a/dlls/version/info.c
+++ b/dlls/version/info.c
@@ -252,6 +252,10 @@ static DWORD VERSION_GetFileVersionInfo_PE( LPCWSTR filename, DWORD datasize, LP
if(!hModule)
{
WARN("Could not load %s\n", debugstr_w(filename));
+
+ if (GetLastError() == ERROR_BAD_EXE_FORMAT)
+ return 0xFFFFFFFF;
+
return 0;
}
hRsrc = FindResourceW(hModule,
diff --git a/dlls/version/tests/info.c b/dlls/version/tests/info.c
index be1852f..d31797a 100644
--- a/dlls/version/tests/info.c
+++ b/dlls/version/tests/info.c
@@ -44,6 +44,18 @@
"ERROR_PATH_NOT_FOUND (NT4)/ERROR_FILE_NOT_FOUND (2k3)" \
"expected, got %u\n", GetLastError());
+static void create_file(const CHAR *name)
+{
+ HANDLE file;
+ DWORD written;
+
+ file = CreateFileA(name, GENERIC_WRITE, 0, NULL, CREATE_ALWAYS, 0, NULL);
+ ok(file != INVALID_HANDLE_VALUE, "Failure to open file %s\n", name);
+ WriteFile(file, name, strlen(name), &written, NULL);
+ WriteFile(file, "\n", strlen("\n"), &written, NULL);
+ CloseHandle(file);
+}
+
static void test_info_size(void)
{ DWORD hdl, retval;
char mypath[MAX_PATH] = "";
@@ -153,6 +165,19 @@ static void test_info_size(void)
}
else
trace("skipping GetModuleFileNameA(NULL,..) failed\n");
+
+ create_file("test.txt");
+
+ /* no version info */
+ SetLastError(0xdeadbeef);
+ hdl = 0xcafe;
+ retval = GetFileVersionInfoSizeA("test.txt", &hdl);
+ ok(retval == 0, "Expected 0, got %d\n", retval);
+ ok(hdl == 0, "Expected 0, got %d\n", hdl);
+ ok(GetLastError() == ERROR_RESOURCE_DATA_NOT_FOUND,
+ "Expected ERROR_RESOURCE_DATA_NOT_FOUND, got %d\n", GetLastError());
+
+ DeleteFileA("test.txt");
}
static void VersionDwordLong2String(DWORDLONG Version, LPSTR lpszVerString)
More information about the wine-cvs
mailing list