* On Tue, 3 Oct 2006, Detlef Riekenberg wrote:
- On Di, 2006-10-03 at 20:40 +0300, Saulius Krasuckas wrote:
Well, thanks. I'll change that, but is it wrong just because it slightly increases code complexity for no direct benefit? I just want to know for future.
For the normal case, SetLastError() is called only on failure.
http://msdn.microsoft.com/library/en-us/debug/base/setlasterror.asp
Do we trust MSDN when we can check things ourselves? No, we don't trust, right? :)
There might be some broken Applications, that expect GetLastError() to return a special Value, even when a Function returns success, but they will fail very fast on native Windows with a different version of Windows, SP, Hotfix or Driver.
That could be a way for a program to differentiate between 9x and NT versions without calling GetVersion*(). I saw one code/app in the past, which did such check by querying kernel32.dll for the OpenVxD export ;)
Do you have such a Application?
No, I didn't. If I had, that would be my primary argument.
I even doubt there exist any application that calls LZOpenFileW() in the world, but still Wine implements it plus it contains W-to-A cross-call, by eliminating which I want to ensure no algorithmic logic was flawed in A-version or in W-version of mentioned function. Hence my intense testing for SetLastError(). I hoped this would let me easier to (re)build code for LZOpenFile[AW]. It would make the code stricter. So I won't be lost in some lots of possible solutions ;)
But nevermind, Detlef. I will add those "wrong" checks just in some of my internal branches to make my fantasyless life easier and won't disturb the life of the whole project :]