`
sipgreen
  • 浏览: 26858 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

MFC Activex与JavaScript的接口交互

    博客分类:
  • C++
 
阅读更多

在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);
分享到:
评论

相关推荐

    ActiveX组件与JavaScript交互

    ### ActiveX组件与JavaScript交互详解 #### 一、概述 ActiveX组件是一种可以在网页或桌面应用程序中运行的小型可执行程序,它支持多种语言编写,包括C++等。JavaScript是广泛应用于网页开发的一种脚本语言。本文将...

    关于MFC对话框与静态HTML交互

    MFC(Microsoft Foundation Classes)是微软公司提供的一套用于简化Windows应用程序开发的类库,其中对话框作为其中的核心部分之一,承担着与用户交互的重要任务。然而,在现代应用程序中,有时候我们需要将Web内容...

    MFC的WebBrowser控件 C++与JavaScript之间数据交互传递

    这个对象是JavaScript中的一个全局对象,它提供了与宿主环境(这里是MFC应用)交互的接口。在JavaScript中,你可以定义一个函数,然后通过`window.external`调用C++的函数: ```javascript function ...

    源代码——MFC的WebBrowser控件 C++与JavaScript之间数据交互传递

    2. **IWebBrowser2接口**:这是WebBrowser控件的主要接口,通过这个接口我们可以控制浏览器的行为,如导航、前进、后退等,同时也提供了与HTML文档和JavaScript交互的能力。 3. **Automation技术**:这是COM的一...

    MFC与Html、javascript数据交互

    总结来说,MFC与HTML、JavaScript之间的数据交互涉及到多种技术和方法,包括但不限于ActiveX控件、IWebBrowser2接口、IDispatch、MessageChannel和PostMessage、事件桥接以及自定义协议处理。开发者可以根据具体的...

    MFC与Html交互

    这个接口允许宿主(MFC应用)与脚本引擎(如Internet Explorer的JScript引擎)进行交互,执行或解析脚本代码。 3. **IDispatch接口**:在MFC中,可以将类声明为IDispatch支持,使得类的成员函数可以通过IDispatch...

    基于MFC的ActiveX控件开发(JS传递变量数据给控件)

    总之,基于MFC的ActiveX控件开发涉及到C++编程、MFC框架的理解、COM技术以及JavaScript交互等多个方面。通过这个过程,开发者可以创建具有丰富功能的自定义控件,使得网页应用能够利用本地系统资源,提升用户体验。

    mfc activex 打开硬盘上的BMP图片,需要VS2015,ie浏览器

    在IT行业中,MFC(Microsoft Foundation Classes)是一个C++库,用于构建Windows应用程序,而ActiveX是微软开发的一种技术,允许在Internet Explorer或其他支持ActiveX的环境中嵌入和交互控件。本文将深入探讨如何...

    CWebPage类,用于MFC与JS交互编程

    CWebPage类是MFC(Microsoft Foundation Classes)框架中用于实现浏览器控件与JavaScript交互的一个重要工具。在Windows应用程序开发中,MFC提供了一种高效、便捷的方式来构建桌面应用,而CWebPage类则帮助开发者将...

    MFC显示网页,与网页交互,响应网页消息源码

    在MFC(Microsoft Foundation Class)框架中,显示网页并与其进行交互是一项常见的需求,这通常涉及到ActiveX控件或者WebBrowser控件的使用。本文将深入探讨如何在MFC应用程序中实现这一功能,并且响应来自网页的...

    MFC程序与FLASH交互

    同时,Flash也可以通过ACTIONSCRIPT与MFC程序进行通信,比如通过ExternalInterface接口暴露函数给JavaScript,再由JavaScript调用MFC程序暴露的ActiveX接口。 在实际应用中,可能需要处理的问题包括: 1. 初始化和...

    VS2010(VC++)-MFCActiveX-打包-WEB调用

    而ActiveX技术则是一种允许在不同应用程序之间共享组件的技术,常用于创建网页交互性控件。本篇文章将详细探讨如何使用VS2010中的MFC来创建ActiveX控件,并进一步进行打包和在WEB环境下调用。 首先,我们需要了解...

    html_control.rar_HTML 交互_MFC html_MFC与Html交互_html_mfc html交互

    MFC与HTML控件的交互主要通过两种方式:一是通过调用WebBrowser控件的API,二是通过JavaScript与C++的通信。API调用包括加载HTML文档(LoadUrl)、执行JavaScript代码(ExecuteScript)等。另一方面,HTML页面中的...

    javascript第二版、HTML第五版 c++MFC activex提高版

    这三本书籍的学习资料组合,旨在帮助开发者全面理解Web前端开发中的JavaScript和HTML5,以及C++环境下利用MFC进行Windows应用开发和ActiveX组件的使用。通过深入学习,你可以掌握创建交互式网页、构建桌面应用程序...

    Activex\web上用Activex控件开发步骤(MFC).

    ### Activex\web上用Activex控件开发步骤(MFC) #### 概述 在Web开发领域,ActiveX 控件曾是一种广泛使用的客户端技术,尤其是在Internet Explorer浏览器中。它允许开发者在用户计算机上安装并运行自定义编写的组件...

    MFC\C++与FLASH互通

    在C++中,我们可以使用COM(Component Object Model)接口来与ActiveX控件进行交互,调用Flash Player的相关方法和事件。 首先,要实现C++到Flash的通信,我们需要在MFC项目中引入Flash Player ActiveX控件。这通常...

    mfc+flash 及其交互

    2. **调用接口**:Flash对象提供了一些接口供外部调用,例如`callFunction`方法,允许MFC应用执行Flash中的JavaScript函数。这个过程通常需要对Flash ActionScript有基本的理解,因为`callFunction`接收的是...

    网页JS调用MFC的ActiveX控件函数源代码

    网页JS调用MFC的ActiveX控件是...综上所述,网页JS调用MFC的ActiveX控件涉及到客户端开发、浏览器插件技术、JavaScript交互等多个知识点。在实际应用中,需结合具体需求和环境,灵活运用并注意安全和兼容性问题。

    MFC Active OCX

    4. **与JavaScript交互**:由于ActiveX控件常在网页中使用,所以它们经常需要与JavaScript进行交互。通过IDispatch接口,ActiveX控件可以暴露其属性和方法供JavaScript调用,同时也能接收JavaScript的事件。 5. **...

    TEECHART VC2005开发MFC_ActiveX控件

    在实际应用中,Teechart ActiveX控件可以广泛应用于报表系统、数据分析工具、科学计算软件等领域,提供丰富的图表类型和交互功能,以帮助用户更好地理解和解释数据。同时,由于它支持ActiveX技术,可以在多种Windows...

Global site tag (gtag.js) - Google Analytics