BASE内マクロ:BASIC:dispatcher.executeDispatchの記載方法

以下の記載の意味を教えてください。

いろいろ探しましたが、どこにも記載がありません。



dispatcher.executeDispatch(document, “.uno:RecSave”, “”, 0, Array())



“.uno:RecSave”, の後ろ側の



“”, と

0, と

Array() は何を表しているのですか?



また



Array() 内の () には何故、何も記載しないで良いのですか?

メモ。

https://opengrok.libreoffice.org/xref/core/svx/sdi/svx.sdi?r=47e9db9c#6792

SfxBoolItem RecSave SID_FM_RECORD_SAVE

https://opengrok.libreoffice.org/xref/core/forms/source/runtime/formoperations.cxx?r=6256797d#688
https://opengrok.libreoffice.org/xref/core/svx/source/form/fmshell.cxx?r=ab9b67bb#698
https://opengrok.libreoffice.org/xref/core/svx/source/form/fmshimp.cxx?r=15f0d612#1751
https://opengrok.libreoffice.org/xref/core/svx/source/inc/fmshimp.hxx?r=1a639703#351

ちゃんと追ってないけど、このSID_FM_RECORD_SAVE、多分ここでしかまともに使われていないからここで使われているんだろう
https://opengrok.libreoffice.org/xref/core/svx/source/form/formcontrolling.cxx?r=034a4624#87
あたらしい情報は最後の要素、FormFeature::SaveRecordChanges
これをとっかかりにして調べると、
https://opengrok.libreoffice.org/xref/core/forms/source/runtime/formoperations.cxx?r=6256797d#688
となる。新しい行だった場合、行を挿入し、そうでないときは、行の内容をアップデートする、というような処理がなされている。

今回は使わなかったけど、コマンドによっては引数を要求するものがあり、そのようなものはexecuteDispatchの第5引数で与えられる。

https://opengrok.libreoffice.org/xref/core/include/framework/dispatchhelper.hxx?r=6f4f5677#92

第3引数はどのフレーム(ウィンドウ等)に対して処理を行うか。指定によっては、新規ドキュメントを保持するフレームなどを指定できたかと思う。

https://opengrok.libreoffice.org/xref/core/framework/source/dispatch/dispatchprovider.cxx?r=bdb0775a#156
第4引数は、第3引数が特殊な内容を表す文字列でなかったときに、指定された名前を持つフレームを、どの分類のリストから探し出すか、に用いられる。

Array() 内の () には何故、何も記載しないで良いのですか?
nullptr(BasicでいうNothing)でエラーが出る、とかにしたくないだけだと思う。

暇人さんありがとうございます。

書き込んでいただいたURL。本当にご丁寧に探してくださって感謝します。

ものすごく長い時間がかかったと思います。



ですが申し訳ありません。

一生懸命に読んだのですが、私にはお手上げです。

皆目、理解できません。落ち込んでいます。



ですが、文字で書いていただいたところはなんとんなく理解できました。

ありがとうございました。



彰子