I know I should not link a already well made documentation but for my sake and my project. I d like to put in on here anyways.
Since I have been dealing with different data types in C, its hard to remember what they do and what they stands for. Eg. LPCWSTR, LPBYTE etc.
Here is the link to the documentation: C Common Data Types
Also another I want to touch on is Windows C/C++ Calling Convention in what it actually means in laymen term. Here is an article about it:
Basically compiler has a way to call a function and how to clean up after the call is made. How arguments are push into the stack and who is responsible for cleaning up after. __stdcall usually makes the caller responsible for pushing the argument from LEFT->RIGHT and make the CALLEE responsible for clean up. __cdecl is from RIGHT->LEFT and makes the caller responsible for cleaning up.