This is a curiosity question for anybody who has worked for, known somebody who's worked for, or otherwise had any sort of affiliation with the Microsoft team responsible for defining these macros.
I understand what __stdcall is and I know why it's used, I just don't understand why Microsoft would make three separate macros for the same thing. The only benefit I could see would be to provide some semantic meaning in a source file, but other than that it provides no other benefit as far as I can tell. Obviously there was a point to doing it, I just want to know what it is! :)
WINAPI
andCALLBACK
used to be different in 16-bit Windows. Both are PASCAL calling conventions, where the latter requires that a function perform additional set up and teardown, within the standard perilogue. – Superintend