Pregunta

Tengo un ActiveX (tercero, sin fuente) con un método que tiene un parámetro de referencia como este:

HRESULT GetSomething(
[in] short param1,
[out] BSTR* someString);

En C ++ lo ejecutarías así:

BSTR someString = NULL
m_activeX.GetSomething(0, &someString);

¿Cómo ejecutaría esto a través de Javascript? ¿Todas las otras funciones en el ActiveX funcionan bien, pero esta parece imposible? Si no es posible en Javascript, ¿está en VBScript? Yo tampoco he tenido suerte.

Por cierto, esto debe hacerse en Internet Explorer

¿Fue útil?

Solución

No puedo darte una respuesta definitiva, pero no creo que se pueda hacer. Espero que alguien me demuestre que estoy equivocado, pero he aquí por qué creo que no puede funcionar ...

En Javascript, todas las variables se pasan por valor. En IE, creará una instancia de la clase de javascript ActiveXObject para envolver su objeto COM. Incluso si ese objeto contenedor podría obtener el valor de su objeto COM, no hay forma en Javascript de que le devuelva ese valor.

Si sabe que se ejecutará en IE en Windows, podría intentar usar vbscript en lugar de javascript. Vbscript admite paso por referencia para que tenga más suerte con eso.

Espero que ayude.

Otros consejos

// Using javascript
var someString = activeXObj.GetSomething(0);
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top