UNO

UNO の章は最も難解です。マクロを書くだけであれば別に知らなくてもいいことが大半かもしれません。飛ばしてしまって後で戻って読むのもいいかもしれません。とはいえ次に挙げるページは読んでおいたほうがいいかもしれません。

(書いたページからリンクします)

  • TypeMappings
  • IDL Reference を理解する
  • Object Introspection
  • マクロを書く言語を選ぶ
  • Container インターフェース


UNO (Universal Network Objects) ['ju:nou] とは OpenOffice.org の中枢を構成する要素、技術のことです。名前が示すように様々なものとの間でやりとりができるようにとの概念に基づいています。
詳細が知りたい場合には下記を参照してください。
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Professional_UNO

UNO は UNO IDL (Interface Definition Language) と呼ばれるもので抽象的な定義を行いそれに基づいて実装されています。UNO IDL は UNO のみと強く結びついておりそのほかの言語とは結びつきがありません。UNO 自体が値などの型の独自の定義を持っています。

UNO IDL で定義されたインターフェースなどを実装しているライブラリなどをコンポーネントと呼びます (特に UNO コンポーネントと呼ぶこともある)。

UNO の概念だけではプログラムは動きません。現在では OpenOffice.org の本体は C++ で実装されておりそれを UNO を体現しているとみなすことができます。実際はある言語から UNO とやりとりを行うには利用する言語と C++ 間を仲立ちするブリッジを介することになります。直接 C++ とやりとりができない場合でもすでにブリッジが実装されている言語とやりとりが可能な場合にはそれを間に入れることでブリッジを構築できます。例えば JythonJRuby では既存の Java-UNO バインディングをブリッジとして利用することで Jython - Java - UNO としてブリッジが作られます。(なんだか例が悪い)

UNO IDL で定義された機能はそのまま OpenOffice.org API として利用されます。