Never Use L”” to Create a BSTR

When you call a COM method, it accepts BSTR in the following way:

 Iface->f(L"")

L”” does not create a BSTR. This just creates a wide character string and if the string has to be marshalled to another apartment, the method will fail. Such usage will result in hard to find bugs wherein a method will succeed if it is called from same apartment and will fail otherwise.

Instead, use CComBSTR(L””), as in:

 Iface->f(CComBSTR(L""))
Share the Post:
Share on facebook
Share on twitter
Share on linkedin

Overview

Recent Articles: