Использование ссылочного параметра в ActiveX через Javascript
-
03-07-2019 - |
Вопрос
У меня есть ActiveX (сторонний, без источника) с методом, имеющим такой ссылочный параметр:
HRESULT GetSomething(
[in] short param1,
[out] BSTR* someString);
В C++ вы бы выполнили это следующим образом:
BSTR someString = NULL
m_activeX.GetSomething(0, &someString);
Как мне выполнить это через Javascript?Все остальные функции ActiveX работают нормально, а эта кажется невозможной?Если это невозможно в Javascript, это в VBScript?Мне не повезло ни в том, ни в другом.
Кстати, это нужно сделать в Internet Explorer.
Решение
Я не могу дать вам однозначный ответ, но я не верю, что это возможно.Я надеюсь, что кто-нибудь докажет мою неправоту, но вот почему я думаю, что это не сработает...
В Javascript все переменные передаются по значению.В IE вы создадите экземпляр класса JavaScript ActiveXObject для оболочки вашего COM-объекта.Даже если этот объект-оболочка может получить значение от вашего COM-объекта, в Javascript нет способа передать это значение обратно вам.
Если вы знаете, что будете работать в IE в Windows, вы можете попробовать использовать vbscript вместо javascript.Vbscript делает поддержка передачи по ссылке, так что вам может повезти с этим больше.
Надеюсь, это поможет.
Другие советы
// Using javascript
var someString = activeXObj.GetSomething(0);