8 Feb
2008
8 Feb
'08
12:44 p.m.
"Reece Dunn" <msclrhd(a)googlemail.com> wrote:
+ retval = GetWindowModuleFileNameW(hwnd, filenameW, cchFileNameMax); + if (retval) + { + DWORD lasterror = GetLastError(); + WideCharToMultiByte(CP_ACP, 0, filenameW, -1, lpszFileName, cchFileNameMax, NULL, NULL); + SetLastError(lasterror);
What's the point of saving/restoring last error value? If WideCharToMultiByte fails you need to return an error in that case, not silently continue.
The usual model is something like this:
SetLastError(0xdeadbeef); WinApiCall(); ok(GetLastError() == ERROR_SUCCESS, "WinApiCall failed, expected ERROR_SUCCESS, got %d", GetLastError());
In the tests, which is not the case here. -- Dmitry.