2008-10-29 8 views
0

Je suis sur le point de prendre en charge un projet qui nécessite un addon Firefox pour lancer un appel à COM dll installé sur la machine Windows client et j'ai du mal à estimer la complexité de cette entreprise . J'ai un peu d'expérience avec COM, donc je ne suis pas effrayé par cela. J'ai moins d'expérience avec Firefox addons, mais je ne pense pas que c'est là que mes problèmes vont être.Appel d'objets COM à partir d'un addon Firefox

Est-ce que quelqu'un a fait quelque chose comme ça?

Firefox permet-il à ses add-ons de communiquer librement avec le monde extérieur?

Existe-t-il un plugin ou un exemple de code quelque part comme ça (Google a donné peu de résultats utiles)?

Mise à jour: Naturellement, je préférerais une solution qui ne nécessite pas de construire une extension en C++, si c'est possible.

Répondre

2

Créez un XPCOM en C++ pour communiquer avec vos objets COM comme d'habitude. Les extensions XPCOM peuvent alors être mises à disposition de Javascript pour faire le reste de l'extension (GUI principalement, je suppose). Cependant, c'est à peu près tout ce que je comprends à ce sujet :-)

2

Vous pouvez être intéressé par l'extension IE Tab, qui est open source. Je n'ai pas regardé mais je suppose que c'est l'accès Com pour utiliser l'affichage d'IE.

0

Si vous faites cela, vous devrez presque certainement utiliser XPCOM. Jetez un oeil à JSDB de Shanti Rao, qui prend en charge COM/ActiveX dans Javascript. La substance ActiveX est dans un fichier appelé wrap_com.cpp. Il supporte la plupart des interfaces IDispatch; La méthode Invoke de IDispatch est la magie qui rend ce travail.

La complexité de cette opération dépend de la simplicité avec laquelle vous voulez que ce soit de Javascript. Si vous avez implémenté un objet XPCOM appelé IDispatchObject où vous deviez passer dans les noms des méthodes & un tableau d'arguments, alors ce n'est probablement pas trop dur. Si vous voulez créer une méthode générale pour faire des liaisons dynamiques aux objets COM & en vous y référant directement, alors c'est plus difficile ... pas sûr si les techniques utilisées dans JSDB seront transférées à XPCOM.

Questions connexes