Question

J'ai un ActiveX (3ème partie, pas de source) avec une méthode qui a un paramètre de référence comme celui-ci:

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

En C ++, vous l'exécuteriez comme ceci:

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

Comment puis-je l'exécuter via Javascript? Toutes les autres fonctions de l’ActiveX fonctionnent bien, mais celle-ci semble impossible? Si ce n'est pas possible en Javascript, est-ce en VBScript? Je n'ai pas eu de chance non plus.

BTW, cela doit être fait dans Internet Explorer

Était-ce utile?

La solution

Je ne peux pas vous donner de réponse précise, mais je ne crois pas que cela puisse être fait. J'espère que quelqu'un va me prouver le contraire, mais voici pourquoi je pense que cela ne peut pas fonctionner ...

En Javascript, toutes les variables sont passées par valeur. Dans IE, vous allez créer une instance de la classe javascript ActiveXObject pour envelopper votre objet COM. Même si cet objet wrapper pouvait obtenir la valeur de votre objet COM, il n’était pas possible en Javascript de vous renvoyer cette valeur.

Si vous savez que vous exécuterez IE dans Windows, essayez d’utiliser vbscript au lieu de javascript. Vbscript prend en charge la méthode de référence par référence, ce qui vous donnera peut-être plus de chance.

J'espère que cela aide.

Autres conseils

// Using javascript
var someString = activeXObj.GetSomething(0);
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top