Domanda

Ho un ActiveX (di terze parti, nessuna fonte) con un metodo che ha un parametro di riferimento come questo:

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

In C ++ lo avresti eseguito in questo modo:

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

Come eseguirlo tramite Javascript? Tutte le altre funzioni di ActiveX funzionano bene, ma questa sembra impossibile? Se non è possibile in Javascript, è in VBScript? Neanche io ho avuto fortuna.

A proposito, questo deve essere fatto in Internet Explorer

È stato utile?

Soluzione

Non posso darti una risposta definitiva, ma non credo che si possa fare. Spero che qualcuno mi dimostri di sbagliare, ma ecco perché penso che non possa funzionare ...

In Javascript, tutte le variabili vengono passate per valore. In IE, creerai un'istanza della classe javascript ActiveXObject per avvolgere il tuo oggetto COM. Anche se quell'oggetto wrapper potesse ottenere il valore dal tuo oggetto COM, non c'è modo in Javascript di restituirti quel valore.

Se sai che eseguirai IE su Windows, potresti provare a usare vbscript invece di javascript. Vbscript supporta il pass-by-reference, quindi potresti avere più fortuna.

Spero che sia d'aiuto.

Altri suggerimenti

// Using javascript
var someString = activeXObj.GetSomething(0);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top