Microsoft WindowsのインクルードヘッダはC++で使いにくくて仕方がありません。
例えば、winuser.hの以下の部分。

WINUSERAPI HWND WINAPI CreateWindowExA(…);
WINUSERAPI HWND WINAPI CreateWindowExW(…);
#ifdef UNICODE
#define CreateWindowEx CreateWindowExW
#else
#define CreateWindowEx CreateWindowExA
#endif // !UNICODE

なぜ、#defineでやってしまうのでしょうか?こうすると

MyClass::CreateWindowEx(…);

などがまともにコンパイルされないではありませんか!
これをせめて

WINUSERAPI HWND WINAPI CreateWindowEx(…)
{
#ifdef UNICODE
 return CreateWindowExW(…);
#else
 return CreateWindowExA(…);
#endif // !UNICODE
}

等とやってくれればまだ使い物になると思うのですが、どうでしょう?
このようなヘッダがどこかに存在するということはないでしょうか?