Top > OOoBasic > Generic > ServiceManager

*ServiceManager [#vf246a21]

主にさまざまなサービスをインスタンス化するために利用されるサービス。インターフェースは次のようなものがよく利用されます。

-com.sun.star.lang.XMultiComponentFactory
-com.sun.star.lang.XMultiServiceFactory

ServiceManager の実体は /singletons/com.sun.star.lang.theServiceManager singleton です。

**ServiceManager [#k184c697]
OOo Basic ではランタイム関数を利用してアクセスします。

 oSmgr = GetProcessServiceManager()

***サービスのインスタンス化 [#ka9946a5]
OOo Basic では CreateUnoService ランタイム関数を利用することが多いのであまり利用されませんが、インスタンス化時に引数が必要なときには利用することもあります。

 oPointer = oSmgr.createInstance("com.sun.star.awt.Pointer")

 oFilePicker = createInstanceWithArgument( _
      "com.sun.star.ui.dialogs.FilePicker", nAny )

***ComponentContext [#c07b6340]

デフォルトの ComponentContext にアクセスする場合に利用します。OOo Basic では代わりに GetDefaultContext ランタイム関数がよく利用されます。

 oContext = oSmgr.DefaultContext

 oContext = GetDefaultContext()

***サービス名 [#me6b3b17]
利用可能なサービス名を AvailableServiceNames プロパティから取得できます。このサービス名のリストはすべて createInstance メソッドや CreateUnoService ランタイム関数でインスタンス化して利用できます。

 Sub WriteServiceNames
   sServiceNames = GetProcessServiceManager().getAvailableServiceNames()
   oDoc = StarDesktop.loadComponentFromURL( _
      "private:factory/scalc","_blank",0,Array())
   oSheet = oDoc.getSheets().getByIndex(0)
   For i = 0 To UBound(sServiceNames)
     oSheet.getCellByPosition(0,i).String = sServiceNames(i)
   Next i
 End Sub

Reload   New Lower page making Edit Freeze Diff Upload Copy Rename   Front page List of pages Search Recent changes Backup   Help   RSS of recent changes