OOo对象模型(UNO在宏角度的理解)

我们从下往上来了解UNO。

先把我们的宏理解为客户端(Client),和UNOs的接口(Interface)打交道。
OOo对象模型(UNO在宏角度的理解)_第1张图片

接口(Interface)

每个接口由一系列的方法组成,我们可以使用这些方法来:

  • 获取或设置参数
  • 控制接口定义的任何功能性的操作

每个接口包含在一个服务(Service)中。
OOo对象模型(UNO在宏角度的理解)_第2张图片

服务(Service)

一个服务是一个UNO部件—OOo Calc的一个组成部分。每个服务由一个或多个服务组成,它还包含一系列的属性。

我们可以发现服务有四个类型的属性:

  • 常数(Constants)
  • 枚举(Enums)
  • 例外(Exceptions)
  • 结构(Structs)

OOo对象模型(UNO在宏角度的理解)_第3张图片

模块

UNO 服务按层级结构在模块中分组。我们现在已经从UNO的最底级来到了最高级。很多模块嵌套在另外一个模块中。而所有的模块嵌套在一个最高级的模块— com.sun.star。这个模块就像Excel中的Application对象。

开始使用UNO

到了这里我们基本上对OpenOffice.org对象模型有了一个基本的了解。我们可以先使用一个简单的例子(打开和关闭一个电子表格)来了解怎样使用 UNO。
我们先需要了解:

  • 每个服务保存在一个模块中。
  • 所有的模块保存在一个中央模块中— com.sun.star。
  • 一个服务由函数createUnoService创建。
  • 我们将使用frame模块中的 Desktop服务。

OOo对象模型(UNO在宏角度的理解)_第4张图片

Sub OpenAndClose
Dim oDesk as Object
Dim oDoc as Object
Dim oUrl as String
oDesk = createUnoService ("com.sun.star.frame.Desktop")
oUrl = "private:factory/scalc"
oDoc = oDesk.loadComponentFromURL (oUrl, "_blank", 0, Array() )
oDoc.close(true)
End Sub
这个代码打开一个空白电子表格然后关闭它,没什么用处,但是告诉我们怎样操作电子表格。
 其实,UNO只是定义的一种规范,如果自己要写UNO组件就得遵守这个规范。

你可能感兴趣的:(object,service,application,interface,Constants,enums)