Mar 20, 2001
The Difference Between BSTR and Unicode Strings
Though each character of BSTR and Unicode strings are 2 characters wide, there is a fundamental difference between the two.
BSTR strings have to be length prefixed, which means that the memory locations at the very beginning of the string contain the length of the string. BSTRs also have to be created using SysAllocString and SysFreeString.
If you pass a simple unicode (wchar) string as an argument to a COM function expecting a BSTR, it will fail.