`

java application中内嵌ActiveX控件

    博客分类:
  • java
阅读更多

我这里用的是SWT/JFace开发application,SWT自带的org.eclipse.swt.ole.win32 包可以支

持内嵌OLE和ActiveX。
具体用法如下:
//创建一个OleFrame做为OLE(或ActiveX)的框架
OleFrame oleFrame = new OleFrame(this, SWT.NONE);
//创建ActiveX的容器,其中的classID是ActiveX的claid,在注册表中可以找到
OleControlSite oleControl = new OleControlSite(oleFrame, SWT.NONE, “classID”);
//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[] { "Method Name" });
int dispIdMember = regspid[0];
//方法调用
oleAutomation.invoke(dispIdMember);

2、带参数的方法调用
//获取Method Name的ID,Method Name为ActiveX中具体的方法名
int[] regspid = oleAutomation.getIDsOfNames(new String[] { "Method Name" });
int dispIdMember = regspid[0];
//设置方法的具体参数。Variant数组的长度为Method Name方法参数的个数
//假设有四个参数
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);


调用OLE Exemple:Java程序内嵌Word应用程序

package geftest.swt;

import java.io.File;

import org.eclipse.swt.SWT;
import org.eclipse.swt.graphics.Point;
import org.eclipse.swt.layout.GridData;
import org.eclipse.swt.layout.GridLayout;
import org.eclipse.swt.ole.win32.OLE;
import org.eclipse.swt.ole.win32.OleClientSite;
import org.eclipse.swt.ole.win32.OleFrame;
import org.eclipse.swt.widgets.Button;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.Composite;
public class ActiveXTest
{

private Shell sShell = null;
private Button button = null;
private OleClientSite clientSite;
public static void main(String[] args)
{

Display display = Display.getDefault();
ActiveXTest thisClass = new ActiveXTest();
thisClass.createSShell();
thisClass.sShell.open();

while (!thisClass.sShell.isDisposed())
{
   if (!display.readAndDispatch())
    display.sleep();
}
display.dispose();
}

/**
* This method initializes sShell
*/
private void createSShell()
{
GridData gridData = new GridData();
gridData.horizontalSpan = 2;
GridLayout gridLayout = new GridLayout();
gridLayout.numColumns = 3;
sShell = new Shell();
sShell.setText("Shell");
sShell.setLayout(gridLayout);
sShell.setSize(new Point(800, 600));
OleFrame frame = new OleFrame(sShell, SWT.NONE);
button = new Button(sShell, SWT.NONE);
button.setLayoutData(gridData);
button.setText("Save");
button.addSelectionListener(new org.eclipse.swt.events.SelectionAdapter() {
   public void widgetSelected(org.eclipse.swt.events.SelectionEvent e)
   {
    clientSite.save(new File("d:/test.docx"),true);
   }
});
frame.setSize(800,600);
clientSite = new OleClientSite(frame, SWT.NONE,"Word.Document.8");
clientSite.setSize(400,400);
clientSite.doVerb(OLE.OLEIVERB_SHOW);
}

}

分享到:
评论

相关推荐

    PPT插入excel动态图表

    在excel中可以通过窗体或ActiveX控件达到动态控制图表显示的目的,但当Excel图表作为对象内嵌到PPT后,在PPT播放模式下,所有在Excel对象中的控件都是不可选的,只能在PPT的编辑模式下双击对象后在Application.Excel...

    PPT制作动态图表

    在excel中可以通过窗体或ActiveX控件达到动态控制图表显示的目的,但当Excel图表作为对象内嵌到PPT后,在PPT播放模式下,所有在Excel对象中的控件都是不可选的,只能在PPT的编辑模式下双击对象后在Application.Excel...

    微软DSO Framer 解决winform中嵌入office(excel,word,ppt)

    DSO Framer,全称Dynamic Server Objects Framer,它是一种ActiveX控件,可以在WinForm中作为容器来承载Office应用程序的对象模型。通过DSO Framer,开发者可以创建一个窗口,该窗口内嵌有Office应用程序,使得用户...

    将Flash 嵌入WPF 程序源码

    WPF提供了一个内置的`WebBrowser`控件,它可以加载和显示HTML内容,同时也支持内嵌ActiveX控件。因此,我们可以通过`WebBrowser`控件来加载包含Flash内容的网页,从而在WPF程序中展示Flash。 **3. 示例代码** 下面...

    MFCApplication2.rar_barepdl_应用程序与网页交互

    2. **JavaScript和C++桥接**:通常,网页中的JavaScript代码可以通过调用ActiveX控件的方法与应用程序的C++代码进行交互。这需要在C++中暴露一些函数,然后在JavaScript中通过特定的API调用这些函数。 3. **事件...

    WinForm内嵌Unity3D并实现交互

    这是一个ActiveX控件,可以在WinForm表单中显示Unity内容。首先,你需要在Unity中导出为Web Player格式的项目,然后在WinForm设计视图中添加`AxUnityWebPlayer`控件,并设置其`Src`属性指向Unity的Web Player文件...

    基于C#的Excel内嵌程序

    3. **WinForm控件嵌入Excel**:项目可能使用了WebBrowser控件或者 AxHost控件(用于托管ActiveX对象)将Excel工作簿嵌入到WinForm窗口中。这样,用户就可以在应用程序内部查看和编辑Excel内容。 4. **事件处理**:...

    jsp在线阅读pdf

    - 内嵌的`<object>`标签和`<param>`标签一起构成了一个备份方案,当用户的浏览器不支持ActiveX控件时,会尝试使用其他方式加载PDF文件。 #### 三、关键知识点解析 ##### 1. ActiveX控件 - **定义**:ActiveX控件...

    chrome 浏览器调用 ocx 插件配套文件

    Chrome浏览器调用OCX插件是一项技术,允许用户在Chrome中使用特定的ActiveX控件,这些控件通常用于提供Windows应用程序中不常见的功能。OCX(Object Container Exchange)是微软开发的一种组件对象模型(COM),它...

    易语言Api创建浏览器

    在创建浏览器上下文中,`AtlAxWinInit`通常用于初始化一个ActiveX容器,这允许在应用程序中嵌入和控制ActiveX控件,例如Microsoft的WebBrowser控件。WebBrowser控件是一个强大的组件,它能内嵌于任何支持ActiveX的...

    c#写的word嵌入form

    4. **ActiveX控件**: Word的嵌入实际上是通过在Form上添加一个ActiveX控件实现的,这个控件对应于运行的Word应用实例。 5. **事件处理**: 为了实现交互功能,如打开、保存、打印等,你需要为Word控件绑定相应的事件...

    在wpf中嵌入flash

    这个组件通常被称为"ActiveX Host"或者"WebBrowser控件",它允许WPF应用程序通过内嵌Internet Explorer的ActiveX控件来呈现Flash内容。以下是一步一步的实现步骤: 1. 添加WebBrowser控件:在WPF设计视图或XAML代码...

    word嵌入到vb中form窗体中

    在VB的Form设计视图中,添加一个"ActiveX 控件"(如MSComctlLib的OCX控件),例如"Microsoft WebBrowser"控件。这个控件可以显示HTML内容,同样也可以显示Word文档。双击控件,在属性窗口中设置其`Object`属性为`...

    WinAPI-Embed-Browser:将Internet Explorer浏览器控件嵌入到本机Windows程序中

    本项目“WinAPI-Embed-Browser”专注于展示如何将Internet Explorer浏览器控件(也称为ActiveX控件)集成到基于WinAPI的C语言程序中。这个技术允许开发者在他们的应用程序中内嵌一个功能完备的网页浏览组件,使得...

    VB之道,精美对话,有人称VB是个灌篮高手一点都不为过,下面来看看大师们的话吧.

    ActiveX控件是一种可重用的软件组件,可以在VB中直接嵌入,为程序增添更多功能。例如,通过插入ActiveX Web浏览器控件,我们可以让VB应用程序内嵌网页浏览功能;使用Excel控件,则可以实现数据处理和报表生成。 在...

    vc嵌入word开发示例

    1. **ActiveX控件**:在VC++中,可以使用ActiveX控件来嵌入Word。ActiveX是COM的一个子集,提供了一种在不同应用程序间共享代码的方式。通过插入一个ActiveX控件,用户可以在自定义的界面中看到并操作嵌入的Word实例...

    在MFC应用程序中浏览PDF、Word文档文件C++源代码程序小实例

    Adobe Reader SDK提供了一个ActiveX控件AcroExch.App,可以在MFC程序中直接嵌入PDF阅读器。你可以在一个对话框或者视图类中添加这个控件,并通过调用其方法来打开和控制PDF文件。例如,你可以创建一个`...

    c#开发,winform中嵌入office,使用到DSO Framer。

    DSO Framer是由微软提供的一个ActiveX控件,它允许开发者将Word、Excel或PowerPoint等Office应用程序嵌入到Windows Forms应用程序中。下面我们将详细介绍DSO Framer的使用步骤、注意事项以及相关的编程知识。 **1. ...

    Winform窗体嵌入Office,打开Excel和Word

    为了在Winform窗体中显示这些组件,你可以使用AxHost控件,它是.NET Framework提供的一个容器,可以用来承载ActiveX控件。例如,可以创建一个AxHost控件,并将Excel或Word的窗口句柄赋值给控件的Handle属性,从而...

    rtsp流在页面上内嵌播放

    VLC提供了ActiveX控件和NPAPI插件,适用于不同的浏览器。例如,对于支持NPAPI插件的旧版Firefox或Chrome,可以使用以下代码: ```html <object type="application/x-vlc-plugin" pluginspage=...

Global site tag (gtag.js) - Google Analytics