Здравствуйте, ssm, Вы писали:

>насколько правомерным является передача в метод ожидающий BSTR, значения типа LPCWSTR?


Все зависит от наличия маршаллинга. Если компонент загружен inproc и используется "ранее связывание", то, скорее всего, строка будет передана и через LPWSTR. Если же имеется маршаллинг, то нужно конвертировать в BSTR. Маршаллер читает размер необходимого буфера из строки. У меня были случаи, когда вызов метода пытался захватить несколько гигов памяти из-за этой ошибки. Также, ошибка может быть "нестабильной" — как повезет.

Корректно все таки конвертировать в BSTR всегда.
Автор: rus blood    Оценить