Can someone explain about the different between each of the following item, also which is the best to use?

LocalAlloc
GlobalAlloc
VirtualAlloc
HeapAlloc
char *lpszBuffer = new char[128];

thanks