java调用dll或ocx控件(在SWT、web、java项目中调用)

本文详细介绍了如何在Java环境中调用DLL和OCX控件,覆盖了在SWT应用程序、Web(通过HTML和JSP)以及纯Java项目中的实现方法,包括不带参数和带参数的方法调用,以及ActiveX控件在HTML和JSP中的应用。
摘要由CSDN通过智能技术生成

java调用dll或ocx控件(在SWT、web、java项目中调用)


java调用本地dll或ocx分成三个方向:

一、在SWT中调用ocx

将ActiveX控件集成到SWT项目中,一个调用pdf查看器实例,可参看:https://www.ibm.com/developerworks/cn/linux/opensource/os-activex/
这里用的是SWT/JFace开发application中SWT自带的org.eclipse.swt.ole.win32 包可以支持内嵌OLE和ActiveX。

具体用法如下:

 //创建一个OleFrame做为OLE(或ActiveX)的框架
 OleFrame oleFrame = new OleFrame(this, SWT.NONE);
 //创建ActiveX的容器,其中的progID是ActiveX的progid,在注册表中可以找到
 OleControlSite oleControl = new OleControlSite(oleFrame, SWT.NONE, “progID”);
 //OleAutomation类用来执行ActiveX中的方法
 OleAutomation oleAutomation = new OleAutomation(oleControl);
 //将ActiveX显示在application中
 oleControl.doVerb(OLE.OLEIVERB_SHOW);

调用AcitveX中方法的具体过程:

1、不带参数的方法调用

 //获取Method Name的ID,Method Name为ActiveX中具体的方法名
 int[] regspid = oleAutomation.getIDsOfNames(new String[] { "MethodName" });
 int dispIdMember = regspid[0];
 //方法调用
 oleAutomation.invoke(dispIdMember);

2、带参数的方法调用

//获取Method Name的ID,Method Name为ActiveX中具体的方法名
int[] regspid = oleAutomation.getIDsOfNames(new String[] { "MethodName" });
int dispIdMember = regspid[0];
//设置方法的具体参数。Variant数组的长度为MethodName方法参数的个数
//假设有四个参数
Variant[] rgvarg = new Variant[4];
rgvarg[0] = new Variant(fileID);
rgvarg[1] = new Variant(itdsURL);
rgvarg[2] = new Variant(idType);
rgvarg[3] = new Variant(reportURL);
//方法调用
oleAutomation.invoke(dispIdMember, rgvarg);
在swt中调用wps的例子:http://download.csdn.net/download/mr_zhaoz/10218083

二、在web中调用ocx

在HTML页面中使用ActiveX控件包含三个基本操作:

将控件放入HTML中;
将该控件下载给用户;
在用户机器上安装该控件。

 如果只是针对IE用户,在HTML中插入ActiveX控件就比较简单;如果同时兼顾IE和Netscape用户,则要做更多工作。大家知道,HTML文件由文本和各种标志 (tags)组成,ActiveX 控件对于IE在HTML中的标志是<OBJECT&#x

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值