`
tw1122333
  • 浏览: 40685 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

OCX内嵌

 
阅读更多
我这里用的是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);
}

}

分享到:
评论
1 楼 zaweehom 2012-08-20  
  请问OCX回调的方法要怎么处理

相关推荐

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

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

    dsoframer.ocx控件

    **DSOFramer.ocx 控件详解** DSOFramer.ocx 是一个非常实用的 ActiveX 控件,主要用于在 Web 应用程序中实现在线编辑 Office 文档的功能。它允许用户在浏览器环境中内嵌 Office 办公软件,如 Word、Excel 和 ...

    源码DsoFramerOffice:在桌面程序(winform)中内嵌office功能的Demo

    采用vs2017+C#进行开发,调用dsoframer.ocx控件(ActiveX),实现在winform桌面程序中“内嵌office”的功能。能够对办公文件(Excel/ Word/ PPT/ Visio)进行常见的查看、编辑、保存等操作。对于有相关业务需求的同仁...

    ezVidCap.ocx_演示程序.rar.rar

    用户需要首先解压这个内嵌的RAR文件,然后可能还需要进一步解压以访问内部的内容。 对于ezVidCap.ocx,它很可能是一个专门用于视频捕获和处理的ActiveX控件。在编程环境中,如Visual Basic、VB.NET或C++,开发者...

    关于ocx控件开发

    - **内嵌插件**:IE浏览器支持加载OCX控件作为浏览器插件,实现网页内的特殊功能,如播放器、图表等。 - **安全设置**:由于安全考虑,IE会限制未知来源的OCX控件,开发者需要确保控件安全,并引导用户添加到信任...

    ocx查看器-好用

    4. **资源查看**:用户可能通过该工具查看控件内嵌的资源,如图像、图标或声音,便于修改或替换。 5. **代码分析**:对于开发者来说,能够查看和分析OCX控件的内部代码,有助于理解和学习控件的工作原理。 6. **...

    VC调用VC制作的OCX(该OCX是带有FLASH的窗体).rar

    本主题聚焦于如何在Visual C++(简称VC)环境中调用由VC创建的OCX控件,特别是那些内嵌了Flash内容的窗体。这种技术允许开发者将丰富的多媒体元素,如Flash动画,集成到他们的应用程序中,提升用户体验。 首先,让...

    WebOffice.ocx

    WebOffice.ocx就是这样的一个ActiveX控件,它为开发者提供了一种简单的方式来实现Office文档的内嵌支持。 MFC,全称为Microsoft Foundation Classes,是微软为Windows平台开发的C++类库。它基于面向对象的设计,...

    火狐和谷歌支持ocx

    3. **使用第三方工具**:有一些第三方工具,如IE Tab或IE View,可以将网页内容在内嵌的IE引擎中渲染,从而间接支持OCX控件。这些工具通常适用于那些必须使用特定OCX控件的场景。 4. **转换OCX为其他跨平台的Web...

    DSOframer.ocx使用指南.doc

    1. **嵌入HTML内容**:DSOframer.ocx的核心功能是将HTML文档内嵌到其他应用程序中,使得用户可以在一个统一的界面上查看和操作HTML内容。 2. **Office文档支持**:由于与Office的紧密集成,DSOframer可以加载和显示...

    VB 使用fpSpr60.ocx表格控件fpSpread的几个工程样本

    fpSpr60.ocx是vb6.0下一个非常好用的表格控件,压缩包里的fpSpr60.ocx放到你的程序文件夹,cmd里运行regsvr32 文件夹路径\fpSpr60.ocx,注册后即可使用。此压缩包内包含了可能用到的比如:excel导入导出,文件导入...

    dsoframer.ocx

    内嵌word组件的工具,各种开发环境均可使用。解压后DsoFramer_KB311765_x86.exe直接安装是1.3版本。文件夹内.ocx文件是2.2版本。如需2.2版本可以将文件拷入32位系统c:\windows\system32下,64位系统c:\windows\...

    DSOFramer.ocx

    描述中提到,DSOFrame.ocx 主要用于实现对Word和Excel等Office应用的内嵌操作。这意味着,通过这个控件,开发者可以创建一个用户界面,用户可以直接在该界面上操作Word文档或Excel工作簿,而无需打开独立的Office...

    网页内嵌多媒体内容的完美实现

    第一种代码使用`CLSID:22D6F312-B0F6-11D0-94AB-0080C74C7E95`引用MediaPlayer.MediaPlayer对象,第二种代码使用`CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6`引用WMPlayer.OCX对象。这两者都是针对Internet ...

    VB内嵌控件的使用,

    VB内嵌控件的使用, Private WithEvents mobjTest As UserControl1 Private mobjCtl As Control Private Sub Command1_Click() Call mobjTest.Test End Sub Private Sub Form_Load() Set mobjCtl = Me.Controls....

    vb6月浏览器控件,vb6日期选择控件,MSCOMCT2.ocx

    这个控件通常指的是Microsoft WebBrowser控件,它是一个ActiveX组件,允许VB6应用程序内嵌Internet Explorer浏览器引擎,从而在应用中展示网页内容或执行HTML、JavaScript等Web相关的功能。通过这个控件,开发者可以...

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

    通过DSO Framer,开发者可以创建一个窗口,该窗口内嵌有Office应用程序,使得用户可以直接在WinForm界面中编辑、查看Office文档,而无需启动独立的Office应用程序。 要实现这一功能,首先需要在WinForm项目中引用...

    非IE浏览器实现IE功能.rar

    2. **IE Tab插件**:IE Tab是一个非常实用的浏览器扩展,它能够在非IE浏览器中内嵌一个模拟的IE渲染引擎,使得浏览器能够执行那些只能在IE环境下正常工作的网页代码或控件,包括OCX控件。这个插件适用于谷歌浏览器、...

    利用内嵌Active X控件操纵WINCC数据库.pdf

    这篇文章主要探讨了如何利用内嵌ActiveX控件来操纵WINCC数据库,解决了WINCC数据库操作中的一些限制问题。 首先,文章介绍了WINCC系统。WINCC是西门子公司推出的一种面向工业自动化的工控软件,它将所有的组态数据...

    把 CSharp语言开发的控件内嵌在网页里面

    从提供的压缩包文件名来看,"pdf.ocx"和"PdfControl"可能是一个PDF阅读器的ActiveX控件。ActiveX是Microsoft为Internet Explorer开发的一种技术,允许在网页中嵌入各种功能丰富的控件。在C#中,你可以创建一个包装此...

Global site tag (gtag.js) - Google Analytics