http://bugs.winehq.org/show_bug.cgi?id=16127
--- Comment #5 from Richard Russell richard@rtrussell.co.uk 2010-06-22 12:17:30 --- (In reply to comment #4)
Wondering how that's an issue. The return value is in eax, so whether it's an int or a short is up to your interpretation.
In Windows the return value is in eax but in Wine the return value is in ax (only); eax is *not* guaranteed to contain the sign-extended version of what's in ax. This appears to have changed only in a recent version of Wine (it may depend on how the compiler handles a return type of SHORT).
If your opinion is that Wine should be returning the result from GetAsyncKeyState in eax (despite being defined as type SHORT) then this really is a bug, because it's returning the result in ax.