I'm know the basic typedef usage:

typedef unsigned int * INT;

This makes INT an alias for a pointer to unsigned int. And when used in this mannor:

INT set1, set2;

It is translated by the compiler as:

unsigned int * set1, *set2;

But I am not accustomed to this usage:

typedef WCHAR * PWCHAR, * LPWCH, * PWCH, *NEPSTR, *LPWSTR, * PWSTR;

And I should also specify that WCHAR is also a typedef:

typedef wchar_t WCHAR:

Can anyone help me out, especially in describing how the typedef works with a list of types. Is * PWSTR the alias for all of the list?