I think this is from using the include files from W2K, perhaps from the Microsoft Web & Internet samples preview.
The MSVC6 Definition in winbase.h WINBASEAPI PVOID WINAPI InterlockedCompareExchange ( PVOID *Destination, PVOID Exchange, PVOID Comperand ); is defined as this in include\nt50\winbase.h WINBASEAPI LONG WINAPI InterlockedCompareExchange ( IN OUT LPLONG Destination, IN LONG Exchange, IN LONG Comperand ); include\nt50\windef.h defines typedef long far *LPLONG; #define IN #define OUT [EMAIL PROTECTED],Andy Heninger <[EMAIL PROTECTED]> wrote: > Try it again. I removed the DEVENV_VCPP preprocessor variable, which was not being set consistently anyway. The inline assembly will now always be used when compiling with MSVC, which should sidestep the problem of inconsistent definitions of InterlockedCompareExchange. But I'm still curious as to where the different definitions came from. -- Andy