1. WIN32_LEAN_AND_MEAN excludes certain parts of the Win32 headers that aren't used too often. If you're curious as to exactly what is cut out, load the windows.h file. There's a number of headers that are included inside a #ifndef WIN32_LEAN_AND_MEAN ... #endif block, so those are dropped when you define that symbol.

2. If by "aim" you mean some kind of functionality, no, it's just a naming convention. I'm not sure where it came from though. Perhaps having some leading or trailing underscores in there is just an attempt to make it less likely that that symbol will be in use by another header file somewhere.

3. #pragma once ensures that the header file in which it appears won't be included multiple times unnecessarily.