よろずやネット

最近はLibreofficeにハマっています。

オープンオフィスのDesktop(デスクトップ)

前回続き。
http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge
のQuick Tour(クイックツアー)には、UNOの次にDesktop(デスクトップ)というのが出てくる。

'Create the Desktop
Set objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")

オープンオフィスは新しい事だらけなので、多分、慣れ親しんだ「ウインドウズのデスクトップ」とは違うだろうな、と身構えてしまう。
クイックツアーでは、、以降デスクトップのメソッドのようなものを利用しているので、デスクトップは避けて通れないのだ。


'**** 前回は、ここから ****
Dim objServiceManager As Object
objServiceManager=CreateObject("com.sun.star.ServiceManager")
'**** 前回は、ここまで作成 ****

'上記のDesktopをVisual Basic .Net風に書き換えてみる。
Dim objDesktop As Object
objDesktop= objServiceManager.createInstance("com.sun.star.frame.Desktop")

ランさせてみる。エラーなし!
ちなみに、シロウトは「エラーなし」であれば、それが邪道であれ、ひとまず安心し、次へと前進するのだ。

しかし、しかし、デスクトップとは何者だ?
概念くらいは理解していたほうが、後々のためになるだろう。
Webサイトを調べてみる。
あった。

http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/OfficeDev/OpenOffice.org_Application_Environment
勝手な意訳:
オープンオフィスのアプリケーション環境は、デスクトップ環境とフレームワークAPIで構成されている。
デスクトップ環境は、デスクトップオブジェクトと補助オブジェクトから構成されていて、フレームワークAPIに実行をさせる。

シロウトには難解だ。
そもそもAPIとは何だ?
wikipediaを調べてみる。
http://ja.wikipedia.org/wiki/Application_Programming_Interface
UNOも「橋渡し」だったが、「API」も橋渡しのようなものである。

上記「デスクトップ」も推測するに、オープンオフィスAPIへの「橋渡し」のようであり、「橋渡し」だらけだ。
ここで考え込んでしまったら、先に進まない。

とにかく、オープンオフィスを操作しようと思えば、デスクトップというインスタンスをつくる以外に方法はない、と思い込むようにしよう。

オープンオフィス最初の一歩のおさらい:
(1)Visual Basic .Netで、CreateObjectを使って、UNOサービスマネージャを作成
(2)UNOサービスマネージャを使って、デスクトップオブジェクトを作成。
以上2つは、オープンオフィスを操作するための最低必須作法なのである。(と、今のところの私の結論)