Convertendo string C ++ / wchar_t * em string C #?

Pergunta: Eu preciso chamar uma DLL C # de um executável C ++. Eu uso COM, e funciona bem para int, long e bool. Mas não consigo amarrar ...

O arquivo IDL diz que é um BSTR, mas não posso transmiti-lo corretamente e nem recuperar um. Tentei usar o wchar_t * e o sysalloc como fiz no VB6, mas isso não parece funcionar.

Alguém sabe como, ou o que pode estar errado?