`
kimmking
  • 浏览: 546560 次
  • 性别: Icon_minigender_1
  • 来自: 中华大丈夫学院
社区版块
存档分类
最新评论

SWT中ole/activex实践--操作word的一个例子

    博客分类:
  • java
阅读更多

这几年,做了很多word/excel/ppt方面的开发,特别是office插件/vsto/oba,和各种支持activex的ole嵌入环境下的应用。

基本上,了解了office对象模型,就可以在支持ole的环境下游刃有余的使用接口进行开发了。

不过office本身是不支持ole的,一般需要一个native的“外壳”包裹住,然后再在我们开发的环境下ole这个外壳。

例如,web页面或一般环境中,使用dsoframer。SWT中使用OleClientSite。

这里讲讲OleClientSite。

windows下,SWT中(OS类)封装了绝大部分常见的win32 api。而且SWT中的组件都是系统原生的,或是组合的,

所以调用Activex的窗口并交互成为了可能(AWT可以拿到原生窗口的句柄,也能别别扭扭的实现,纯swing不是原生的,所以是拿不到的),

OleClientSite封装了调用Activex并交互的细节。

 

大概的方式是:传给OleClientSite一个Activex的progID,初始化一个Activex,并挂接到制定的composite上,

然后根据容器对Activex调用设置大小长宽。接着,通过一个OleAutomation封装一个Activex中的原生对象的引用指针,

然后可以用getIDsOfNames根据属性名或是方法名获取对应id(做过mfc/atl-activex的都知道这个在IDL文件中注册的id)。

然后可以调用OleAutomation的 getProperty/setProperty/invoke/invokeNoReply 等方法,获取属性或调用相应的方法。

当然返回结果可能还是原生对象,可以继续用OleAutomation包装,然后重复上面的过程。

SWT还提供了一个通用的类型包装器,用来原生的几种常见c类型和java类型的转换:Variant。(很像vb里的那个吧)

 

-------------------------------------  想了解的看SWT源码和com本质论去  -----------------------------------

 

 

 附件是一个嵌入word,并定位word文档中的字符串的例子。

 

ListOLE是传递一个OleAutomation,列出所有方法的工具类。源于网上。

 

txt文件夹提供了word.Application 和 word.Document对象的所有com接口方法和属性。

 

运行Word.java,展示word文件:

 

 http://dl.iteye.com/upload/picture/pic/70372/203108bc-75d0-3460-a372-47e34ca301ab.jpg

点击menu1,搜索定位字符串bbbbb:

http://dl.iteye.com/upload/picture/pic/70370/e61adc5c-95ed-38ea-95ea-5a5bffe88356.jpg 

 

 

分享到:
评论
5 楼 lxmin0702 2015-08-06  
你好,我刚下载了您的附件,但是发现里面并没有正文所提到的ListOLE是传递一个OleAutomation,列出所有方法的工具类。源于网上。



txt文件夹提供了word.Application 和 word.Document对象的所有com接口方法和属性。

可以加您qq请教一下吗?您qq是?

4 楼 cjvs9k 2014-11-05  
爱死你了,楼主!
3 楼 黄奇就 2013-11-14  
ppt呢 怎么弄啊
2 楼 kimmking 2012-06-14  
quangang_deng 写道
请教一下,如果我想把这个控件给加上JPanel 里显示。该如何实现呢。
因为现在我这边做的控件都是在这个控件上面加的。


swing不兼容
1 楼 quangang_deng 2012-06-13  
请教一下,如果我想把这个控件给加上JPanel 里显示。该如何实现呢。
因为现在我这边做的控件都是在这个控件上面加的。

相关推荐

    ole/com viewer

    OleView OLE/COM OLE/COM对象浏览器

    OLE/COM Object Viewer

    OLE允许用户在不同的应用程序中嵌入和链接数据,比如在一个文档中嵌入图表或图片,这些元素可以在各自的源程序中编辑。COM则是OLE的基础,它定义了一种标准接口,使得不同组件之间可以进行跨语言、跨进程的通信。 ...

    OLE/COM 对象查看器

    OLE是微软提出的一种技术,允许在一个文档中嵌入或链接到另一个文档,例如在Word文档中插入Excel表格。而COM是OLE的基础,它定义了一种标准接口,使得不同程序之间可以交互操作,实现了软件组件的复用和互操作性。 ...

    go-ole:Golang的Win32 ole实现

    去OLE 使用共享库而不是cgo为Windows COM进行绑定。 松本康弘。 安装 要试验go-ole,您可以编译并运行示例程序: go get github.com/go-ole/go-ole cd /path/to/go-ole/ go test cd /path/to/go-ole/example/...

    SWT EXCEL OLE

    2. Excel OLE 对象:Excel 是一个 OLE 对象,我们可以使用 OleClientSite 来将其嵌入到 SWT 应用程序中。在本例中,我们使用 "Excel.Sheet" 作为 OLE 对象的 Id,表示要嵌入 Excel 工作表。 3. SWT 控件:在本例中,...

    OLE/COM 对象查看器(oleview.exe)

    【windows上默认没有,此处提供给大家...OLE/COM 对象查看器(oleview.exe)是在 Windows SDK 中提供的应用程序,它显示计算机上安装的 COM 对象及其支持的接口。 默认安装路径在C:\Program Files (x86)\Resource Kit

    Go-go-ole-golang的Win32OLE实现

    【标题】"Go-go-ole-golang的Win32OLE实现"主要涉及到的是在Go语言中如何使用`go-ole`库来实现Windows操作系统上的Win32对象链接与嵌入(OLE)技术。OLE是微软在Windows平台上实现的一个组件对象模型(COM),它允许...

    在SWT中使用OLE操纵Excel入门培训文档

    在SWT中使用OLE操纵Excel入门培训文档,里面整理了很多资源,下载的请使劲戳

    OLEDB驱动程序大全 MySQL-OleDB-Provider

    OLEDB(Object Linking and Embedding, Database)是微软提出的一种数据访问接口,它允许应用程序通过统一的方式访问各种数据源,包括数据库、文件系统、Web服务等。在本主题中,我们将聚焦于MySQL-OleDB-Provider,...

    vb中OLE之WORD

    OLE控件是VB工具箱中的一种,它充当一个容器,用于在VB界面中插入和展示OLE对象。当在VB窗体上添加OLE控件时,会出现“插入对象”对话框,让用户选择要插入的文件或内容。插入对象可以是整个文件,也可以是文件的一...

    SWT 使用 OLE 函数调用com控件的资料

    SWT 使用 OLE 函数调用com控件的资料 SWT 使用 OLE 函数调用com控件的资料SWT 使用 OLE 函数调用com控件的资料SWT 使用 OLE 函数调用com控件的资料 SWT 使用 OLE 函数调用com控件的资料

    OLE操作word和excel

    C++Builder是一个集成开发环境(IDE),它提供了丰富的工具和类库,支持创建Windows应用程序,包括与Office套件的交互。 在C++Builder中,我们通常会使用VCL(Visual Component Library)框架,它包含了`TOleClient...

    VC平台下基于OLE的Word自动化操作应用

    为了更好地理解上述过程,下面提供了一个简化的代码示例,展示如何使用OLE自动化技术在VC平台上自动创建Word文档并插入文本: ```cpp #include #include #include #include int main() { CoInitialize(NULL);...

    Microsoft.ACE.OLEDB.12.0-提供程序

    OleDb是一个数据库驱动接口,能够通过标准的 SQL 语句访问多种数据库,包括 Excel。这种方法的好处是不需要依赖 Excel 应用程序,可以在没有安装 Microsoft Office 的服务器或机器上读取 Excel 数据。在使用OleDb...

    OLEDB驱动程序大全 PostgreSQL-OleDB-Provider

    在本话题中,我们将深入探讨“OLEDB驱动程序大全”中的一个特定组件——PostgreSQL OLEDB Provider。 PostgreSQL OLEDB Provider是用于连接和操作PostgreSQL数据库的OLEDB驱动程序。PostgreSQL是一种开源的关系型...

    OLE/COM的安装包

    OLE是一种技术,允许不同应用程序之间共享数据,甚至可以在一个文档内嵌入和操作另一个应用程序的对象。例如,在Word文档中嵌入Excel表格。OLE使得用户能够创建复合文档,其中包含多种类型的数据,这些数据可以从...

    WINDOWS程序员使用指南--OLE-DDE

    **OLE** 是微软提出的一种复合文档技术,它允许在一个文档中嵌入或链接到另一个文档,使得不同应用程序之间可以共享数据和功能。例如,你可以在Word文档中嵌入Excel电子表格,或者在PowerPoint演示文稿中插入Visio...

    ff-activex-host-master.zip

    1. **ActiveX 技术**:ActiveX 是微软的一个组件技术,它允许开发者创建可重用的软件组件,这些组件可以通过 OLE(Object Linking and Embedding)集成到其他应用程序中。ActiveX 控件是 ActiveX 技术的一种具体应用...

    ole file viewer ext

    ole file viewer ext.exe

    VC控制WORD(OLE自动化)

    要实现在VC中创建Word文档,首先需要通过OLE技术创建一个Word对象。这一过程涉及以下几个关键步骤: 1. **获取函数定义头文件**:在使用Word函数之前,需要获取相应的函数定义头文件。这通常可以通过使用`midl`命令...

Global site tag (gtag.js) - Google Analytics