Summary, use it yourself.
TCHAR can convert it into different character sets depending on the pre-regulator.
OLECHAR Types used on COM on the target operating system compiled by the source code. For Win32 operating systems, this is a WCHAR_T character type
BSTR is a pointer to an OLECHAR array of length prefixes, which has many special semantics.
------------------------------
| 4 bytes | strings, length equal to the specified value | / 0 |
------------------------------
Note: BSTR is a pointer data type. It points to the first character of the array. The length of the length is integrated exactly before the first character of the array; the length is in bytes, and does not include NUL characters; the character array can include NUL characters; it must use sysallocstring and sysfreestring to allocate and release; BSTR type Copying each other (BSTR a = BSTR B), is actually copying a BSTR includes all content of the structure.
Sysfreeesting This function is not emptied in the memory after the BSTR type is released.