..but that's just a convenience to allow them to play (mostly) nice with wchar APIs. The BSTR itself could have avoided the trailing NULLs if it never had to worry about being treated as a simple wchar buffer. http://blogs.msdn.com/b/ericlippert/archive/2003/09/12/52976...
My point was that it's not fair to point to BSTR's as an example of how the len+data approach is bad because BSTR's force you to do both and (in my opinion) end up having the drawbacks of both approaches and the benefits of neither.