声明:参考资料来自其他博主,如果侵犯您的权益,需要删除本文,请联系289544113@qq.com进行删除。
最近在研究OCX,现在把JS与OCX的交互实现整理记录一下。
一、在VS2008根据MFC ActiveX控件向导生成一个OCX,具体参考了http://download.csdn.net/detail/tgdzsjh/6545751中的FirstOcx创建过程。
在VS2008中生成FirstOcx的时候,FirstOcx.ocx已经注册好了;如果需要手动注册的话,先将FirstOcx.ocx复制到C:\Windows\System32下(64位复制到C:\Windows\SysWOW64下)以管理员身份运行cdm,然后cd到FirstOcx.ocx所在目录输入regsvr32 FirstOcx.ocx进行注册。由此ocx已创建好。
二、JS调用First.ocx里的AboutBox()和MyFunction()。这里参考了http://fpcfjf.blog.163.com/blog/static/55469793201501231519297/这篇文章。具体代码如下:
<!DOCTYPE html> <html> <head> <title>js and ocx interface</title> <script type="text/javascript"> function js_init(){ FirstOcx.AboutBox(); alert("login successed"); } function js_call(){ FirstOcx.MyFunction(); } </script> </head> <body> <p> <object classid="clsid:E246C14F-DECE-492E-9BB7-14C7E322BEC1" id ="FirstOcx" style="width:347px;height: 265px"> <PARAM NAME = "_Version" VALUE = "65536"> <PARAM NAME = "_ExtentX" VALUE = "2646"> <PARAM NAME = "_ExtentY" VALUE = "1323"> <PARAM NAME = "_StockPros" VALUE = "0"> </object> </p> <p> <input id = "Button1" type = "button" value = "initialize" οnclick="return js_init()" /> <input id = "Button2" type = "button" value = "on self" οnclick=" return js_call()" /> </p> </body> </html>
因为在创建OCX的时候,已经进行了调度映射,所以第二篇参考文章中说的问题就解决了。
下一步,将研究JS和OCX带参数的函数之间的参数传递。
代码下载: