Wednesday, March 16, 2011

Data Type


"P" means "pointer"
"W" means "wide"
"STR" means "string"
"C" means "const"


PWSTR means "pointer of wide string", that is, unsigned short* (or wchar_t*)

LPSTR means "long pointer of string", that is, char*

WCHAR means "wide char", that is, unsigned short (or wchar_t)

LPCSTR means "const pointer of string", that is, const char*

PWSTR is a pointer to a UNICODE string.
[ typedef WCHAR* PWSTR; typedef wchar_t WCHAR; ]

LPSTR is a pointer to a 8 bit ANSI string
[typedef CHAR* LPSTR; typedef char CHAR; ]

WCHAR is a wchar_t as mentioned above and LPCSTR is an 8 bit ANSI string
[ typedef __nullterminated CONST CHAR* LPCSTR; ]

These typedefs can be found in file WinNT.h



Char/wchar/TCHAR : The C strings for ANSI and Unicode

CString : The C++/MFC class wrapper for C strings

BSTR : The Visual Basic string type

_bstr_t : A C++ class wrapper for the Visual Basic string type

CComBSTR : Yet another C++ class wrapper for the Visual Basic

string type used predominately in ATL code