Module: wine Branch: master Commit: 972c61d31146b1e7938a32fd4ed23058ecaa5b1f URL: http://source.winehq.org/git/wine.git/?a=commit;h=972c61d31146b1e7938a32fd4e...
Author: James Hawkins truiken@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)