So I was reading through some WinApi files and found these:
#define CALLBACK __stdcall
#define WINAPI __stdcall
#define WINAPIV __cdecl
#define APIENTRY WINAPI
#define APIPRIVATE __stdcall
#define PASCAL __stdcall
#define FAR far
#define NEAR near
typedef float FLOAT;
typedef int INT;
typedef unsigned int UINT;
#define VOID void
typedef char CHAR;
typedef short SHORT;
typedef long LONG;
I also found this on Gdiplus' files:
typedef float REAL;
Why do libraries do this? Why do they want to typedef the most basic things with a new name of just the same but in all caps? Why do they define the same things multiple times? Seems really useless to me and just more confusing and annoying.