2011-04-13 15:54 利用事件触发实现ActiveX调用js函数-阿里云开发者社区

开发者社区> double2li> 正文

2011-04-13 15:54 利用事件触发实现ActiveX调用js函数

简介: 之前写过文章通过自定义函数来实现ActiveX回调JS中的函数,最近在网上发现一更简洁的方法,通过事件触发,在这里小结一下,为使内容连贯,请参考我之前的《一步一步实现ATL开发的ActiveX组件与javascript的交互》系列文章http://hi.
+关注继续查看

之前写过文章通过自定义函数来实现ActiveX回调JS中的函数,最近在网上发现一更简洁的方法,通过事件触发,在这里小结一下,为使内容连贯,请参考我之前的《一步一步实现ATL开发的ActiveX组件与javascript的交互》系列文章http://hi.baidu.com/hwygy_001/blog/item/21ec5bc5294f64bd8326ac72.html

 

1.  如果使用的是VS2010,则在Class View窗口中右击_ICalcEvents接口,依次选择“Add”、“Add Method…”,根据添加方法向导添加AddCompleted方法,如下图所示:

若采用的VS2008,则没有自动的事件方法,需要手工注册,找到项目的.idl文件,在其中的library CalculatorLib中添加如下代码:

dispinterface_ICalcEvents

        {

                properties:

                methods:

                    [id(1)]voidAddCompleted([in]DOUBLE * bstrCmdInfo);

        };

完成手工注册。

2.  然后在Class View窗口中右击CCalc类,依次选择“Add”、“Add Connection Point…”,在弹出的实现连接点窗口中实现_ICalcEvents接口。

 

 

 

3.  完成向导后,VS会自动为我们生成基本框架,包括引发事件的方法Fire_AddCompleted。我们只需在Add方法中添加_ICalcEvents_CP.h(生成的Fire_AddCompleted方法所在文件)头文件,运算并在运算结束时调用Fire_AddCompleted的代码:


STDMETHODIMP CCalc::Add(DOUBLE a, DOUBLE b,DOUBLE * result) 

{ double result; 

*result = a + b; 

 Fire_AddCompleted(result); 

return S_OK; 

}

 

4.在网页中添加代码进行测试(添加的javascript代码如下),应该能够得到我们想要的效果。

<script type="text/javascript">    

 

function add() {        

var calc = document.getElementById('Calc');   

    calc.attachEvent("AddCompleted", OnAddCompleted);        

    calc.Add(3, 4);    

}     

function OnAddCompleted(result) {      

  alert(result);    

}

</script>

 

参考文章:http://www.cnblogs.com/chinadhf/archive/2010/09/03/1817336.html

 

 

from:http://hi.baidu.com/hwygy_001/item/fd04a23a2649be0acfb9fe23

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
Node.js调用mysql的存储过程
例子仅在windows下测试通过,没有放在linux下测试。如有问题,可以电邮给我~ 1、安装node.js、mysql,此处略(自行搜索吧)…; 2、创建一个名为test的数据库,然后建一张名为user_info的表(仅供测试)… 这里假定mysql使用的用户名为root,密码为123456 相应...
906 0
在VS2005中设置WPF中自定义按钮的事件
原文:在VS2005中设置WPF中自定义按钮的事件 上篇讲了如何在Blend中绘制圆角矩形(http://blog.csdn.net/johnsuna/archive/2007/08/13/1740781.aspx),本篇继续下一步骤,如何自定义按钮的事件。
820 0
JDBC在getConnection之前为什么要调用Class.forName(转)
获取一个数据库连接的通用模板如下: String driver = "oracle.jdbc.OracleDriver"; String url = "jdbc:oracle:thin:@127.
950 0
html5 touch事件实现触屏页面上下滑动(一)
最近做的做那个app的项目由于用overflow:hidden导致了很多问题,于是决定研究下html5的touch事件。想找个全面点的帖子真是难死了,虽然好多关于html5 touch的文章但大多都是介绍touch事件或者很简短的小demo。
684 0
函数计算自动化运维实战2 -- 事件触发eip自动转移
函数计算 阿里云函数计算是一个事件驱动的全托管计算服务。通过函数计算,您无需管理服务器等基础设施,只需编写代码并上传。函数计算会为您准备好计算资源,以弹性、可靠的方式运行您的代码,并提供日志查询,性能监控,报警等功能。
1780 0
使用阿里云Serverless函数计算实现HTTP健康检查+故障短信通知
定时对网站/API进行请求,根据请求响应判断服务是否可用,网站是否存在宕机,当发生宕机时,发送短信通知管理员.
1082 0
js 实现谷歌浏览器中隐藏标签后setInterval事件暂停
Interval_control= setInterval(function(){newsSlide_ChangeImg(-1,'left',start_time);},3000);//设置自动切换函数 window.
679 0
CV:基于keras利用cv2自带两步检测法对《跑男第六季第五期》之如花片段(或调用摄像头)进行实时脸部表情检测
CV:基于keras利用cv2自带两步检测法对《跑男第六季第五期》之如花片段(或调用摄像头)进行实时脸部表情检测
40 0
+关注
double2li
一个在IT行业摸爬滚打的老司机
2870
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载