数据交换
javascript数据类型没有C++丰富,最好的方法就是把通过字符串传数据,按照约定打包然后解析。
js传给activex 传数据如果不含中文,可以直接使用char*,工程属性为多字节编码,
activex给js传字符串则需要宽字符。。。
方法相互调用
js调用activex的函数最直接,在html网页中定义了全局的activex 物体(OBJECT),js直接通过object的id操作控件。通过activex中函数的外部名字调用成员函数。函数的外部名字定义在ctrl文件中 DISP_FUNCTION_ID宏的第二个字符串。一般的接口函数,使用DISP_FUNCTION_ID。
ativex调用js的函数,有点类似QT的信号量机制。首先在activex中申明事件映射,事件函数内部只是FireEvent一下,在activex中可以随意调用该事件函数。 js中实现该函数(同样使用事件函数的外部名字)定义该函数的行为,然后当activex中调用该函数时,实际调用的是js的函数。事件函数,使用EVENT_CUSTOM_ID宏。
js和activex的数据交换是通过方法相互调用实现的。
代码下载:http://download.youkuaiyun.com/source/3476200
add - 2011-8-5
activex控件跟DLL原理一致,当html网页中定义了多个控件的OBJECT,他们的ID都相同。 这些控件OBJECT共享着程序中的全局变量,全局回调函数。对全局变量的修改最近一次生效。。。