从JScript访问C#COM服务器

时间:2010-02-04 19:16:58

标签: c# com-interop javascript

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

使Jserver可以访问COM服务器需要什么?

2 个答案:

答案 0 :(得分:0)

您班级ole automation compatible中使用的类型是什么?我不知道jscript是否预先检查了oleautomation兼容性。

答案 1 :(得分:0)

如果问题是x64,请参阅Hot to make COM ActiveX object work in IE 64 bit?

的答案