Universal Network Objects (UNO)

From Apache OpenOffice Wiki
Jump to: navigation, search
doc OOo
Book.png

Apache OpenOffice には Universal Network Objects (UNO) という形式のプログラミングインターフェースが用意されています。これはオブジェクト指向型のプログラミングインターフェースであり、Apache OpenOffice の場合、プログラム内から行う Office パッケージへのアクセスのタイプごとに細分化されています。

Apache OpenOffice Basic は手続き型のプログラミング言語であるため、UNO の導入に伴い、いくつかの機能が追加されています。

Apache OpenOffice Basic でUniversal Network Object を使用するにあたっては、使用するオブジェクトに対応した変数宣言が必要です。この宣言は Dim 命令で実行します (詳細は「Apache OpenOffice Basic のプログラミング言語」を参照)。オブジェクトを宣言する際には、宣言型に Object を指定します。

Dim Obj As Object

たとえば上記のサンプルコードは、Obj という名前のオブジェクトを宣言しています。

新規作成したオブジェクト変数は、使用する前に初期化する必要があります。このような処理には、createUnoService 関数を使用します。

Obj = createUnoService("com.sun.star.frame.Desktop")

上記のサンプルコードの場合、新規作成したオブジェクトへの参照情報を変数 Obj へ割り当てています。com.sun.star.frame.Desktop<Check Alignment of PHs>また はいわゆるオブジェクト型に類似したものですが、UNO の用語ではこのようなものを「型」ではなく「サービス」と呼んでいます。UNO の流儀に従えば、上記の Obj は「com.sun.star.frame.Desktop サービスをサポートしたオブジェクトに対する参照」と表現できます。つまり Apache OpenOffice Basic で使われる「サービス」という用語は、他の言語で言う「型 (タイプ)」 や「クラス」に該当します。

ただし Universal Network Object の持つ大きな特徴として、複数のサービスを同時にサポートできる点があります。このため UNO のサービスの中には他のサービスをサポートしているものが存在し、1 つのオブジェクトで複数のサービスを扱うケースがあります。たとえば先のサンプルコードでは com.sun.star.frame.Desktop サービスをサポートしたオブジェクトを作成しましたが、このオブジェクトもその他のサービスとして、ドキュメント読み込み用およびプログラム終了用のサービスをサポートしています。

Template:Documentation/Note

Content on this page is licensed under the Public Documentation License (PDL).
Personal tools