Re[3]: Как задать тип для out-параметра?
От: Vi2 Удмуртия http://www.adem.ru
Дата: 11.11.02 12:09
Оценка:
Здравствуйте Аноним, Вы писали:

А>Это не выход... Зачем мне [in,out] параметры, если он у меня по логике должен быть out, это помоему еще хуже чем использовать в качестве выходного параметра тип Variant. Мне осталось установить чего все нормально работает в Visual Basic, а в VBScript нет!!!
А>Должно работать!!!

Давай по порядку.
1. В VBScript нет типизированных переменных (в VB есть).
2. Вызов функции (или метода) идет через Invoke. Поэтому до лампочки, что ты там напишешь в IDL — in или out, long или BSTR. VBScript будет передавать VARIANT*.
3. При вызове call object.Get(CStr(strSessionID), ..., strXMLData, strErrorName) скорее всего передается VARIANT от CStr с VT_BSTR, поэтому обработчик Invoke может распаковать в BSTR. Раз strSessionID — это строка, то передай как есть call object.Get(strSessionID, ..., strXMLData, strErrorName), получишь Ощибку преобразования на первом параметре (для уверенности, сделай один параметр in).
4. Параметр out нет никакого смысла контролировать, так как, чтобы там не содержалось, это будет переписано на строку. Этим ты и гарантируешь возврат строки.

Поэтому делай [out]VARIANT* xmlResultXML, в нем точно будет строка, если ты туда запишешь строку.
Vita
Выше головы не прыгнешь, ниже земли не упадешь, дальше границы не убежишь! © КВН НГУ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.