J'ai un serveur COM, implémenté en C#. Il expose une classe décorée comme ceci:C# Accès au serveur COM à partir de JScript
[ComVisible(true)]
[ProgId("MyServer.MyClass")]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
J'ai enregistré la DLL avec "regasm/codebase MyServer". Ce serveur doit être utilisé à partir d'un WSC (un serveur COM implémenté en JScript). J'ai donc utilisé l'interface AutoDispatch.
Lorsque le WSC appelle
o = new ActiveXObject("MyServer.MyClass");
je reçois l'erreur « servent d'automatisation ne peut pas créer l'objet ».
j'ai vérifié l'enregistrement du serveur COM avec ce programme C++:
hr = ::CoInitialize(NULL);
hr = ::CLSIDFromProgID(L"MyServer.MyClass", &clsid);
hr = ::CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IDispatch, (void**)&pObj);
et a pu créer l'objet. Toutes les valeurs de retour ont été vérifiées pour être S_OK. Qu'est-ce qui est nécessaire pour rendre le serveur COM accessible pour JScript?
Le code JScript peut créer l'instance de l'ActiveXObject sous Windows XP (32 bits). Mais le même code échoue sur Windows 7 (64 bits). – harper