Более конкретно, почему одна и та же вещь typedef'd с несколькими разными именами во многих случаях, и почему typedef указательные типы (непонятная логика иногда)?
typedef
Например:
typedef const WCHAR *LPCWSTR, *PCWSTR;
Какой в этом смысл?