Показать сообщение отдельно
  #1 (permalink)  
Старый 11.02.2011, 14:57
Новичок на форуме
Отправить личное сообщение для dolu Посмотреть профиль Найти все сообщения от dolu
 
Регистрация: 11.02.2011
Сообщений: 3

ссылка на SafeArray в JScript
Привет!

Есть задача: передать методу COM-объекта ссылку на SafeArray в виде параметра. Этот метод запишет в искомый SafeArray некоторые данные.
Код:
HRESULT STDMETHODCALLTYPE SomeMethod(LPSAFEARRAY* Buffer);
Вопрос: как это сделать?

Пробовал так:
var dictionary = new ActiveXObject("Scripting.Dictionary");
for (var i = 0; i < 10; i++) {
  dictionary.add(i, 0);
};

var ar1 = dictionary.items();
var ar2 = VBArray(ar1);
var ar3 = VBArray(ar1).toArray();
var ar4;

SomeObj.SomeMethod(ar1);
SomeObj.SomeMethod(ar2);
SomeObj.SomeMethod(ar3);
SomeObj.SomeMethod(ar4);


Все 4 варианта возвращают исключение: Type mismatch.

WScript.echo(typeof ar1); // unknown
WScript.echo(typeof ar2); // unknown
WScript.echo(typeof ar3); // object
WScript.echo(typeof ar4); // undefined


Если кто-нибудь сталкивался с подобной проблемой, прошу подсказать путь к решению.

Последний раз редактировалось dolu, 11.02.2011 в 15:18.
Ответить с цитированием