I have a little problem implementing VerifyVersionInfo{A,W}. Here's the prototype of the function (W):
BOOL WINAPI VerifyVersionInfoW( LPOSVERSIONINFOEXW lpVersionInfo, DWORD dwTypeMask, DWORDLONG dwlConditionMask)
with DWORDLONG being a 64bit value. Now, how do I translate that in kernel32.spec? The current declaration in kernel32.spec is
@ stdcall VerifyVersionInfoW(long long long long) VerifyVersionInfoW
with either a try to get a "long long" type (undistinguishable from 2 longs), or by just assuming a virtual fourth argument to get the right total argument size. Now, this seems really fishy. I'm not very familiar with the way a C compiler places arguments either in registers or on the stack, but I'm not sure the way it is currently declared is the best way to do it. I'd prefer to define a new type for use in spec files, meaning a 64bit argument. Comments?
BTW, for the moment VerifyVersionInfo seems to be the only place in Wine where the DWORDLONG type is used, but that doesn't mean there are no other unimplemented API using it.
Vincent