DataTypes

You do not need to know the following datatypes in order to use Win32 API, the lesson here is, that most Win32 datatypes are similar, if not the same as C++ datatypes. You are free to use standard C++ datatypes to express any Win32 datatypes. A lot of the datatypes in Win32 API, are synonyms and are not really that important to know, but I''ll give you a quick reference anyway:
-BOOL is a windows datatype that is an equal representation of the simple bool used in C++. Its value can either be true or false.
-WORD This is a 16-bit integer, that is similar to long. Specifically used for some windows functions. It is the equivalent of unsigned short in C++.
-FLOAT is the equivalent of float in C++.
-UINT is the equivalent of unsigned int in C++.
-WINAPI, APIENTRY, CALLBACK, APIPRIVATE, STDCALL are all exactly the same as __stdcall in C++, which is the standard calling convention.
-CDECL, WINAPIV, are both the same as __cdecl calling convention in C++.
-FASTCALL is the same as __fastcall calling convention in C++.
-PASCAL is the same as __pascal calling convention in C++.
-WPARAM equivalent to an unsigned int pointer, and is used in Windows Messages.
-LPARAM in Win32 API this is used for Windows Messages, starting with prefix WM_, but is actually a pointer to a long.
-LRESULT Same as HRESULT or LONG/long, but a pointer to the long.
-INT Standard integer datatype, same as int in C++ (signed).
-BYTE is a synonym for unsigned char in C++. It is used for text characters.
-DWORD This is similar to LONG or long in standard C++.
-LONG is a substitute for INT.

-HRESULT is the exact equivalent of a long in C++.
-HANDLE This is a standard long in Win32 API, but usually used to indicate a GUI object, graphical object, or some other win32 objects.
-HINSTANCE This is also a long similar to HANDLE except used to declare the instance of a windows program. Similar to a window ID for each object in win32.
-HWND This long is used to indicate the window object itself, hence the name H-Wind(ow).
-LPSTR Pointer to a string in Win32.
-LPCSTR This object is a long pointer to a constant string.
-LPTSTR This long pointer is equivalent to LPSTR, but there are two versions of this function, one expecting an ANSI string, and the other expecting a Unicode string.
-LPCTSTR This is a combination of TCHARs in an LPTSTR. It can contain unicode or ANSI.



Ref:http://www.infernodevelopment.com/c-win32-api-tutorial