javascript与MFC ActiveX控件接口方法数据交换

JavaScript010

javascript与MFC ActiveX控件接口方法数据交换,第1张

<OBJECT ID="Upload" CLASSID="CLSID:6ACD9A13-0226-4216-90DA-FE10119199C6" width=0 height=0 codebase="ctrl/sagecosl.cab#Version={/$g_version/}"></OBJECT>

模板中放入上面的js中通过ID得到一个对象

var obj=document.all("Upload")

读:

var return=obj.get()

写:obj.set("asds")

用Depends工具看看你的控件都使用什么dll了,可以肯定的是你用的dll不能用的机器上没有,将这些库文件拷贝全了就可以了,还有要注意不要拿debug版的文件到其他机器上用,基本上用不了的。

我也遇到过类似问题,我要带回的是一个SAFEARRAY*,但是IDispatch接口只支持VARIANT参数,以致向导根本不支持此种参数,更不用说对应的分发映射宏了,最后是用VARINT*带回的安全数组。

向导应该支持BSTR*参数,但是如果不能用,你不妨用VB或tstcon32测试一下这个函数,看其是否被分发成功,如果没成功的话,那就是不支持了。

有两个方法可以解决问题:1、实现双接口,自己列集和散集,这是相当复杂的过程,我还没尝试过,帮不了你。2、改变方法参数为VARIANT*,或返回一个VARIANT。这个很简单,网上一搜就能搞定。