Re: Как переслать массив данных из Web-клиента в СОМ и обрат
От: Ivan Россия www.rsdn.ru
Дата: 14.02.03 16:20
Оценка: 21 (1)
Здравствуйте, Аноним, Вы писали:

А>Dim LongArray(5)

А>LongArray(0) = CLng(0)
А>MyActiveX.ArrayF(LongArray)

А>VBScript по идее должен запаковать массив в SAFEARRAY, что, вроде так и происходит.

А>В функции ArrayF я должен был бы увидеть тип параметра примерно такой VT_ARRAY | VT_...
А>Но это не так.

Скрипт будет передавать тебе такой массив как массив вариантов, т.е VT_ARRAY | VT_VARIANT | VT_BYREF
а уже в вариантах будут лежать числа

А>Еще непонятно следующее:

А>Если вызвать такую функцию
А>HRESULT ArrayF2([in]VARIANT Array)
А>то тип параметра получается VT_VARIANT|VT_BYREF, несмотря на то, что в клиенте елементы массива инициализировались строками (должно быть VT_BSTR|VT_BYREF)

Все массивы (и входные и выходные) в VBScript'е состоят из вариантов, это by design
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.