Com 将对象嵌入Microsoft Word和OpenOffice Writer

Com 将对象嵌入Microsoft Word和OpenOffice Writer,com,ms-office,openoffice.org,ole,uno,Com,Ms Office,Openoffice.org,Ole,Uno,我正在寻找一些关于如何实现以下功能的参考资料: 能够将对象(如图表)嵌入文字处理器,并能够在各自的“母”应用程序中编辑它们 例如,MS Word和Visio这样协同工作,允许用户在将图表添加到文字处理器后轻松编辑/调整图表 我对如何在以下平台上实现这一点感兴趣: 微软Word 开放办公室 到目前为止,我知道: Microsoft Word--使用OLE/COM 开放式办公室——用途 你能给我指一些关于如何处理这个问题的参考资料、例子和书籍吗 PS:每次我试图在MSDN上搜索这个,我都会觉

我正在寻找一些关于如何实现以下功能的参考资料:

能够将对象(如图表)嵌入文字处理器,并能够在各自的“母”应用程序中编辑它们

例如,MS Word和Visio这样协同工作,允许用户在将图表添加到文字处理器后轻松编辑/调整图表

我对如何在以下平台上实现这一点感兴趣:

  • 微软Word
  • 开放办公室
到目前为止,我知道:

  • Microsoft Word--使用OLE/COM
  • 开放式办公室——用途
你能给我指一些关于如何处理这个问题的参考资料、例子和书籍吗


PS:每次我试图在MSDN上搜索这个,我都会觉得我在错误的地方=(

因为OLE几乎是史前技术(仍在使用)您必须深入了解MSDN。下面链接的文章描述了一个示例应用程序,可以嵌入到容器应用程序(如IE、Word或OpenOffice)中。该示例基于VC6,因此我不知道在当前版本的Visual Studio中运行它会有多幸运

创建OLE控件(.ocx)最简单的方法可能是使用旧的Visual Basic 6。如下所述:

也可以在托管代码(如C#)中编写控件,但我认为不建议这样做1,因为如果当前进程已经运行另一个版本的CLR,则可能会导致冲突(到目前为止,一个进程中只能存在一个版本的CLR,.NET 4.0将引入CLR的并行执行)。我找到了以下教程:


1请参阅Andrew Whitechapel在文章底部的警告。

这仍然可以通过Word使用COM(或OLE)轻松完成(但使用新名称也是一样)。根据您打算使用的语言,您的操作方式会有所不同。基本上,您需要创建一种特定类型的ActiveX控件

在Delphi(最简单的语言)中,您可以在COM dll中创建一个
ActiveXForm
,然后可以将其嵌入到word文档中。您可以让应用程序在word中做任何您想做的事情(与word对话有点复杂,但可能)

恐怕我不知道在OpenOffice里该做什么


我认为您需要回答更具体的问题。

请注意:OpenOffice.org使用UNO实现自动化,但为了嵌入其他应用程序的对象,它也使用OLE,请参见。@DirkVollmar的注释:OLE桥(UNO-COM仅用于OLE)你说得对,这是一种旧技术,但我看到它正在最新版本的Microsoft Office中使用。奇怪的是,没有关于如何使用当今技术进行适当的OLE的文档。好吧,旧并不意味着它不好或不起作用。只是文档有点旧,示例可能无法与VS 2008配合使用。