Здравствуйте Аноним, Вы писали:
А>Здравствуйте Vi2, Вы писали:
Vi2>>Здравствуйте Аноним, Вы писали:
А>>>Есть asp страница, в которой используется VBScript, и вызывется метод COM обьекта:
Vi2>>А>>>[id(14), helpstring("method Get")] HRESULT Get([in] BSTR szSession, ..., [out] BSTR *xmlResultXML, [out] BSTR *szErrorName) — это из интерфейса IDispatch
А>>>Как видно с примера возвращаются два параметра типа стринг.
А>>>...
А>>>Говорят что типа неправильно построен сам метод обьекта, а именно не правильно формируются out-параметры, что их нужно якобы предавать по ссылке, типа так:
Vi2>>А>>>[id(14), helpstring("method Get")] HRESULT Get([in] BSTR szSession, ..., [out, ref] BSTR *xmlResultXML, [out,ref] BSTR *szErrorName), здесь out параметры передаются по ссылке, но это тоже не помогло.
Vi2>>Сразу замечу, что ДВА приведенных выше отрывка из IDL идентичны.
Vi2>>А>>>В чем могут быть проблемы?
А>>>Как быть с конролем типов для out параметра?
Vi2>>Слушай, раз VBScript нормально понимает [in] BSTR szSession, то попробуй [[b]in,[/b]out] BSTR *xmlResultXML.
А>Это не выход... Зачем мне [in,out] параметры, если он у меня по логике должен быть out, это помоему еще хуже чем использовать в качестве выходного параметра тип Variant. Мне осталось установить чего все нормально работает в Visual Basic, а в VBScript нет!!!
А>Должно работать!!!
Vi2>>Сразу замечу, что ДВА приведенных выше отрывка из IDL идентичны.
Несогласен!!!
Первое возвращается по указателю, а второе по ссылке и значение не может менятся вызывающей функцией!!!