Note: 64-bit Windows is LLP64, meaning that a long is 32 bits wide.

underlying typedef pointer far pointer
32 64
unsigned short ATOM
int BOOL PBOOL LPBOOL
bool
unsigned char BOOLEAN PBOOLEAN
BYTE PBYTE LPBYTE
UCHAR PUCHAR
UINT8 PUINT8
const unsigned char PCBYTE LPCBYTE
char CHAR PCHAR
CCHAR
PSTR LPSTR
unsigned long COLORREF LPCOLORREF
DWORD PDWORD LPDWORD
HCALL LPHCALL
ULONG PULONG
const void LPCVOID
const char PCSTR LPCSTR
const wchar_t PCWSTR LPCWSTR
float FLOAT PFLOAT
void * HANDLE PHANDLE LPHANDLE
HKEY PHKEY
signed int INT PINT LPINT
INT32 PINT32
LONG32 PLONG32
INT INT64 INT_PTR PINT_PTR
signed char INT8 PINT8
signed short INT16 PINT16
SHORT PSHORT
VARIANT_BOOL
signed long long INT64 PINT64
LONG64 PLONG64
long LONG PLONG LPLONG
HRESULT
double long long LONGLONG PLONGLONG
LONG LONG64 LONG_PTR PLONG_PTR
LRESULT
LPARAM
size_t SIZE_T PSIZE_T
ssize_t SSIZE_T PSSIZE_T
unsigned int DWORD32
UINT PUINT
UINT32 PUINT32
ULONG32 PULONG32
UINT UINT64 UINT_PTR PUINT_PTR
WPARAM
unsigned short UINT16 PUINT16
USHORT PUSHORT
WORD PWORD LPWORD
unsigned long long DWORDLONG PDWORDLONG
QWORD LPQWORD
UINT64 PUINT64
ULONG64 PULONG64
LONGLONG ULONG64 ULONGLONG PULONGLONG
ULONG ULONG64 ULONG_PTR PULONG_PTR
void VOID PVOID LPVOID
wchar_t WCHAR PWCHAR