Using your exception handler, LoadCursor() *always* returns 0 on invalid parameter, which is WRONG in the NT 4 case since it continues program execution without crashing.
--> GetVersion() is required, check was (nearly) right IMHO. Probably the best solution would be to use both an exception handler and call GetVersion() on exception.
Well, you'll probably now argue that the NT 4 crash case is unneeded, however I'm not that convinced about it, since it's a real Wine incompatibility versus NT if we don't check on winver. Any reasons for doing it this way and *not* (more or less) our way ? ;-)
The version check here is unnecessary. We should only add it if there really is requirement for the different behaviour, otherwise we open ourselves to if(version1) else if (version2) hell, which will just make the code unreadable.
Ciao, Marcus