ActiveX控件调用JavaScript函数的方法

1.向ActiveX注册JS函数:
 在ActiveX中添加接口方法 - void RegisterFunction(BSTR bstrFuncName, IDispatch* dispFunc);
 JavaScript代码声明一个函数,并调用RegisterFunction接口向ActiveX注册该函数,供ActiveX调用。
2.保存注册的函数,ActiveX使用CComDispatchDriver对象保存注册的JS函数(IDispatch接口指针)
 CComDispatchDriver m_Func1;
 void RegisterFunction(BSTR bstrFuncName, IDispatch* dispFunc)
 {
  if (bstrFuncName == "1")
   m_Func1 = dispFunc;
 }
 
3.调用注册的函数,ActiveX使用CComDispatchDriver::InvokeN函数调用注册的函数
 以下是对接受一个无符号整型参数的JS函数的调用:
 VARIANT varArg[1];
 varArg[0].vt = VT_UINT; varArg[0].uintVal = 1;
 try{
  m_Func1.InvokeN((DISPID)DISPID_VALUE, varArg, 1);
 }
 catch(...){}
 
4.注意,对JS函数的调用必须在ActiveX程序的主线程中执行!

 

from:http://www.cnblogs.com/wxy8/archive/2011/04/06/2006743.html

时间: 2024-11-18 23:02:58

ActiveX控件调用JavaScript函数的方法的相关文章

C#如何调用activex控件里的函数

问题描述 新手菜鸟一枚,初到论坛,望大大们多多帮忙请教如何在c#中调用activex控件里的函数,函数没有公开,有CLSID,并且知道函数名无输入值,其中的DLL不允许调用 解决方案 解决方案二:用loadlibraryapi调用.解决方案三:不公开,又不允许调用,你怎么调用?解决方案四:没公开的函数,不能调用啊.

【转】ActiveX控件注册的几种方法

from:http://hi.baidu.com/estellejiang/blog/item/af16e862bbd1d3d7e6113aa7.html      ActiveX控件是一个动态链接库,是作为基于COM服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX控件的前身就是OLE控件.由于ActiveX控件与开发平台无关,因此,在一种编程语言上开发的ActiveX控件可以无须作任何修改,即可在另一种编程语言中使用,其效果如同使用Windows通用控件一样.如:在VC++

c++ mfc activex-开发一个activex控件调用另一个Activex控件

问题描述 开发一个activex控件调用另一个Activex控件 我现在利用Vc++2010开发一个新的控件项目,其中一个显示画面要插入其他厂家的activeX控件,想利用其中的功能,做进一步的功能增强.但是我发现尽管项目编译没有报错,但在实际运行调用过程根本实现不了.通过断点追踪发现,那个显示画面的m_hWnd在生成过程中为0x0000000.但是如果移除那个厂家的activex控件,那个显示画面的m_hWnd在生成过程中为非零.请教高手其中的原因?请问activeX控件的二次封装能否实现?最

activex-C#开发ActiveX控件调用dll文件时,dll文件放在什么位置,我的出错了

问题描述 C#开发ActiveX控件调用dll文件时,dll文件放在什么位置,我的出错了 通过c#谢了一个很简单的Activex控件,调用dll文件(dll文件是c++写的,并且dll文件不是com组件),在普通的容器中调用动态库都没问题,但是通过activex时就会出错,请问这是问什么,请留言,也可以加我qq:574225218 解决方案 在dll文件中调用VBA的命令 解决方案二: 是在IE中测试出错么?尝试把浏览器的安全等级设置全部调到最低,在客户端安装.net framework并且运行

activex-C#开发ActiveX控件调用动态库DLL

问题描述 C#开发ActiveX控件调用动态库DLL 我想开发一个C# ActiveX控件调用动态库DLL,能够在网页中使用,创建ActiveX控件我已经完成了,但调用DLL动态库没有相应的反馈给我,就像没有做任何操作一样,网上说把动态库DLL放到windows/System32下面,可以调用成功,但我照做了,还是没有反应,我的系统是WIN732位,动态库DLL在C/S程序下调用是没有问题,希望高人帮忙解答下,如果对问题有什么不明白之处,可以留言,谢谢 解决方案 ActiveX控件需要注册(命令

ActiveX控件与Javascript之间的交互示例_javascript技巧

1.ActiveX向Javascript传参 复制代码 代码如下: <script language="javascript" for="objectname" event="fun1(arg)"> fun2(arg); </script> objectname为ActiveX控件名,通过<object>标签里的id属性设定,如下: 复制代码 代码如下: <object id="objectna

ActiveX控件调用XML文件的问题

问题描述 我用ActiveX控件想调用XML文件在做安装文件的时候XML文件也放在了客户端,首先要获得XML文件的绝对路径,XML文件安装在默认的安装目录下但是以下方法却获取的是IE浏览器的绝对路径System.Environment.CurrentDirectoryApplication.StartupPath请问有什么办法获取ActiveX的安装目录或者在.NET的安装部署下,设置安装路径,并且用户不能修改,用什么办法来实现呢

ActiveX控件注册的几种方法

本文中的程序原为VC++所编写,略改动一些,将程序用C++Builder编写. ActiveX控件是一个动态链接库,是作为基于COM服务器进行操作的,并且可以嵌入在包容器宿主应用程序中,ActiveX控件的前身就是OLE控件.由于ActiveX控件与开发平台无关,因此,在一种编程语言上开发的ActiveX控件可以无须作任何修改,即可在另一种编程语言中使用,其效果如同使用Windows通用控件一样.如:在VC++中开发的ActiveX控件,不作任何修改即可应用于VB中.由此可见,通过使用Activ

JavaScript调用Activex控件的事件的实现方法_javascript技巧

书写成这样: <SCRIPT type="text/javascript" FOR="activexID" EVENT="onXXXevent()" > // js 处理具体内容. </SCRIPT> 当acitveX控件 onXXXevent()事件被触发时,调用此方法. 如果一个半个的话还好说,几十个这样的函数,把我的页面占据的满满的.况且在VS2008中,"设置选定内容格式化"总是提示:"