what is LPCTSTR and LPCTSTR-like (for instance HDC) and what it does stand for?
Quoting Brian Kramer on the MSDN forums


  LPCTSTR = L‌ong P‌ointer to a C‌onst
  T‌CHAR STR‌ing  (Don't worry, a long pointer is the same as a pointer. There were two flavors of pointers under 16-bit
  windows.)
  
  Here's the table:
  
  
  LPSTR = char*
  LPCSTR = const char*
  LPWSTR = wchar_t* 
  LPCWSTR = const wchar_t* 
  LPTSTR = char* or wchar_t* depending on _UNICODE
  LPCTSTR =  const char* or const wchar_t* depending on _UNICODE
  

