2010-02-04 65 views
0

我有一个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?

+0

JScript代码的答案可以创建的ActiveXObject在Windows XP(32位)的实例。但是相同的代码在Windows 7(64位)上失败。 – harper 2010-02-05 06:04:47

回答