我有一个COM服务器,用C#实现。它揭露了一个这样的装饰:从JScript的C#COM服务器访问
[ComVisible(true)]
[ProgId("MyServer.MyClass")]
[ClassInterface(ClassInterfaceType.AutoDispatch)]
我注册了“regasm/codebase MyServer”的DLL。该服务器必须从WSC(用JScript实现的COM服务器)中使用。因此我使用了AutoDispatch接口。
当WSC调用
o = new ActiveXObject("MyServer.MyClass");
我得到的错误“自动化服务无法创建对象”。
我检查与该C++程序COM服务器的注册:
hr = ::CoInitialize(NULL);
hr = ::CLSIDFromProgID(L"MyServer.MyClass", &clsid);
hr = ::CoCreateInstance(clsid, NULL, CLSCTX_ALL, IID_IDispatch, (void**)&pObj);
,并能创建对象。所有返回值都被检查为S_OK。
需要什么使COM服务器可以访问JScript?
JScript代码的答案可以创建的ActiveXObject在Windows XP(32位)的实例。但是相同的代码在Windows 7(64位)上失败。 – harper 2010-02-05 06:04:47