Top > OOoBasic > Generic > ServiceManager

ServiceManager Edit

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

  • com.sun.star.lang.XMultiComponentFactory
  • com.sun.star.lang.XMultiServiceFactory

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

ServiceManager Edit

OOo Basic ではランタイム関数を利用してアクセスします。

oSmgr = GetProcessServiceManager()

サービスのインスタンス化 Edit

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

oPointer = oSmgr.createInstance("com.sun.star.awt.Pointer")
oFilePicker = createInstanceWithArgument( _
     "com.sun.star.ui.dialogs.FilePicker", nAny )

ComponentContext Edit

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

oContext = oSmgr.DefaultContext
oContext = GetDefaultContext()

サービス名 Edit

利用可能なサービス名を 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