Question and Answer Database FAQ2513C.txt BSTRs as Params instead of AnsiString Category :ActiveX Platform :All Product :C++Builder 3.x Question: I have upgraded from BCB1 to BCB3. In BCB1. The functions in one of the ActiveX controls that used to take a AnsiString now take a BSTR. I tryed using it the same way as i used to with an ansistring, but this does not work. I also tryed typecasting the parameter to a wchar_t* and that crashes the system. What do I do? Answer: v3.0 exposes VT_BSTR as true BSTRs since we now support Server code and an AnsiString cannot be used for an [out] or [out,retval] string parameter. You'll need to use a WideString for the call: (WideString is a Pascal Runtime Type that will work in C++Builder. For more information on WideString look at vcl\wstring.h) The reason that typecasting using a wchar* crashed the system is because with BSTR's you need to use SysAllocString and SysFreeString, otherwise you will crash the app. 7/2/98 10:32:32 AM
Last Modified: 01-SEP-99