我有一个ActiveX(第三方,没有源代码),其方法具有如下参考参数:

HRESULT GetSomething(
[in] short param1,
[out] BSTR* someString);

在C ++中你可以像这样执行它:

BSTR someString = NULL
m_activeX.GetSomething(0, &someString);

我如何通过Javascript执行此操作? ActiveX中的所有其他功能都可以正常工作,但这个看起来不可能吗?如果在Javascript中不可能,它是否在VBScript中?我也没有运气。

BTW,这必须在Internet Explorer中完成

有帮助吗?

解决方案

我不能给你一个肯定的答案,但我不相信它可以做到。我希望有人会证明我错了,但这就是为什么我认为它不起作用......

在Javascript中,所有变量都按值传递。在IE中,您将创建一个ActiveXObject javascript类的实例来包装您的COM对象。即使该包装器对象可以从COM对象获取值,Javascript也无法将该值传递给您。

如果你知道你将在Windows上运行IE,你可以尝试使用vbscript而不是javascript。 Vbscript 确实支持pass-by-reference,所以你可能会更幸运。

我希望有所帮助。

其他提示

// Using javascript
var someString = activeXObj.GetSomething(0);
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top