开发者社区> double2li> 正文
阿里云
为了无法计算的价值
打开APP
阿里云APP内打开

MFC Activex与JavaScript的接口交互

简介: MFC Activex与JavaScript的接口交互 在Activex的应用中与网页的JavaScript的交互必不可少,在这里就简单的介绍下。VC 创建的Activex的有两种类型,MFC Activex与ATL Activex, 在VC新建工程的时候选择,这篇文章介绍的是针对MFC Activex的,ATL Activex可以绕过了。
+关注继续查看

MFC Activex与JavaScript的接口交互

在Activex的应用中与网页的JavaScript的交互必不可少,在这里就简单的介绍下。
VC 创建的Activex的有两种类型,MFC Activex与ATL Activex, 在VC新建工程的时候选择,这篇文章介绍的是针对MFC Activex的,ATL Activex可以绕过了。
测试环境:: VC++ 6.0 SP6

(一) MFC Activex与JavaScript的传递参数、返回值

在JavaScript调用时Activex方法,可以归分为两种:
1参数为整型变量,返回为整型变量

long CActivexCtrl::Func(long i) 
{
return 0;
}


2 参数为字符串变量,返回为字符串变量

复制代码
BSTR CActivexCtrl::Func(LPCTSTR str) 
{
CString strResult;
strResult = "TeastString2 ret";
return strResult.AllocSysString();
}
复制代码


3 ….其它的调用方式参考上述两种
4 在JavaScript中变量默认都可以是variant类型,这样我们就可以利用VARIANT传递各种类型的参数,在Activex中,先对variant的变量进行类型转换,再进行调用。当返回结果时,将结果包装成variant类型的变量再返回。(variant与各种类型变量转换,不是本文重点,在这里不进行讲解)

复制代码
VARIANT CActivexCtrl::Func(const VARIANT FAR& para1) 
{
VARIANT vaResult;
VariantInit(&vaResult);

return vaResult;
}
复制代码

 

(二) MFC Activex异步调用JavaScript事件方法

1 在MFC Activex中注册回调函数:

复制代码
//回调函数测试
#include <ATLBASE.H>
extern CComModule _Module;
#include <ATLCOM.h>

//回调函数--全局变量
CComDispatchDriver m_Func1;

//注册回调函数
void CActivexCtrl::regfun(LPDISPATCH bstrFun)
{
m_Func1 = bstrFun;
}
//触发回调函数
void CActivexCtrl::func_calljs()
{
VARIANT varArg[1];
varArg[0].vt = VT_UINT;
varArg[0].uintVal = 10;
m_Func1.InvokeN((DISPID)DISPID_VALUE, varArg, 1);
}
复制代码

 

2 JavaScript的中注册异步过程:

复制代码
//异步回调函数过程
function callfun(i)
{
alert("callback function in js, ret=" + i);
}
//注册回调函数
obj.regfun(callfun);

 

from:http://www.cnblogs.com/sding/archive/2012/04/03/2431142.html

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

相关文章
JSP与JavaScript交互之(一)成绩信息输入的奖学金评定
JSP与JavaScript交互之(一)成绩信息输入的奖学金评定
0 0
带交互功能的HTML5+JS跳动的爱心
带交互功能的HTML5+JS跳动的爱心
0 0
带交互功能的HTML5+JS黑客帝国
带交互功能的HTML5+JS黑客帝国
0 0
带交互功能的HTML5+JS爱心樱花
带交互功能的HTML5+JS爱心樱花
0 0
带交互功能的HTML5+JS烟花特效
带交互功能的HTML5+JS烟花特效
0 0
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
weex-自定义module,实现weex在iOS的本地化,js之间互相跳转,交互,传值(iOS接入weex的最佳方式)
0 0
cocos webview js和c++交互
cocos webview js和c++交互
0 0
【Javaweb】【Js】【Servlet】Js与Servlet交互 - Js请求Servlet与响应Servlet
【Javaweb】【Js】【Servlet】Js与Servlet交互 - Js请求Servlet与响应Servlet
0 0
JavaScript 浏览器交互:alert、prompt 和 confirm
JavaScript 浏览器交互:alert、prompt 和 confirm
0 0
Android JS 交互=坑
Android JS 交互=坑
0 0
+关注
double2li
一个在IT行业摸爬滚打的老司机
文章
问答
文章排行榜
最热
最新
相关电子书
更多
Javascript中的函数
立即下载
Javascript异步编程
立即下载
JS零基础入门教程(上册)
立即下载