Люди, помогите с проблемкой.
Есть два ActiveX, которые я успешно подключил в C++Builder 6.
Допустим, это TCom1 и TCom2. Первый из них использует второй как параметр в некоторых методах.
У первого есть такой метод
TOLEBOOL __fastcall myProc1(LPDISPATCH* myCom2/*[in,out]*/, BSTR* status/*[in,out]*/);
Первый параметр — это и есть TCom2.
Второй параметр у меня есть в виде AnsiString, то-есть мне его нужно преобразовать в BSTR, а потом обратно в AnsiString, так как он меняется при вызове.
Собственно вопросы:
1. Как правильно передать первый параметр?
2. Как лучше конвертнуть из AnsiString в BSTR и обратно?
С TStringConverter не понятно как работать, может где нибудь есть примеры?
Вроде как для роботы с COM-объектами надо использовать TOleString ("TOleString wraps a BSTR"), но не понятно как...
Здравствуйте, SterhBy, Вы писали:
SB>2. Как лучше конвертнуть из AnsiString в BSTR и обратно?
Перевод из AnsiString в BSTR :
AnsiString SA;
BSTR BA;
BA = WideString(SA.c_str()).c_bstr();
Здравствуйте, prospan, Вы писали:
P>Перевод из AnsiString в BSTR :
P>P>AnsiString SA;
P>BSTR BA;
P>BA = WideString(SA.c_str()).c_bstr();
P>
Спасибо, с BSTR разобрался. В параметрах можно использовать тип WideString.
Тогда перевод туда и обратно тривиален:
String a = "sjdgh";
WideString w = WideString(a);
MyCom1->myProc1(MyCom2, &w);
a = String(w);
Это так, если кому вдруг понадобится...
А второй вопрос по поводу как получить LPDISPATCH* остается.
Кто поможет?