我这里用的是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);
}
}
分享到:
相关推荐
Chrome浏览器调用OCX插件是一项技术,允许用户在Chrome中使用特定的ActiveX控件,这些控件通常用于提供Windows应用程序中不常见的功能。OCX(Object Container Exchange)是微软开发的一种组件对象模型(COM),它...
**DSOFramer.ocx 控件详解** DSOFramer.ocx 是一个非常实用的 ActiveX 控件,主要用于在 Web 应用程序中实现在线编辑 Office 文档的功能。它允许用户在浏览器环境中内嵌 Office 办公软件,如 Word、Excel 和 ...
采用vs2017+C#进行开发,调用dsoframer.ocx控件(ActiveX),实现在winform桌面程序中“内嵌office”的功能。能够对办公文件(Excel/ Word/ PPT/ Visio)进行常见的查看、编辑、保存等操作。对于有相关业务需求的同仁...
用户需要首先解压这个内嵌的RAR文件,然后可能还需要进一步解压以访问内部的内容。 对于ezVidCap.ocx,它很可能是一个专门用于视频捕获和处理的ActiveX控件。在编程环境中,如Visual Basic、VB.NET或C++,开发者...
- **内嵌插件**:IE浏览器支持加载OCX控件作为浏览器插件,实现网页内的特殊功能,如播放器、图表等。 - **安全设置**:由于安全考虑,IE会限制未知来源的OCX控件,开发者需要确保控件安全,并引导用户添加到信任...
4. **资源查看**:用户可能通过该工具查看控件内嵌的资源,如图像、图标或声音,便于修改或替换。 5. **代码分析**:对于开发者来说,能够查看和分析OCX控件的内部代码,有助于理解和学习控件的工作原理。 6. **...
本主题聚焦于如何在Visual C++(简称VC)环境中调用由VC创建的OCX控件,特别是那些内嵌了Flash内容的窗体。这种技术允许开发者将丰富的多媒体元素,如Flash动画,集成到他们的应用程序中,提升用户体验。 首先,让...
WebOffice.ocx就是这样的一个ActiveX控件,它为开发者提供了一种简单的方式来实现Office文档的内嵌支持。 MFC,全称为Microsoft Foundation Classes,是微软为Windows平台开发的C++类库。它基于面向对象的设计,...
3. **使用第三方工具**:有一些第三方工具,如IE Tab或IE View,可以将网页内容在内嵌的IE引擎中渲染,从而间接支持OCX控件。这些工具通常适用于那些必须使用特定OCX控件的场景。 4. **转换OCX为其他跨平台的Web...
1. **嵌入HTML内容**:DSOframer.ocx的核心功能是将HTML文档内嵌到其他应用程序中,使得用户可以在一个统一的界面上查看和操作HTML内容。 2. **Office文档支持**:由于与Office的紧密集成,DSOframer可以加载和显示...
fpSpr60.ocx是vb6.0下一个非常好用的表格控件,压缩包里的fpSpr60.ocx放到你的程序文件夹,cmd里运行regsvr32 文件夹路径\fpSpr60.ocx,注册后即可使用。此压缩包内包含了可能用到的比如:excel导入导出,文件导入...
内嵌word组件的工具,各种开发环境均可使用。解压后DsoFramer_KB311765_x86.exe直接安装是1.3版本。文件夹内.ocx文件是2.2版本。如需2.2版本可以将文件拷入32位系统c:\windows\system32下,64位系统c:\windows\...
描述中提到,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内嵌控件的使用, 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....
这个控件通常指的是Microsoft WebBrowser控件,它是一个ActiveX组件,允许VB6应用程序内嵌Internet Explorer浏览器引擎,从而在应用中展示网页内容或执行HTML、JavaScript等Web相关的功能。通过这个控件,开发者可以...
通过DSO Framer,开发者可以创建一个窗口,该窗口内嵌有Office应用程序,使得用户可以直接在WinForm界面中编辑、查看Office文档,而无需启动独立的Office应用程序。 要实现这一功能,首先需要在WinForm项目中引用...
2. **IE Tab插件**:IE Tab是一个非常实用的浏览器扩展,它能够在非IE浏览器中内嵌一个模拟的IE渲染引擎,使得浏览器能够执行那些只能在IE环境下正常工作的网页代码或控件,包括OCX控件。这个插件适用于谷歌浏览器、...
这篇文章主要探讨了如何利用内嵌ActiveX控件来操纵WINCC数据库,解决了WINCC数据库操作中的一些限制问题。 首先,文章介绍了WINCC系统。WINCC是西门子公司推出的一种面向工业自动化的工控软件,它将所有的组态数据...
从提供的压缩包文件名来看,"pdf.ocx"和"PdfControl"可能是一个PDF阅读器的ActiveX控件。ActiveX是Microsoft为Internet Explorer开发的一种技术,允许在网页中嵌入各种功能丰富的控件。在C#中,你可以创建一个包装此...