2.2.5 BSTR

A BSTR is a pointer to a null-terminated character string in which the string length is stored with the string. This type is declared as follows:

 typedef WCHAR* BSTR;

Because the length is stored with the string, BSTR variables can contain embedded null characters. For example:

 [4 bytes (length prefix)], 
 wchar_t[length], [\0]