Frage

Ich habe eine ActiveX (3rd-Party, keine Quelle) mit einer Methode, die einen Referenzparameter wie folgt hat:

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

In C ++ können Sie es wie folgt ausführen würde:

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

Wie würde ich dies über Javascript ausführen? Alle anderen Funktionen in der ActiveX funktionieren, aber diese sieht unmöglich? Falls dies nicht möglich in Javascript, ist es in VBScript? Ich habe kein Glück in entweder hatte.

BTW, diese in Internet Explorer getan werden muss,

War es hilfreich?

Lösung

Ich kann Ihnen keine definitive Antwort geben, aber ich glaube es nicht getan werden kann. Ich hoffe, jemand wird beweisen, mich nicht falsch, aber hier ist, warum ich denke, es kann nicht funktionieren ...

In Javascript werden alle Variablen als Wert übergeben. In IE, werden Sie eine Instanz der ActiveXObject erstellen JavaScript-Klasse Ihres COM-Objekt zu wickeln. Selbst wenn das Wrapper-Objekt den Wert von Ihrem COM-Objekt bekommen kann, gibt es keine Möglichkeit in Javascript für sie diesen Wert zurück an Sie weitergeben.

Wenn Sie wissen, dass Sie im Internet Explorer unter Windows ausgeführt werden werden, könnten Sie versuchen Vbscript statt Javascript. Vbscript hat Unterstützung paßt-by-reference, so dass Sie mit, dass mehr Glück haben könnten.

Ich hoffe, das hilft.

Andere Tipps

// Using javascript
var someString = activeXObj.GetSomething(0);
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top