[Libreoffice-commits] core.git: avmedia/source basctl/source cui/source include/sfx2 sc/source sd/qa sd/source sfx2/source starmath/source svx/source sw/source

Michael Stahl mstahl at redhat.com
Thu Mar 31 11:19:45 UTC 2016


 avmedia/source/framework/mediaplayer.cxx                |    3 
 basctl/source/basicide/basicbox.cxx                     |    6 -
 basctl/source/basicide/bastype2.cxx                     |    6 -
 basctl/source/basicide/bastypes.cxx                     |    4 -
 basctl/source/basicide/macrodlg.cxx                     |   12 +--
 basctl/source/basicide/moduldl2.cxx                     |   12 +--
 basctl/source/basicide/moduldlg.cxx                     |   32 ++++----
 cui/source/dialogs/cuihyperdlg.cxx                      |    4 -
 cui/source/dialogs/hldocntp.cxx                         |   13 +--
 cui/source/options/treeopt.cxx                          |   16 ++--
 include/sfx2/dispatch.hxx                               |    8 +-
 sc/source/core/data/global.cxx                          |   11 +-
 sc/source/ui/app/inputwin.cxx                           |    4 -
 sc/source/ui/condformat/condformatdlgentry.cxx          |    7 -
 sc/source/ui/dbgui/PivotLayoutDialog.cxx                |    3 
 sc/source/ui/dbgui/consdlg.cxx                          |    4 -
 sc/source/ui/dbgui/filtdlg.cxx                          |    4 -
 sc/source/ui/dbgui/sfiltdlg.cxx                         |    6 -
 sc/source/ui/dialogs/searchresults.cxx                  |    4 -
 sc/source/ui/docshell/docsh4.cxx                        |    5 -
 sc/source/ui/formdlg/formula.cxx                        |    4 -
 sc/source/ui/miscdlgs/solvrdlg.cxx                      |    4 -
 sc/source/ui/miscdlgs/tabopdlg.cxx                      |    4 -
 sc/source/ui/navipi/navipi.cxx                          |   20 ++---
 sc/source/ui/navipi/scenwnd.cxx                         |    3 
 sc/source/ui/pagedlg/areasdlg.cxx                       |    6 -
 sc/source/ui/sidebar/AlignmentPropertyPanel.cxx         |   17 ++--
 sc/source/ui/sidebar/CellBorderStyleControl.cxx         |   21 +++--
 sc/source/ui/sidebar/CellLineStyleControl.cxx           |    3 
 sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx      |    6 +
 sc/source/ui/view/gridwin.cxx                           |   15 ++--
 sc/source/ui/view/tabcont.cxx                           |    4 -
 sc/source/ui/view/tabvwsh5.cxx                          |    4 -
 sc/source/ui/view/tabvwsh9.cxx                          |    4 -
 sc/source/ui/view/tabvwshe.cxx                          |    8 +-
 sc/source/ui/view/viewfun2.cxx                          |    4 -
 sc/source/ui/view/viewfun4.cxx                          |    9 +-
 sc/source/ui/view/viewfun5.cxx                          |    4 -
 sc/source/ui/view/viewfun6.cxx                          |    4 -
 sc/source/ui/view/viewutil.cxx                          |    3 
 sd/qa/unit/tiledrendering/tiledrendering.cxx            |    6 +
 sd/source/ui/annotations/annotationmanager.cxx          |    9 +-
 sd/source/ui/app/sdmod1.cxx                             |    5 -
 sd/source/ui/app/tmplctrl.cxx                           |    3 
 sd/source/ui/dlg/NavigatorChildWindow.cxx               |    5 -
 sd/source/ui/dlg/animobjs.cxx                           |   13 +--
 sd/source/ui/dlg/navigatr.cxx                           |    9 +-
 sd/source/ui/docshell/docshell.cxx                      |    7 +
 sd/source/ui/func/fudraw.cxx                            |    7 +
 sd/source/ui/func/fuoltext.cxx                          |   10 +-
 sd/source/ui/func/fupoor.cxx                            |   10 +-
 sd/source/ui/func/fusel.cxx                             |   59 ++++++++--------
 sd/source/ui/func/futext.cxx                            |   10 +-
 sd/source/ui/slideshow/slideshowimpl.cxx                |   10 +-
 sd/source/ui/slidesorter/controller/SlsSlotManager.cxx  |    6 +
 sd/source/ui/table/TableDesignPane.cxx                  |    3 
 sd/source/ui/unoidl/SdUnoDrawView.cxx                   |    6 +
 sd/source/ui/view/Outliner.cxx                          |    5 -
 sd/source/ui/view/drviews1.cxx                          |    4 -
 sd/source/ui/view/drviews2.cxx                          |   20 ++---
 sd/source/ui/view/drviews5.cxx                          |    8 +-
 sd/source/ui/view/drviews9.cxx                          |    4 -
 sd/source/ui/view/drviewsa.cxx                          |    4 -
 sd/source/ui/view/drviewsb.cxx                          |    4 -
 sd/source/ui/view/drviewsd.cxx                          |    4 -
 sd/source/ui/view/drviewse.cxx                          |    4 -
 sd/source/ui/view/drviewsi.cxx                          |    4 -
 sd/source/ui/view/presvish.cxx                          |    3 
 sd/source/ui/view/viewshel.cxx                          |    5 -
 sfx2/source/appl/appdde.cxx                             |    5 -
 sfx2/source/appl/appopen.cxx                            |   10 +-
 sfx2/source/appl/appserv.cxx                            |    8 +-
 sfx2/source/control/dispatch.cxx                        |   25 ++----
 sfx2/source/dialog/basedlgs.cxx                         |    8 +-
 sfx2/source/dialog/dockwin.cxx                          |    5 -
 sfx2/source/dialog/recfloat.cxx                         |    6 +
 sfx2/source/dialog/templdlg.cxx                         |    2 
 sfx2/source/dialog/titledockwin.cxx                     |    5 -
 sfx2/source/dialog/versdlg.cxx                          |   12 ++-
 sfx2/source/doc/objserv.cxx                             |    6 -
 sfx2/source/view/viewfrm.cxx                            |    3 
 sfx2/source/view/viewsh.cxx                             |    4 -
 starmath/source/ElementsDockingWindow.cxx               |    4 -
 starmath/source/dialog.cxx                              |    4 -
 starmath/source/edit.cxx                                |    8 +-
 starmath/source/view.cxx                                |    8 +-
 svx/source/dialog/_bmpmask.cxx                          |    9 +-
 svx/source/dialog/_contdlg.cxx                          |   10 +-
 svx/source/dialog/fontwork.cxx                          |   36 ++++++---
 svx/source/dialog/imapdlg.cxx                           |   10 +-
 svx/source/dialog/svxruler.cxx                          |   17 ++--
 svx/source/engine3d/float3d.cxx                         |   24 +++---
 svx/source/fmcomp/fmgridcl.cxx                          |    5 -
 svx/source/form/fmshell.cxx                             |   10 +-
 svx/source/sidebar/area/AreaPropertyPanel.cxx           |   26 +++----
 svx/source/sidebar/graphic/GraphicPropertyPanel.cxx     |   24 ++++--
 svx/source/sidebar/line/LinePropertyPanel.cxx           |   24 ++++--
 svx/source/sidebar/paragraph/ParaLineSpacingControl.cxx |    8 +-
 svx/source/sidebar/paragraph/ParaPropertyPanel.cxx      |   28 +++----
 svx/source/sidebar/possize/PosSizePropertyPanel.cxx     |   36 +++++----
 svx/source/sidebar/shadow/ShadowPropertyPanel.cxx       |   21 +++--
 svx/source/sidebar/text/TextCharacterSpacingControl.cxx |   21 +++--
 svx/source/sidebar/text/TextUnderlineControl.cxx        |    3 
 svx/source/tbxctrls/colrctrl.cxx                        |   30 ++++----
 svx/source/tbxctrls/fillctrl.cxx                        |   59 +++++++++-------
 sw/source/ui/index/cnttab.cxx                           |   12 +--
 sw/source/uibase/app/apphdl.cxx                         |   11 +-
 sw/source/uibase/app/docsh2.cxx                         |   23 ++----
 sw/source/uibase/dochdl/swdtflvr.cxx                    |   15 ++--
 sw/source/uibase/docvw/PageBreakWin.cxx                 |   12 ++-
 sw/source/uibase/fldui/fldmgr.cxx                       |    3 
 sw/source/uibase/misc/redlndlg.cxx                      |    5 -
 sw/source/uibase/ribbar/workctrl.cxx                    |    6 +
 sw/source/uibase/shells/basesh.cxx                      |    4 -
 sw/source/uibase/shells/drformsh.cxx                    |    5 -
 sw/source/uibase/shells/frmsh.cxx                       |    7 +
 sw/source/uibase/shells/tabsh.cxx                       |    4 -
 sw/source/uibase/sidebar/PagePropertyPanel.cxx          |   18 +++-
 sw/source/uibase/sidebar/WrapPropertyPanel.cxx          |   15 ++--
 sw/source/uibase/uiview/view.cxx                        |   10 +-
 sw/source/uibase/uiview/view2.cxx                       |   11 +-
 sw/source/uibase/uiview/viewmdi.cxx                     |    4 -
 sw/source/uibase/uiview/viewprt.cxx                     |   13 +--
 sw/source/uibase/uno/unodispatch.cxx                    |    4 -
 sw/source/uibase/utlui/bookctrl.cxx                     |    4 -
 sw/source/uibase/utlui/content.cxx                      |    4 -
 sw/source/uibase/utlui/glbltree.cxx                     |   11 +-
 sw/source/uibase/utlui/navipi.cxx                       |    4 -
 sw/source/uibase/utlui/tmplctrl.cxx                     |    4 -
 129 files changed, 728 insertions(+), 563 deletions(-)

New commits:
commit 51d7f466df85f679f54e4e690f8b5e602192eb7b
Author: Michael Stahl <mstahl at redhat.com>
Date:   Wed Mar 30 17:55:05 2016 +0200

    sfx2: make SfxDispatcher::Execute() less variadic ...
    
    ... and less overloaded; C++11 initializer_list should make undefined
    behavior as fixed in ba0a866b83f016fd460320e7d057dd107e019f19 less
    likely.
    
    Change-Id: I15cc0804451b6a4fcbfaa623f9a30db222207865
    Reviewed-on: https://gerrit.libreoffice.org/23666
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Michael Stahl <mstahl at redhat.com>

diff --git a/avmedia/source/framework/mediaplayer.cxx b/avmedia/source/framework/mediaplayer.cxx
index 5edfd67..638b7b9 100644
--- a/avmedia/source/framework/mediaplayer.cxx
+++ b/avmedia/source/framework/mediaplayer.cxx
@@ -136,7 +136,8 @@ void MediaFloater::dispatchCurrentURL()
             url = mpMediaWindow->getURL();
         }
         const SfxStringItem aMediaURLItem( SID_INSERT_AVMEDIA, url );
-        pDispatcher->Execute(SID_INSERT_AVMEDIA, SfxCallMode::RECORD, &aMediaURLItem, nullptr);
+        pDispatcher->ExecuteList(SID_INSERT_AVMEDIA, SfxCallMode::RECORD,
+                { &aMediaURLItem });
     }
 }
 
diff --git a/basctl/source/basicide/basicbox.cxx b/basctl/source/basicide/basicbox.cxx
index 131e510..36c5b95 100644
--- a/basctl/source/basicide/basicbox.cxx
+++ b/basctl/source/basicide/basicbox.cxx
@@ -309,9 +309,9 @@ void LibBox::NotifyIDE()
         OUString aLibName = pEntry->GetLibName();
         SfxStringItem aLibNameItem( SID_BASICIDE_ARG_LIBNAME, aLibName );
         if (SfxDispatcher* pDispatcher = GetDispatcher())
-            pDispatcher->Execute(
-                SID_BASICIDE_LIBSELECTED,
-                SfxCallMode::SYNCHRON, &aDocumentItem, &aLibNameItem, nullptr
+            pDispatcher->ExecuteList(
+                SID_BASICIDE_LIBSELECTED, SfxCallMode::SYNCHRON,
+                { &aDocumentItem, &aLibNameItem }
             );
     }
     ReleaseFocus();
diff --git a/basctl/source/basicide/bastype2.cxx b/basctl/source/basicide/bastype2.cxx
index 652d53f..6d450e2 100644
--- a/basctl/source/basicide/bastype2.cxx
+++ b/basctl/source/basicide/bastype2.cxx
@@ -930,9 +930,9 @@ bool TreeListBox::OpenCurrent()
                     aDesc.GetLibName(), aDesc.GetName(), aDesc.GetMethodName(),
                     ConvertType(aDesc.GetType())
                 );
-                pDispatcher->Execute(
-                    SID_BASICIDE_SHOWSBX,
-                    SfxCallMode::SYNCHRON, &aSbxItem, nullptr
+                pDispatcher->ExecuteList(
+                    SID_BASICIDE_SHOWSBX, SfxCallMode::SYNCHRON,
+                    { &aSbxItem }
                 );
                 return true;
             }
diff --git a/basctl/source/basicide/bastypes.cxx b/basctl/source/basicide/bastypes.cxx
index ae6a9375..d0ab4a3 100644
--- a/basctl/source/basicide/bastypes.cxx
+++ b/basctl/source/basicide/bastypes.cxx
@@ -554,8 +554,8 @@ void TabBar::EndRenaming()
         SfxUInt16Item aID( SID_BASICIDE_ARG_TABID, GetEditPageId() );
         SfxStringItem aNewName( SID_BASICIDE_ARG_MODULENAME, GetEditText() );
         if (SfxDispatcher* pDispatcher = GetDispatcher())
-            pDispatcher->Execute( SID_BASICIDE_NAMECHANGEDONTAB,
-                      SfxCallMode::SYNCHRON, &aID, &aNewName, nullptr);
+            pDispatcher->ExecuteList( SID_BASICIDE_NAMECHANGEDONTAB,
+                      SfxCallMode::SYNCHRON, { &aID, &aNewName });
     }
 }
 
diff --git a/basctl/source/basicide/macrodlg.cxx b/basctl/source/basicide/macrodlg.cxx
index 4070b50..894c23a 100644
--- a/basctl/source/basicide/macrodlg.cxx
+++ b/basctl/source/basicide/macrodlg.cxx
@@ -679,8 +679,8 @@ IMPL_LINK_TYPED( MacroChooser, ButtonHdl, Button *, pButton, void )
 
             if (SfxDispatcher* pDispatcher = GetDispatcher())
             {
-                pDispatcher->Execute(SID_BASICIDE_EDITMACRO,
-                        SfxCallMode::ASYNCHRON, &aInfoItem, nullptr);
+                pDispatcher->ExecuteList(SID_BASICIDE_EDITMACRO,
+                        SfxCallMode::ASYNCHRON, { &aInfoItem });
             }
             EndDialog(Macro_Edit);
         }
@@ -691,8 +691,8 @@ IMPL_LINK_TYPED( MacroChooser, ButtonHdl, Button *, pButton, void )
                 DeleteMacro();
                 if (SfxDispatcher* pDispatcher = GetDispatcher())
                 {
-                    pDispatcher->Execute( SID_BASICIDE_UPDATEMODULESOURCE,
-                                  SfxCallMode::SYNCHRON, &aInfoItem, nullptr);
+                    pDispatcher->ExecuteList( SID_BASICIDE_UPDATEMODULESOURCE,
+                                  SfxCallMode::SYNCHRON, { &aInfoItem });
                 }
                 CheckButtons();
                 UpdateFields();
@@ -720,8 +720,8 @@ IMPL_LINK_TYPED( MacroChooser, ButtonHdl, Button *, pButton, void )
 
                     if (SfxDispatcher* pDispatcher = GetDispatcher())
                     {
-                        pDispatcher->Execute(SID_BASICIDE_EDITMACRO,
-                                SfxCallMode::ASYNCHRON, &aInfoItem, nullptr);
+                        pDispatcher->ExecuteList(SID_BASICIDE_EDITMACRO,
+                                SfxCallMode::ASYNCHRON, { &aInfoItem });
                     }
                     StoreMacroDescription();
                     EndDialog(Macro_New);
diff --git a/basctl/source/basicide/moduldl2.cxx b/basctl/source/basicide/moduldl2.cxx
index a263219..cd70080 100644
--- a/basctl/source/basicide/moduldl2.cxx
+++ b/basctl/source/basicide/moduldl2.cxx
@@ -631,8 +631,8 @@ IMPL_LINK_TYPED( LibPage, ButtonHdl, Button *, pButton, void )
         OUString aLibName( SvTabListBox::GetEntryText( pCurEntry, 0 ) );
         SfxStringItem aLibNameItem( SID_BASICIDE_ARG_LIBNAME, aLibName );
         if (SfxDispatcher* pDispatcher = GetDispatcher())
-            pDispatcher->Execute( SID_BASICIDE_LIBSELECTED,
-                SfxCallMode::ASYNCHRON, &aDocItem, &aLibNameItem, nullptr);
+            pDispatcher->ExecuteList( SID_BASICIDE_LIBSELECTED,
+                SfxCallMode::ASYNCHRON, { &aDocItem, &aLibNameItem });
         EndTabDialog();
         return;
     }
@@ -1355,8 +1355,8 @@ void LibPage::DeleteCurrent()
         SfxUsrAnyItem aDocItem( SID_BASICIDE_ARG_DOCUMENT_MODEL, makeAny( m_aCurDocument.getDocumentOrNull() ) );
         SfxStringItem aLibNameItem( SID_BASICIDE_ARG_LIBNAME, aLibName );
         if (SfxDispatcher* pDispatcher = GetDispatcher())
-            pDispatcher->Execute( SID_BASICIDE_LIBREMOVED,
-                                  SfxCallMode::SYNCHRON, &aDocItem, &aLibNameItem, 0 );
+            pDispatcher->ExecuteList(SID_BASICIDE_LIBREMOVED,
+                      SfxCallMode::SYNCHRON, { &aDocItem, &aLibNameItem });
 
         // remove library from module and dialog library containers
         if ( xModLibContainer.is() && xModLibContainer->hasByName( aOULibName ) )
@@ -1534,8 +1534,8 @@ void createLibImpl( vcl::Window* pWin, const ScriptDocument& rDocument,
 
                 SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, rDocument, aLibName, aModName, TYPE_MODULE );
                 if (SfxDispatcher* pDispatcher = GetDispatcher())
-                    pDispatcher->Execute( SID_BASICIDE_SBXINSERTED,
-                                          SfxCallMode::SYNCHRON, &aSbxItem, 0 );
+                    pDispatcher->ExecuteList(SID_BASICIDE_SBXINSERTED,
+                                          SfxCallMode::SYNCHRON, { &aSbxItem });
 
                 if( pBasicBox )
                 {
diff --git a/basctl/source/basicide/moduldlg.cxx b/basctl/source/basicide/moduldlg.cxx
index 982f77d..bf5b6ae 100644
--- a/basctl/source/basicide/moduldlg.cxx
+++ b/basctl/source/basicide/moduldlg.cxx
@@ -121,8 +121,8 @@ bool ExtTreeListBox::EditedEntry( SvTreeListEntry* pEntry, const OUString& rNewT
     if (SfxDispatcher* pDispatcher = GetDispatcher())
     {
         SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, aDocument, aLibName, rNewText, ConvertType( eType ) );
-        pDispatcher->Execute( SID_BASICIDE_SBXRENAMED,
-                            SfxCallMode::SYNCHRON, &aSbxItem, nullptr);
+        pDispatcher->ExecuteList( SID_BASICIDE_SBXRENAMED,
+                            SfxCallMode::SYNCHRON, { &aSbxItem });
     }
 
     // OV-Bug?!
@@ -354,8 +354,8 @@ TriState ExtTreeListBox::NotifyCopyingMoving( SvTreeListEntry* pTarget, SvTreeLi
             if( pDispatcher )
             {
                 SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, rSourceDoc, aSourceLibName, aSourceName, ConvertType( eType ) );
-                pDispatcher->Execute( SID_BASICIDE_SBXDELETED,
-                      SfxCallMode::SYNCHRON, &aSbxItem, nullptr);
+                pDispatcher->ExecuteList( SID_BASICIDE_SBXDELETED,
+                      SfxCallMode::SYNCHRON, { &aSbxItem });
             }
         }
 
@@ -446,8 +446,8 @@ TriState ExtTreeListBox::NotifyCopyingMoving( SvTreeListEntry* pTarget, SvTreeLi
         if( pDispatcher )
         {
             SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, rDestDoc, aDestLibName, aSourceName, ConvertType( eType ) );
-            pDispatcher->Execute( SID_BASICIDE_SBXINSERTED,
-                                  SfxCallMode::SYNCHRON, &aSbxItem, nullptr);
+            pDispatcher->ExecuteList( SID_BASICIDE_SBXINSERTED,
+                                  SfxCallMode::SYNCHRON, { &aSbxItem });
         }
     }
 
@@ -717,8 +717,8 @@ IMPL_LINK_TYPED( ObjectPage, ButtonHdl, Button *, pButton, void )
                 }
                 SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, aDesc.GetDocument(), aDesc.GetLibName(),
                                   aModName, TreeListBox::ConvertType( aDesc.GetType() ) );
-                pDispatcher->Execute(SID_BASICIDE_SHOWSBX,
-                        SfxCallMode::SYNCHRON, &aSbxItem, nullptr);
+                pDispatcher->ExecuteList(SID_BASICIDE_SHOWSBX,
+                        SfxCallMode::SYNCHRON, { &aSbxItem });
             }
         }
         else    // Nur Lib selektiert
@@ -737,8 +737,8 @@ IMPL_LINK_TYPED( ObjectPage, ButtonHdl, Button *, pButton, void )
             SfxStringItem aLibNameItem( SID_BASICIDE_ARG_LIBNAME, aLibName );
             if ( pDispatcher )
             {
-                pDispatcher->Execute(SID_BASICIDE_LIBSELECTED,
-                    SfxCallMode::ASYNCHRON, &aDocItem, &aLibNameItem, nullptr);
+                pDispatcher->ExecuteList(SID_BASICIDE_LIBSELECTED,
+                    SfxCallMode::ASYNCHRON, { &aDocItem, &aLibNameItem });
             }
         }
         EndTabDialog();
@@ -844,8 +844,8 @@ void ObjectPage::NewDialog()
                 SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, aDocument, aLibName, aDlgName, TYPE_DIALOG );
                 if (SfxDispatcher* pDispatcher = GetDispatcher())
                 {
-                    pDispatcher->Execute( SID_BASICIDE_SBXINSERTED,
-                        SfxCallMode::SYNCHRON, &aSbxItem, nullptr);
+                    pDispatcher->ExecuteList( SID_BASICIDE_SBXINSERTED,
+                        SfxCallMode::SYNCHRON, { &aSbxItem });
                 }
                 LibraryLocation eLocation = aDocument.getLibraryLocation( aLibName );
                 SvTreeListEntry* pRootEntry = m_pBasicBox->FindRootEntry( aDocument, eLocation );
@@ -900,8 +900,8 @@ void ObjectPage::DeleteCurrent()
         if (SfxDispatcher* pDispatcher = GetDispatcher())
         {
             SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, aDocument, aLibName, aName, TreeListBox::ConvertType( eType ) );
-            pDispatcher->Execute( SID_BASICIDE_SBXDELETED,
-                                  SfxCallMode::SYNCHRON, &aSbxItem, nullptr);
+            pDispatcher->ExecuteList( SID_BASICIDE_SBXDELETED,
+                                  SfxCallMode::SYNCHRON, { &aSbxItem });
         }
 
         try
@@ -1003,8 +1003,8 @@ SbModule* createModImpl( vcl::Window* pWin, const ScriptDocument& rDocument,
                 SbxItem aSbxItem( SID_BASICIDE_ARG_SBX, rDocument, aLibName, aModName, TYPE_MODULE );
             if (SfxDispatcher* pDispatcher = GetDispatcher())
             {
-                pDispatcher->Execute( SID_BASICIDE_SBXINSERTED,
-                      SfxCallMode::SYNCHRON, &aSbxItem, nullptr);
+                pDispatcher->ExecuteList( SID_BASICIDE_SBXINSERTED,
+                      SfxCallMode::SYNCHRON, { &aSbxItem });
             }
             LibraryLocation eLocation = rDocument.getLibraryLocation( aLibName );
             SvTreeListEntry* pRootEntry = rBasicBox.FindRootEntry( rDocument, eLocation );
diff --git a/cui/source/dialogs/cuihyperdlg.cxx b/cui/source/dialogs/cuihyperdlg.cxx
index 02b29e7..b423b1c 100644
--- a/cui/source/dialogs/cuihyperdlg.cxx
+++ b/cui/source/dialogs/cuihyperdlg.cxx
@@ -211,8 +211,8 @@ void SvxHpLinkDlg::Apply()
                                       aItemSet.GetItem (SID_HYPERLINK_SETLINK));
         OUString aStrEmpty;
         if ( aItem->GetURL() != aStrEmpty )
-            GetDispatcher()->Execute( SID_HYPERLINK_SETLINK, SfxCallMode::ASYNCHRON |
-                                      SfxCallMode::RECORD, aItem, 0L);
+            GetDispatcher()->ExecuteList(SID_HYPERLINK_SETLINK,
+                    SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { aItem });
 
         static_cast<SvxHyperlinkTabPageBase*>( GetTabPage( GetCurPageId() ) )->DoApply();
     }
diff --git a/cui/source/dialogs/hldocntp.cxx b/cui/source/dialogs/hldocntp.cxx
index 479d6a9..2545c72 100644
--- a/cui/source/dialogs/hldocntp.cxx
+++ b/cui/source/dialogs/hldocntp.cxx
@@ -354,10 +354,9 @@ void SvxHyperlinkNewDocTp::DoApply ()
                     SfxStringItem aFlags (SID_OPTIONS, aStrFlags);
 
                     // open url
-                    const SfxPoolItem* pReturn = GetDispatcher()->Execute( SID_OPENDOC,
-                                                                           SfxCallMode::SYNCHRON,
-                                                                           &aName, &aFlags,
-                                                                           &aFrame, &aReferer, 0L );
+                    const SfxPoolItem* pReturn = GetDispatcher()->ExecuteList(
+                            SID_OPENDOC, SfxCallMode::SYNCHRON,
+                            { &aName, &aFlags, &aFrame, &aReferer });
 
                     // save new doc
                     const SfxViewFrameItem *pItem = dynamic_cast<const SfxViewFrameItem*>( pReturn  );  // SJ: pReturn is NULL if the Hyperlink
@@ -368,9 +367,9 @@ void SvxHyperlinkNewDocTp::DoApply ()
                         {
                             SfxStringItem aNewName( SID_FILE_NAME, aURL.GetMainURL( INetURLObject::NO_DECODE ) );
 
-                            pViewFrame->GetDispatcher()->Execute( SID_SAVEASDOC,
-                                                                  SfxCallMode::SYNCHRON,
-                                                                  &aNewName, 0L );
+                            pViewFrame->GetDispatcher()->ExecuteList(
+                                SID_SAVEASDOC, SfxCallMode::SYNCHRON,
+                                { &aNewName });
 
                         }
                     }
diff --git a/cui/source/options/treeopt.cxx b/cui/source/options/treeopt.cxx
index 0bbd5c7..8357b71 100644
--- a/cui/source/options/treeopt.cxx
+++ b/cui/source/options/treeopt.cxx
@@ -1351,7 +1351,8 @@ void OfaTreeOptionsDialog::ApplyItemSet( sal_uInt16 nId, const SfxItemSet& rSet
                 if ( pViewFrame )
                 {
                     SfxDispatcher* pDispatch = pViewFrame->GetDispatcher();
-                    pDispatch->Execute( SID_ATTR_YEAR2000, SfxCallMode::ASYNCHRON, pItem, 0L);
+                    pDispatch->ExecuteList(SID_ATTR_YEAR2000,
+                            SfxCallMode::ASYNCHRON, { pItem });
                 }
                 aMisc.SetYear2000(nY2K);
             }
@@ -1431,25 +1432,25 @@ void OfaTreeOptionsDialog::ApplyLanguageOptions(const SfxItemSet& rSet)
         pItem = nullptr;
         if(SfxItemState::SET == rSet.GetItemState( SID_ATTR_LANGUAGE, false, &pItem ))
         {
-            pDispatch->Execute(pItem->Which(),    SfxCallMode::ASYNCHRON, pItem, 0L);
+            pDispatch->ExecuteList(pItem->Which(), SfxCallMode::ASYNCHRON, { pItem });
             bSaveSpellCheck = true;
         }
         if(SfxItemState::SET == rSet.GetItemState( SID_ATTR_CHAR_CTL_LANGUAGE, false, &pItem ))
         {
-            pDispatch->Execute(pItem->Which(),    SfxCallMode::ASYNCHRON, pItem, 0L);
+            pDispatch->ExecuteList(pItem->Which(), SfxCallMode::ASYNCHRON, { pItem });
             bSaveSpellCheck = true;
         }
         if(SfxItemState::SET == rSet.GetItemState( SID_ATTR_CHAR_CJK_LANGUAGE, false, &pItem ))
         {
-            pDispatch->Execute(pItem->Which(),    SfxCallMode::ASYNCHRON, pItem, 0L);
+            pDispatch->ExecuteList(pItem->Which(), SfxCallMode::ASYNCHRON, { pItem });
             bSaveSpellCheck = true;
         }
 
         if( SfxItemState::SET == rSet.GetItemState(SID_AUTOSPELL_CHECK, false, &pItem ))
         {
             bool bOnlineSpelling = static_cast<const SfxBoolItem*>(pItem)->GetValue();
-            pDispatch->Execute(SID_AUTOSPELL_CHECK,
-                SfxCallMode::ASYNCHRON|SfxCallMode::RECORD, pItem, 0L);
+            pDispatch->ExecuteList(SID_AUTOSPELL_CHECK,
+                SfxCallMode::ASYNCHRON|SfxCallMode::RECORD, { pItem });
 
             xProp->setIsSpellAuto( bOnlineSpelling );
         }
@@ -1467,7 +1468,8 @@ void OfaTreeOptionsDialog::ApplyLanguageOptions(const SfxItemSet& rSet)
         SfxViewFrame* _pViewFrame = SfxViewFrame::GetFirst();
         while ( _pViewFrame )
         {
-            _pViewFrame->GetDispatcher()->Execute(pItem->Which(),    SfxCallMode::ASYNCHRON, pItem, 0L);
+            _pViewFrame->GetDispatcher()->ExecuteList(pItem->Which(),
+                    SfxCallMode::ASYNCHRON, { pItem });
             _pViewFrame = SfxViewFrame::GetNext( *_pViewFrame );
         }
     }
diff --git a/include/sfx2/dispatch.hxx b/include/sfx2/dispatch.hxx
index bbb2df1..5ce479e 100644
--- a/include/sfx2/dispatch.hxx
+++ b/include/sfx2/dispatch.hxx
@@ -23,12 +23,12 @@
 #include <sfx2/dllapi.h>
 #include <sal/types.h>
 
-#include <stdarg.h>
-
 #include <sfx2/bindings.hxx>
 #include <sfx2/viewfrm.hxx>
 #include <o3tl/typed_flags_set.hxx>
 
+#include <initializer_list>
+
 class SfxSlotServer;
 class SfxShell;
 class SfxRequest;
@@ -129,9 +129,9 @@ public:
                                  SfxItemSet* pInternalArgs,
                                  sal_uInt16 nModi = 0);
 
-    const SfxPoolItem*  Execute( sal_uInt16 nSlot,
+    const SfxPoolItem*  ExecuteList( sal_uInt16 nSlot,
                                  SfxCallMode nCall,
-                                 const SfxPoolItem *pArg1, ... );
+                                 std::initializer_list<SfxPoolItem const*> args);
 
     const SfxPoolItem*  Execute( sal_uInt16 nSlot,
                                  SfxCallMode nCall,
diff --git a/sc/source/core/data/global.cxx b/sc/source/core/data/global.cxx
index 12bc05c..0e22566 100644
--- a/sc/source/core/data/global.cxx
+++ b/sc/source/core/data/global.cxx
@@ -921,12 +921,11 @@ void ScGlobal::OpenURL(const OUString& rURL, const OUString& rTarget, const SdrM
     // No SID_SILENT anymore
     SfxViewFrame* pViewFrm = SfxViewFrame::Current();
     if (pViewFrm)
-        pViewFrm->GetDispatcher()->Execute( SID_OPENDOC,
-                                    SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                    &aUrl, &aTarget,
-                                    &aFrm, &aReferer,
-                                    &aNewView, &aBrowsing,
-                                    nullptr);
+    {
+        pViewFrm->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                { &aUrl, &aTarget, &aFrm, &aReferer, &aNewView, &aBrowsing });
+    }
 }
 
 bool ScGlobal::IsSystemRTL()
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 50545c0..38c10aa 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -2275,9 +2275,9 @@ void ScPosWnd::DoEnter()
                     SfxStringItem aPosItem( SID_CURRENTCELL, aText );
                     SfxBoolItem aUnmarkItem( FN_PARAM_1, true );        // remove existing selection
 
-                    pViewSh->GetViewData().GetDispatcher().Execute( SID_CURRENTCELL,
+                    pViewSh->GetViewData().GetDispatcher().ExecuteList( SID_CURRENTCELL,
                                         SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                                        &aPosItem, &aUnmarkItem, nullptr);
+                                        { &aPosItem, &aUnmarkItem });
                 }
             }
         }
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index c34d146..795467c 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -496,10 +496,9 @@ void StyleSelect( ListBox& rLbStyle, ScDocument* pDoc, SvxFontPrevWindow& rWdPre
 
         // Execute the "new style" slot, complete with undo and all necessary updates.
         // The return value (SfxUInt16Item) is ignored, look for new styles instead.
-        pDisp->Execute( SID_STYLE_NEW, SfxCallMode::SYNCHRON | SfxCallMode::RECORD | SfxCallMode::MODAL,
-                &aFamilyItem,
-                &aRefItem,
-                nullptr);
+        pDisp->ExecuteList(SID_STYLE_NEW,
+            SfxCallMode::SYNCHRON | SfxCallMode::RECORD | SfxCallMode::MODAL,
+            { &aFamilyItem, &aRefItem });
 
         if (bLocked)
             pDisp->Lock(true);
diff --git a/sc/source/ui/dbgui/PivotLayoutDialog.cxx b/sc/source/ui/dbgui/PivotLayoutDialog.cxx
index 412b766..d1bc023 100644
--- a/sc/source/ui/dbgui/PivotLayoutDialog.cxx
+++ b/sc/source/ui/dbgui/PivotLayoutDialog.cxx
@@ -508,7 +508,8 @@ void ScPivotLayoutDialog::ApplyChanges()
 
     SfxDispatcher* pDispatcher = GetBindings().GetDispatcher();
     SfxCallMode nCallMode = SfxCallMode::SLOT | SfxCallMode::RECORD;
-    const SfxPoolItem* pResult = pDispatcher->Execute(SID_PIVOT_TABLE, nCallMode, &aPivotItem, nullptr, 0);
+    const SfxPoolItem* pResult = pDispatcher->ExecuteList(SID_PIVOT_TABLE,
+            nCallMode, { &aPivotItem });
 
     if (pResult != nullptr)
     {
diff --git a/sc/source/ui/dbgui/consdlg.cxx b/sc/source/ui/dbgui/consdlg.cxx
index 2ff6d87..d02fad0 100644
--- a/sc/source/ui/dbgui/consdlg.cxx
+++ b/sc/source/ui/dbgui/consdlg.cxx
@@ -404,9 +404,9 @@ IMPL_LINK_NOARG_TYPED(ScConsolidateDlg, OkHdl, Button*, void)
 
             SetDispatcherLock( false );
             SwitchToDocument();
-            GetBindings().GetDispatcher()->Execute( SID_CONSOLIDATE,
+            GetBindings().GetDispatcher()->ExecuteList(SID_CONSOLIDATE,
                                       SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                      &aOutItem, 0L, 0L );
+                                      { &aOutItem });
             Close();
         }
         else
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index 8223510..ab777fb 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -729,9 +729,9 @@ IMPL_LINK_TYPED( ScFilterDlg, EndDlgHdl, Button*, pBtn, void )
         {
             SetDispatcherLock( false );
             SwitchToDocument();
-            GetBindings().GetDispatcher()->Execute( FID_FILTER_OK,
+            GetBindings().GetDispatcher()->ExecuteList(FID_FILTER_OK,
                                       SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                      GetOutputItem(), 0L, 0L );
+                                      { GetOutputItem() });
             Close();
         }
     }
diff --git a/sc/source/ui/dbgui/sfiltdlg.cxx b/sc/source/ui/dbgui/sfiltdlg.cxx
index 6ed9c5d..b29e082 100644
--- a/sc/source/ui/dbgui/sfiltdlg.cxx
+++ b/sc/source/ui/dbgui/sfiltdlg.cxx
@@ -372,9 +372,9 @@ IMPL_LINK_TYPED( ScSpecialFilterDlg, EndDlgHdl, Button*, pBtn, void )
         {
             SetDispatcherLock( false );
             SwitchToDocument();
-            GetBindings().GetDispatcher()->Execute( FID_FILTER_OK,
-                                      SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                      GetOutputItem( theOutParam, theFilterArea ), 0L, 0L );
+            GetBindings().GetDispatcher()->ExecuteList(FID_FILTER_OK,
+                    SfxCallMode::SLOT | SfxCallMode::RECORD,
+                    { GetOutputItem(theOutParam, theFilterArea) });
             Close();
         }
         else
diff --git a/sc/source/ui/dialogs/searchresults.cxx b/sc/source/ui/dialogs/searchresults.cxx
index c78ea2e..225fb2f 100644
--- a/sc/source/ui/dialogs/searchresults.cxx
+++ b/sc/source/ui/dialogs/searchresults.cxx
@@ -85,8 +85,8 @@ bool SearchResultsDlg::Close()
         SfxBoolItem aItem(SID_SEARCH_RESULTS_DIALOG, false);
         if (pDispacher)
         {
-            pDispacher->Execute(SID_SEARCH_RESULTS_DIALOG,
-                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, nullptr);
+            pDispacher->ExecuteList(SID_SEARCH_RESULTS_DIALOG,
+                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { &aItem });
         }
     }
 
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 09b7f5c..8a4a0f0 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -1098,8 +1098,9 @@ void ScDocShell::Execute( SfxRequest& rReq )
         {
             SfxStringItem aApp(SID_DOC_SERVICE, OUString("com.sun.star.sheet.SpreadsheetDocument"));
             SfxStringItem aTarget(SID_TARGETNAME, OUString("_blank"));
-            GetViewData()->GetDispatcher().Execute(
-                SID_OPENDOC, SfxCallMode::API|SfxCallMode::SYNCHRON, &aApp, &aTarget, 0L);
+            GetViewData()->GetDispatcher().ExecuteList(
+                SID_OPENDOC, SfxCallMode::API|SfxCallMode::SYNCHRON,
+                { &aApp, &aTarget });
         }
         break;
         default:
diff --git a/sc/source/ui/formdlg/formula.cxx b/sc/source/ui/formdlg/formula.cxx
index 53fc657..d224259 100644
--- a/sc/source/ui/formdlg/formula.cxx
+++ b/sc/source/ui/formdlg/formula.cxx
@@ -531,9 +531,9 @@ void ScFormulaDlg::dispatch(bool _bOK, bool _bMatrixChecked)
 
     clear();
 
-    GetBindings().GetDispatcher()->Execute( SID_INS_FUNCTION,
+    GetBindings().GetDispatcher()->ExecuteList( SID_INS_FUNCTION,
                               SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                              &aRetItem, &aStrItem, &aMatItem, nullptr);
+                              { &aRetItem, &aStrItem, &aMatItem });
 }
 void ScFormulaDlg::setDispatcherLock( bool bLock )
 {
diff --git a/sc/source/ui/miscdlgs/solvrdlg.cxx b/sc/source/ui/miscdlgs/solvrdlg.cxx
index 07982d3..29f0f7e 100644
--- a/sc/source/ui/miscdlgs/solvrdlg.cxx
+++ b/sc/source/ui/miscdlgs/solvrdlg.cxx
@@ -236,9 +236,9 @@ IMPL_LINK_TYPED( ScSolverDlg, BtnHdl, Button*, pBtn, void )
                         SetDispatcherLock( false );
 
                         SwitchToDocument();
-                        GetBindings().GetDispatcher()->Execute( SID_SOLVE,
+                        GetBindings().GetDispatcher()->ExecuteList(SID_SOLVE,
                                                   SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                                  &aOutItem, 0L, 0L );
+                                                  { &aOutItem });
                         Close();
                     }
                     else RaiseError( SOLVERR_NOFORMULA );
diff --git a/sc/source/ui/miscdlgs/tabopdlg.cxx b/sc/source/ui/miscdlgs/tabopdlg.cxx
index 0ae7eab..8cf0202 100644
--- a/sc/source/ui/miscdlgs/tabopdlg.cxx
+++ b/sc/source/ui/miscdlgs/tabopdlg.cxx
@@ -312,9 +312,9 @@ IMPL_LINK_TYPED( ScTabOpDlg, BtnHdl, Button*, pBtn, void )
 
             SetDispatcherLock( false );
             SwitchToDocument();
-            GetBindings().GetDispatcher()->Execute( SID_TABOP,
+            GetBindings().GetDispatcher()->ExecuteList(SID_TABOP,
                                       SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                      &aOutItem, 0L, 0L );
+                                      { &aOutItem });
             Close();
         }
     }
diff --git a/sc/source/ui/navipi/navipi.cxx b/sc/source/ui/navipi/navipi.cxx
index e48e57c..331870b 100644
--- a/sc/source/ui/navipi/navipi.cxx
+++ b/sc/source/ui/navipi/navipi.cxx
@@ -925,9 +925,9 @@ void ScNavigatorDlg::SetCurrentCell( SCCOL nColNo, SCROW nRowNo )
         SfxStringItem   aPosItem( SID_CURRENTCELL, aAddr );
         SfxBoolItem     aUnmarkItem( FN_PARAM_1, bUnmark );     // cancel selektion
 
-        rBindings.GetDispatcher()->Execute( SID_CURRENTCELL,
+        rBindings.GetDispatcher()->ExecuteList(SID_CURRENTCELL,
                                   SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                                  &aPosItem, &aUnmarkItem, 0L );
+                                  { &aPosItem, &aUnmarkItem });
     }
 }
 
@@ -936,9 +936,9 @@ void ScNavigatorDlg::SetCurrentCellStr( const OUString& rName )
     ppBoundItems[0]->ClearCache();
     SfxStringItem   aNameItem( SID_CURRENTCELL, rName );
 
-    rBindings.GetDispatcher()->Execute( SID_CURRENTCELL,
+    rBindings.GetDispatcher()->ExecuteList(SID_CURRENTCELL,
                               SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                              &aNameItem, 0L );
+                              { &aNameItem });
 }
 
 void ScNavigatorDlg::SetCurrentTable( SCTAB nTabNo )
@@ -947,9 +947,9 @@ void ScNavigatorDlg::SetCurrentTable( SCTAB nTabNo )
     {
         // Table for basic is base-1
         SfxUInt16Item aTabItem( SID_CURRENTTAB, static_cast<sal_uInt16>(nTabNo) + 1 );
-        rBindings.GetDispatcher()->Execute( SID_CURRENTTAB,
+        rBindings.GetDispatcher()->ExecuteList(SID_CURRENTTAB,
                                   SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                                  &aTabItem, 0L );
+                                  { &aTabItem });
     }
 }
 
@@ -975,17 +975,17 @@ void ScNavigatorDlg::SetCurrentTableStr( const OUString& rName )
 void ScNavigatorDlg::SetCurrentObject( const OUString& rName )
 {
     SfxStringItem aNameItem( SID_CURRENTOBJECT, rName );
-    rBindings.GetDispatcher()->Execute( SID_CURRENTOBJECT,
+    rBindings.GetDispatcher()->ExecuteList( SID_CURRENTOBJECT,
                               SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                              &aNameItem, 0L );
+                              { &aNameItem });
 }
 
 void ScNavigatorDlg::SetCurrentDoc( const OUString& rDocName )        // activate
 {
     SfxStringItem aDocItem( SID_CURRENTDOC, rDocName );
-    rBindings.GetDispatcher()->Execute( SID_CURRENTDOC,
+    rBindings.GetDispatcher()->ExecuteList( SID_CURRENTDOC,
                               SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                              &aDocItem, 0L );
+                              { &aDocItem });
 }
 
 ScTabViewShell* ScNavigatorDlg::GetTabViewShell()
diff --git a/sc/source/ui/navipi/scenwnd.cxx b/sc/source/ui/navipi/scenwnd.cxx
index cd3d248..eaa620a 100644
--- a/sc/source/ui/navipi/scenwnd.cxx
+++ b/sc/source/ui/navipi/scenwnd.cxx
@@ -169,7 +169,8 @@ void ScScenarioListBox::ExecuteScenarioSlot( sal_uInt16 nSlotId )
     if( SfxViewFrame* pViewFrm = SfxViewFrame::Current() )
     {
         SfxStringItem aStringItem( nSlotId, GetSelectEntry() );
-        pViewFrm->GetDispatcher()->Execute( nSlotId, SfxCallMode::SLOT | SfxCallMode::RECORD, &aStringItem, 0L, 0L );
+        pViewFrm->GetDispatcher()->ExecuteList(nSlotId,
+                SfxCallMode::SLOT | SfxCallMode::RECORD, { &aStringItem } );
     }
 }
 
diff --git a/sc/source/ui/pagedlg/areasdlg.cxx b/sc/source/ui/pagedlg/areasdlg.cxx
index 541d38d..b0e2632 100644
--- a/sc/source/ui/pagedlg/areasdlg.cxx
+++ b/sc/source/ui/pagedlg/areasdlg.cxx
@@ -505,9 +505,9 @@ IMPL_LINK_TYPED( ScPrintAreasDlg, Impl_BtnHdl, Button*, pBtn, void )
             {
                 SetDispatcherLock( false );
                 SwitchToDocument();
-                GetBindings().GetDispatcher()->Execute( SID_CHANGE_PRINTAREA,
-                                          SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                          &aPrintArea, &aRepeatRow, &aRepeatCol, &aEntireSheet, 0L );
+                GetBindings().GetDispatcher()->ExecuteList(SID_CHANGE_PRINTAREA,
+                      SfxCallMode::SLOT | SfxCallMode::RECORD,
+                      { &aPrintArea, &aRepeatRow, &aRepeatCol, &aEntireSheet });
             }
 
             Close();
diff --git a/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx b/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
index 64fa31c..83d4049 100644
--- a/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
+++ b/sc/source/ui/sidebar/AlignmentPropertyPanel.cxx
@@ -148,7 +148,8 @@ IMPL_LINK_TYPED( AlignmentPropertyPanel, ReferenceEdgeHdl, Button*, pControl, vo
     else
         eMode = SVX_ROTATE_MODE_STANDARD;
     SvxRotateModeItem aItem(eMode,ATTR_ROTATE_MODE);
-    GetBindings()->GetDispatcher()->Execute(SID_ATTR_ALIGN_LOCKPOS, SfxCallMode::RECORD, &aItem, 0l);
+    GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_ALIGN_LOCKPOS,
+            SfxCallMode::RECORD, { &aItem });
 }
 
 IMPL_LINK_NOARG_TYPED( AlignmentPropertyPanel, AngleModifiedHdl, Edit&, void )
@@ -185,15 +186,15 @@ IMPL_LINK_NOARG_TYPED( AlignmentPropertyPanel, AngleModifiedHdl, Edit&, void )
     sal_Int64 nTmp = (sal_Int64)fTmp*100;
     SfxInt32Item aAngleItem( SID_ATTR_ALIGN_DEGREES,(sal_uInt32) nTmp);
 
-    GetBindings()->GetDispatcher()->Execute(
-        SID_ATTR_ALIGN_DEGREES, SfxCallMode::RECORD, &aAngleItem, 0L );
+    GetBindings()->GetDispatcher()->ExecuteList(
+        SID_ATTR_ALIGN_DEGREES, SfxCallMode::RECORD, { &aAngleItem });
 }
 IMPL_LINK_NOARG_TYPED( AlignmentPropertyPanel, ClickStackHdl, Button*, void )
 {
     bool bVertical = mpCBStacked->IsChecked();
     SfxBoolItem  aStackItem( SID_ATTR_ALIGN_STACKED, bVertical );
-    GetBindings()->GetDispatcher()->Execute(
-        SID_ATTR_ALIGN_STACKED, SfxCallMode::RECORD, &aStackItem, 0L );
+    GetBindings()->GetDispatcher()->ExecuteList(
+        SID_ATTR_ALIGN_STACKED, SfxCallMode::RECORD, { &aStackItem });
 }
 IMPL_LINK_NOARG_TYPED(AlignmentPropertyPanel, MFLeftIndentMdyHdl, Edit&, void)
 {
@@ -201,7 +202,8 @@ IMPL_LINK_NOARG_TYPED(AlignmentPropertyPanel, MFLeftIndentMdyHdl, Edit&, void)
     sal_uInt16 nVal = (sal_uInt16)mpMFLeftIndent->GetValue();
     SfxUInt16Item aItem( SID_ATTR_ALIGN_INDENT,  (sal_uInt16)CalcToUnit( nVal,  SFX_MAPUNIT_TWIP ) );
 
-    GetBindings()->GetDispatcher()->Execute(SID_ATTR_ALIGN_INDENT, SfxCallMode::RECORD, &aItem, 0L);
+    GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_ALIGN_INDENT,
+            SfxCallMode::RECORD, { &aItem });
 }
 
 IMPL_LINK_NOARG_TYPED(AlignmentPropertyPanel, CBOXMergnCellClkHdl, Button*, void)
@@ -223,7 +225,8 @@ IMPL_LINK_NOARG_TYPED(AlignmentPropertyPanel, CBOXWrapTextClkHdl, Button*, void)
 {
     bool bState = mpCBXWrapText->IsChecked();
     SfxBoolItem aItem( SID_ATTR_ALIGN_LINEBREAK , bState);
-    GetBindings()->GetDispatcher()->Execute(SID_ATTR_ALIGN_LINEBREAK, SfxCallMode::RECORD, &aItem, 0L);
+    GetBindings()->GetDispatcher()->ExecuteList(SID_ATTR_ALIGN_LINEBREAK,
+            SfxCallMode::RECORD, { &aItem });
 }
 
 VclPtr<vcl::Window> AlignmentPropertyPanel::Create (
diff --git a/sc/source/ui/sidebar/CellBorderStyleControl.cxx b/sc/source/ui/sidebar/CellBorderStyleControl.cxx
index 866f47d..8280bc3 100644
--- a/sc/source/ui/sidebar/CellBorderStyleControl.cxx
+++ b/sc/source/ui/sidebar/CellBorderStyleControl.cxx
@@ -162,8 +162,10 @@ IMPL_LINK_TYPED(CellBorderStyleControl, TB1SelectHdl, ToolBox*, pToolBox, void)
         SvxLineItem     aLineItem2( SID_ATTR_BORDER_DIAG_TLBR );
         aLineItem1.SetLine( nullptr );     //modify
         aLineItem2.SetLine( nullptr );     //modify
-        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_ATTR_BORDER_DIAG_BLTR, SfxCallMode::RECORD, &aLineItem1, 0L);
-        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_ATTR_BORDER_DIAG_TLBR, SfxCallMode::RECORD, &aLineItem2, 0L);
+        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+            SID_ATTR_BORDER_DIAG_BLTR, SfxCallMode::RECORD, { &aLineItem1 });
+        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+            SID_ATTR_BORDER_DIAG_TLBR, SfxCallMode::RECORD, { &aLineItem2 });
         }
         break;
     case TBI_BORDER1_ALL:
@@ -197,7 +199,8 @@ IMPL_LINK_TYPED(CellBorderStyleControl, TB1SelectHdl, ToolBox*, pToolBox, void)
     aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISTANCE );
     aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
 
-    mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_ATTR_BORDER, SfxCallMode::RECORD, &aBorderOuter, &aBorderInner, 0L);
+    mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+        SID_ATTR_BORDER, SfxCallMode::RECORD, { &aBorderOuter, &aBorderInner });
     mrCellAppearancePropertyPanel.EndCellBorderStylePopupMode();
 }
 
@@ -265,21 +268,24 @@ IMPL_LINK_TYPED(CellBorderStyleControl, TB2SelectHdl, ToolBox *, pToolBox, void)
         aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISTANCE );
         aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
 
-        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_ATTR_BORDER, SfxCallMode::RECORD, &aBorderOuter, &aBorderInner, 0L);
+        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+            SID_ATTR_BORDER, SfxCallMode::RECORD, { &aBorderOuter, &aBorderInner});
     }
     else if(nId == TBI_BORDER2_BLTR)
     {
         editeng::SvxBorderLine aTmp( nullptr, 1 );
         SvxLineItem     aLineItem( SID_ATTR_BORDER_DIAG_BLTR );
         aLineItem.SetLine( &aTmp );
-        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_ATTR_BORDER_DIAG_BLTR, SfxCallMode::RECORD, &aLineItem, 0L);
+        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+            SID_ATTR_BORDER_DIAG_BLTR, SfxCallMode::RECORD, { &aLineItem });
     }
     else if(nId == TBI_BORDER2_TLBR)
     {
         editeng::SvxBorderLine aTmp( nullptr, 1 );
         SvxLineItem     aLineItem( SID_ATTR_BORDER_DIAG_TLBR );
         aLineItem.SetLine( &aTmp );
-        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_ATTR_BORDER_DIAG_TLBR, SfxCallMode::RECORD, &aLineItem, 0L);
+        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+            SID_ATTR_BORDER_DIAG_TLBR, SfxCallMode::RECORD, { &aLineItem });
     }
 
     mrCellAppearancePropertyPanel.EndCellBorderStylePopupMode();
@@ -336,7 +342,8 @@ IMPL_LINK_TYPED(CellBorderStyleControl, TB3SelectHdl, ToolBox *, pToolBox, void)
     aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISTANCE );
     aBorderInner.SetValid( SvxBoxInfoItemValidFlags::DISABLE, false );
 
-    mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_ATTR_BORDER, SfxCallMode::RECORD, &aBorderOuter, &aBorderInner, 0L);
+    mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+        SID_ATTR_BORDER, SfxCallMode::RECORD, { &aBorderOuter, &aBorderInner });
 
     pTop.reset();
     pBottom.reset();
diff --git a/sc/source/ui/sidebar/CellLineStyleControl.cxx b/sc/source/ui/sidebar/CellLineStyleControl.cxx
index c4f9c71..59a25ed 100644
--- a/sc/source/ui/sidebar/CellLineStyleControl.cxx
+++ b/sc/source/ui/sidebar/CellLineStyleControl.cxx
@@ -176,7 +176,8 @@ IMPL_LINK_TYPED(CellLineStyleControl, VSSelectHdl, ValueSet*, pControl, void)
         editeng::SvxBorderLine aTmp;
         aTmp.GuessLinesWidths(nStyle, n1, n2, n3);
         aLineItem.SetLine( &aTmp );
-        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->Execute(SID_FRAME_LINESTYLE, SfxCallMode::RECORD, &aLineItem, 0L);
+        mrCellAppearancePropertyPanel.GetBindings()->GetDispatcher()->ExecuteList(
+            SID_FRAME_LINESTYLE, SfxCallMode::RECORD, { &aLineItem });
         SetAllNoSel();
         mrCellAppearancePropertyPanel.EndCellLineStylePopupMode();
     }
diff --git a/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx b/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
index 3240d40..9802c9c 100644
--- a/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
+++ b/sc/source/ui/sidebar/NumberFormatPropertyPanel.cxx
@@ -110,7 +110,8 @@ IMPL_LINK_TYPED( NumberFormatPropertyPanel, NumFormatSelectHdl, ListBox&, rBox,
     if( nVal != mnCategorySelected )
     {
         SfxUInt16Item aItem( SID_NUMBER_TYPE_FORMAT,  nVal );
-        GetBindings()->GetDispatcher()->Execute(SID_NUMBER_TYPE_FORMAT, SfxCallMode::RECORD, &aItem, 0L);
+        GetBindings()->GetDispatcher()->ExecuteList(SID_NUMBER_TYPE_FORMAT,
+                SfxCallMode::RECORD, { &aItem });
         mnCategorySelected = nVal;
     }
 }
@@ -149,7 +150,8 @@ IMPL_LINK_NOARG_TYPED( NumberFormatPropertyPanel, NumFormatValueHdl, Edit&, void
     aFormat += sBreak;
 
     SfxStringItem aItem( SID_NUMBER_FORMAT,  aFormat );
-    GetBindings()->GetDispatcher()->Execute(SID_NUMBER_FORMAT, SfxCallMode::RECORD, &aItem, 0L);
+    GetBindings()->GetDispatcher()->ExecuteList(SID_NUMBER_FORMAT,
+            SfxCallMode::RECORD, { &aItem });
 }
 
 VclPtr<vcl::Window> NumberFormatPropertyPanel::Create (
diff --git a/sc/source/ui/view/gridwin.cxx b/sc/source/ui/view/gridwin.cxx
index 136cde1..33de00a 100644
--- a/sc/source/ui/view/gridwin.cxx
+++ b/sc/source/ui/view/gridwin.cxx
@@ -1749,8 +1749,9 @@ void ScGridWindow::HandleMouseButtonDown( const MouseEvent& rMEvt, MouseEventSta
 
             SfxInt16Item aPosXItem( SID_RANGE_COL, nPosX );
             SfxInt32Item aPosYItem( SID_RANGE_ROW, nPosY );
-            pViewData->GetDispatcher().Execute( SID_FILL_SELECT, SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                        &aPosXItem, &aPosYItem, nullptr );
+            pViewData->GetDispatcher().ExecuteList(SID_FILL_SELECT,
+                    SfxCallMode::SLOT | SfxCallMode::RECORD,
+                    { &aPosXItem, &aPosYItem });
 
         }
         nButtonDown = 0;
@@ -2455,8 +2456,9 @@ void ScGridWindow::MouseButtonUp( const MouseEvent& rMEvt )
             // cell cursor isn't visible after making selection, it would jump
             // back to the origin of the selection where the cell cursor is.
             SfxBoolItem aAlignCursorItem( FN_PARAM_2, false );
-            pDisp->Execute( SID_CURRENTCELL, SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                        &aPosItem, &aAlignCursorItem, nullptr );
+            pDisp->ExecuteList(SID_CURRENTCELL,
+                    SfxCallMode::SLOT | SfxCallMode::RECORD,
+                    { &aPosItem, &aAlignCursorItem });
 
             pViewData->GetView()->InvalidateAttribs();
         }
@@ -4120,8 +4122,9 @@ sal_Int8 ScGridWindow::DropTransferObj( ScTransferObj* pTransObj, SCCOL nDestPos
                 SfxStringItem aNameItem( SID_CHART_NAME, aChartName );
                 SfxStringItem aRangeItem( SID_CHART_SOURCE, aRangeName );
                 sal_uInt16 nId = bIsMove ? SID_CHART_SOURCE : SID_CHART_ADDSOURCE;
-                pViewData->GetDispatcher().Execute( nId, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                            &aRangeItem, &aNameItem, nullptr );
+                pViewData->GetDispatcher().ExecuteList(nId,
+                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                        { &aRangeItem, &aNameItem });
                 bDone = true;
             }
             else if ( pThisDoc->GetDPAtCursor( nDestPosX, nDestPosY, nThisTab ) )
diff --git a/sc/source/ui/view/tabcont.cxx b/sc/source/ui/view/tabcont.cxx
index 7e7c29df..8f8eb13 100644
--- a/sc/source/ui/view/tabcont.cxx
+++ b/sc/source/ui/view/tabcont.cxx
@@ -270,8 +270,8 @@ void ScTabControl::Select()
     {
         // sheet for basic is 1-based
         SfxUInt16Item aItem( SID_CURRENTTAB, nPage + 1 );
-        rDisp.Execute( SID_CURRENTTAB, SfxCallMode::SLOT | SfxCallMode::RECORD,
-                                &aItem, nullptr );
+        rDisp.ExecuteList(SID_CURRENTTAB,
+                SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
     }
 
     SfxBindings& rBind = pViewData->GetBindings();
diff --git a/sc/source/ui/view/tabvwsh5.cxx b/sc/source/ui/view/tabvwsh5.cxx
index 8f1fd24..874e6c0 100644
--- a/sc/source/ui/view/tabvwsh5.cxx
+++ b/sc/source/ui/view/tabvwsh5.cxx
@@ -112,8 +112,8 @@ void ScTabViewShell::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
                     bReadOnly = GetViewData().GetSfxDocShell()->IsReadOnly();
 
                     SfxBoolItem aItem( SID_FM_DESIGN_MODE, !bReadOnly);
-                    GetViewData().GetDispatcher().Execute( SID_FM_DESIGN_MODE, SfxCallMode::ASYNCHRON,
-                                                &aItem, nullptr);
+                    GetViewData().GetDispatcher().ExecuteList(SID_FM_DESIGN_MODE,
+                            SfxCallMode::ASYNCHRON, { &aItem });
 
                     UpdateInputContext();
                 }
diff --git a/sc/source/ui/view/tabvwsh9.cxx b/sc/source/ui/view/tabvwsh9.cxx
index aa08427..170e8be 100644
--- a/sc/source/ui/view/tabvwsh9.cxx
+++ b/sc/source/ui/view/tabvwsh9.cxx
@@ -84,8 +84,8 @@ void ScTabViewShell::ExecGallery( SfxRequest& rReq )
         //  for sounds (linked or not), insert a hyperlink button,
         //  like in Impress and Writer
         const SfxStringItem aMediaURLItem( SID_INSERT_AVMEDIA, pGalleryItem->GetURL() );
-        GetViewFrame()->GetDispatcher()->Execute(SID_INSERT_AVMEDIA,
-                SfxCallMode::SYNCHRON, &aMediaURLItem, nullptr);
+        GetViewFrame()->GetDispatcher()->ExecuteList(SID_INSERT_AVMEDIA,
+                SfxCallMode::SYNCHRON, { &aMediaURLItem });
     }
 }
 
diff --git a/sc/source/ui/view/tabvwshe.cxx b/sc/source/ui/view/tabvwshe.cxx
index 0807a15..844b664 100644
--- a/sc/source/ui/view/tabvwshe.cxx
+++ b/sc/source/ui/view/tabvwshe.cxx
@@ -298,10 +298,10 @@ void ScTabViewShell::ExecSearch( SfxRequest& rReq )
                     // execute request (which stores the SearchItem)
 
                     aSearchItem.SetWhich(SID_SEARCH_ITEM);
-                    GetViewData().GetDispatcher().Execute( FID_SEARCH_NOW,
+                    GetViewData().GetDispatcher().ExecuteList(FID_SEARCH_NOW,
                             rReq.IsAPI() ? SfxCallMode::API|SfxCallMode::SYNCHRON :
                                             SfxCallMode::RECORD,
-                            &aSearchItem, nullptr);
+                            { &aSearchItem });
                     const SfxChildWindow* pChildWindow = SfxViewFrame::Current()->GetChildWindow(
                             SvxSearchDialogWrapper::GetChildWindowId());
                     if (pChildWindow)
@@ -335,10 +335,10 @@ void ScTabViewShell::ExecSearch( SfxRequest& rReq )
 
                 SvxSearchItem aSearchItem = ScGlobal::GetSearchItem();
                 aSearchItem.SetWhich(SID_SEARCH_ITEM);
-                GetViewData().GetDispatcher().Execute( FID_SEARCH_NOW,
+                GetViewData().GetDispatcher().ExecuteList( FID_SEARCH_NOW,
                         rReq.IsAPI() ? SfxCallMode::API|SfxCallMode::SYNCHRON :
                                         SfxCallMode::RECORD,
-                        &aSearchItem, nullptr);
+                        { &aSearchItem });
             }
             break;
 //      case FID_SEARCH_COUNT:
diff --git a/sc/source/ui/view/viewfun2.cxx b/sc/source/ui/view/viewfun2.cxx
index 3ed76c8..fb47310 100644
--- a/sc/source/ui/view/viewfun2.cxx
+++ b/sc/source/ui/view/viewfun2.cxx
@@ -2552,9 +2552,9 @@ void ScViewFunc::MoveTable(
         SfxStringItem aItem( SID_FILE_NAME, aUrl );
         SfxStringItem aTarget( SID_TARGETNAME, OUString("_blank") );
 
-        const SfxPoolItem* pRetItem = GetViewData().GetDispatcher().Execute(
+        const SfxPoolItem* pRetItem = GetViewData().GetDispatcher().ExecuteList(
                     SID_OPENDOC, SfxCallMode::API|SfxCallMode::SYNCHRON,
-                    &aItem, &aTarget, nullptr);
+                    { &aItem, &aTarget });
         if ( pRetItem )
         {
             if ( dynamic_cast<const SfxObjectItem*>( pRetItem) !=  nullptr )
diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx
index 0c9793e..c46cbd5 100644
--- a/sc/source/ui/view/viewfun4.cxx
+++ b/sc/source/ui/view/viewfun4.cxx
@@ -576,9 +576,9 @@ bool ScViewFunc::PasteFile( const Point& rPos, const OUString& rFile, bool bLink
     if( ::avmedia::MediaWindow::isMediaURL( aStrURL, ""/*TODO?*/ ) )
     {
         const SfxStringItem aMediaURLItem( SID_INSERT_AVMEDIA, aStrURL );
-        return ( nullptr != GetViewData().GetDispatcher().Execute(
+        return ( nullptr != GetViewData().GetDispatcher().ExecuteList(
                                 SID_INSERT_AVMEDIA, SfxCallMode::SYNCHRON,
-                                &aMediaURLItem, nullptr) );
+                                { &aMediaURLItem }) );
     }
 
     if (!bLink)     // for bLink only graphics or URL
@@ -605,8 +605,9 @@ bool ScViewFunc::PasteFile( const Point& rPos, const OUString& rFile, bool bLink
 
             // Open Asynchronously, because it can also happen from D&D
             // and that is not so good for the MAC...
-            return ( nullptr != rDispatcher.Execute( SID_OPENDOC,
-                                    SfxCallMode::ASYNCHRON, &aFileNameItem, &aFilterItem, &aTargetItem, nullptr) );
+            return (nullptr != rDispatcher.ExecuteList(SID_OPENDOC,
+                                SfxCallMode::ASYNCHRON,
+                                { &aFileNameItem, &aFilterItem, &aTargetItem}));
         }
     }
 
diff --git a/sc/source/ui/view/viewfun5.cxx b/sc/source/ui/view/viewfun5.cxx
index c08c791..4d98379 100644
--- a/sc/source/ui/view/viewfun5.cxx
+++ b/sc/source/ui/view/viewfun5.cxx
@@ -406,8 +406,8 @@ bool ScViewFunc::PasteDataFormat( SotClipboardFormatId nFormatId,
 
             //  asynchronous, to avoid doing the whole import in drop handler
             SfxDispatcher& rDisp = GetViewData().GetDispatcher();
-            rDisp.Execute(SID_SBA_IMPORT, SfxCallMode::ASYNCHRON,
-                                        &aDataDesc, &aTarget, &aAreaNew, nullptr );
+            rDisp.ExecuteList(SID_SBA_IMPORT, SfxCallMode::ASYNCHRON,
+                    { &aDataDesc, &aTarget, &aAreaNew });
 
             bRet = true;
         }
diff --git a/sc/source/ui/view/viewfun6.cxx b/sc/source/ui/view/viewfun6.cxx
index c4acfc9..51e0e8b 100644
--- a/sc/source/ui/view/viewfun6.cxx
+++ b/sc/source/ui/view/viewfun6.cxx
@@ -111,9 +111,9 @@ static void lcl_jumpToRange(const ScRange& rRange, ScViewData* pView, ScDocument
     OUString aAddrText(rRange.Format(ScRefFlags::RANGE_ABS_3D, pDoc));
     SfxStringItem aPosItem(SID_CURRENTCELL, aAddrText);
     SfxBoolItem aUnmarkItem(FN_PARAM_1, true);        // remove existing selection
-    pView->GetDispatcher().Execute(
+    pView->GetDispatcher().ExecuteList(
         SID_CURRENTCELL, SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-        &aPosItem, &aUnmarkItem, nullptr);
+        { &aPosItem, &aUnmarkItem });
 }
 
 void ScViewFunc::MarkAndJumpToRanges(const ScRangeList& rRanges)
diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx
index 3b3e740..3b28999 100644
--- a/sc/source/ui/view/viewutil.cxx
+++ b/sc/source/ui/view/viewutil.cxx
@@ -382,7 +382,8 @@ void ScViewUtil::SetFullScreen( SfxViewShell& rViewShell, bool bSet )
     if( IsFullScreen( rViewShell ) != bSet )
     {
         SfxBoolItem aItem( SID_WIN_FULLSCREEN, bSet );
-        rViewShell.GetDispatcher()->Execute(SID_WIN_FULLSCREEN, SfxCallMode::RECORD, &aItem, nullptr);
+        rViewShell.GetDispatcher()->ExecuteList(SID_WIN_FULLSCREEN,
+                SfxCallMode::RECORD, { &aItem });
     }
 }
 
diff --git a/sd/qa/unit/tiledrendering/tiledrendering.cxx b/sd/qa/unit/tiledrendering/tiledrendering.cxx
index f1c9901..1d6775f 100644
--- a/sd/qa/unit/tiledrendering/tiledrendering.cxx
+++ b/sd/qa/unit/tiledrendering/tiledrendering.cxx
@@ -261,7 +261,8 @@ void SdTiledRenderingTest::testPostKeyEvent()
     SdrView* pView = pViewShell->GetView();
     pView->MarkObj(pTextObj, pView->GetSdrPageView());
     SfxStringItem aInputString(SID_ATTR_CHAR, "x");
-    pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_ATTR_CHAR, SfxCallMode::SYNCHRON, &aInputString, 0);
+    pViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(SID_ATTR_CHAR,
+            SfxCallMode::SYNCHRON, { &aInputString });
 
     pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYINPUT, 'x', 0);
     pXImpressDocument->postKeyEvent(LOK_KEYEVENT_KEYUP, 'x', 0);
@@ -288,7 +289,8 @@ void SdTiledRenderingTest::testPostMouseEvent()
     SdrView* pView = pViewShell->GetView();
     pView->MarkObj(pTextObj, pView->GetSdrPageView());
     SfxStringItem aInputString(SID_ATTR_CHAR, "x");
-    pViewShell->GetViewFrame()->GetDispatcher()->Execute(SID_ATTR_CHAR, SfxCallMode::SYNCHRON, &aInputString, 0);
+    pViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(SID_ATTR_CHAR,
+            SfxCallMode::SYNCHRON, { &aInputString });
     CPPUNIT_ASSERT(pView->GetTextEditObject());
     EditView& rEditView = pView->GetTextEditOutlinerView()->GetEditView();
     // Did we manage to go after the first character?
diff --git a/sd/source/ui/annotations/annotationmanager.cxx b/sd/source/ui/annotations/annotationmanager.cxx
index 5694690..f4ae8aa 100644
--- a/sd/source/ui/annotations/annotationmanager.cxx
+++ b/sd/source/ui/annotations/annotationmanager.cxx
@@ -1002,19 +1002,22 @@ void AnnotationManagerImpl::ExecuteAnnotationContextMenu( Reference< XAnnotation
     case SID_REPLYTO_POSTIT:
     {
         const SfxUnoAnyItem aItem( SID_REPLYTO_POSTIT, Any( xAnnotation ) );
-        pDispatcher->Execute( SID_REPLYTO_POSTIT, SfxCallMode::ASYNCHRON, &aItem, 0 );
+        pDispatcher->ExecuteList(SID_REPLYTO_POSTIT,
+                SfxCallMode::ASYNCHRON, { &aItem });
         break;
     }
     case SID_DELETE_POSTIT:
     {
         const SfxUnoAnyItem aItem( SID_DELETE_POSTIT, Any( xAnnotation ) );
-        pDispatcher->Execute( SID_DELETE_POSTIT, SfxCallMode::ASYNCHRON, &aItem, 0 );
+        pDispatcher->ExecuteList(SID_DELETE_POSTIT, SfxCallMode::ASYNCHRON,
+                { &aItem });
         break;
     }
     case SID_DELETEALLBYAUTHOR_POSTIT:
     {
         const SfxStringItem aItem( SID_DELETEALLBYAUTHOR_POSTIT, sAuthor );
-        pDispatcher->Execute( SID_DELETEALLBYAUTHOR_POSTIT, SfxCallMode::ASYNCHRON, &aItem, 0 );
+        pDispatcher->ExecuteList( SID_DELETEALLBYAUTHOR_POSTIT,
+                SfxCallMode::ASYNCHRON, { &aItem });
         break;
     }
     case SID_DELETEALL_POSTIT:
diff --git a/sd/source/ui/app/sdmod1.cxx b/sd/source/ui/app/sdmod1.cxx
index a8c065c..c3606ca 100644
--- a/sd/source/ui/app/sdmod1.cxx
+++ b/sd/source/ui/app/sdmod1.cxx
@@ -678,8 +678,9 @@ SfxFrame* SdModule::ExecuteNewDocument( SfxRequest& rReq )
                             {
                                 SfxBoolItem aIsChangedItem(SID_MODIFYPAGE, !bIsDocEmpty);
                                 SfxUInt32Item eAutoLayout( ID_VAL_WHATLAYOUT, (sal_uInt32) AUTOLAYOUT_TITLE );
-                                pViewFrame->GetDispatcher()->Execute(SID_MODIFYPAGE,
-                                   SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aIsChangedItem, &eAutoLayout, 0L);
+                                pViewFrame->GetDispatcher()->ExecuteList(SID_MODIFYPAGE,
+                                   SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                                   { &aIsChangedItem, &eAutoLayout });
                             }
 
                             // clear document info
diff --git a/sd/source/ui/app/tmplctrl.cxx b/sd/source/ui/app/tmplctrl.cxx
index 2bd4b7b..78066ac 100644
--- a/sd/source/ui/app/tmplctrl.cxx
+++ b/sd/source/ui/app/tmplctrl.cxx
@@ -122,7 +122,8 @@ void SdTemplateControl::Command( const CommandEvent& rCEvt )
             {
                 SdPage* pMaster = pDoc->GetMasterSdPage(nCurrId, PK_STANDARD);
                 SfxStringItem aStyle( ATTR_PRESLAYOUT_NAME, pMaster->GetName() );
-                pViewFrame->GetDispatcher()->Execute(SID_PRESENTATION_LAYOUT,SfxCallMode::SLOT, &aStyle, 0L );
+                pViewFrame->GetDispatcher()->ExecuteList(
+                    SID_PRESENTATION_LAYOUT, SfxCallMode::SLOT, { &aStyle });
                 pViewFrame->GetBindings().Invalidate(SID_PRESENTATION_LAYOUT);
                 pViewFrame->GetBindings().Invalidate(SID_STATUS_LAYOUT);
             }
diff --git a/sd/source/ui/dlg/NavigatorChildWindow.cxx b/sd/source/ui/dlg/NavigatorChildWindow.cxx
index 6796e23..2be5175 100644
--- a/sd/source/ui/dlg/NavigatorChildWindow.cxx
+++ b/sd/source/ui/dlg/NavigatorChildWindow.cxx
@@ -36,11 +36,10 @@ void RequestNavigatorUpdate (SfxBindings* pBindings)
         && pBindings->GetDispatcher() != nullptr)
     {
         SfxBoolItem aItem (SID_NAVIGATOR_INIT, true);
-        pBindings->GetDispatcher()->Execute(
+        pBindings->GetDispatcher()->ExecuteList(
             SID_NAVIGATOR_INIT,
             SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-            &aItem,
-            0L);
+            { &aItem });
     }
 }
 
diff --git a/sd/source/ui/dlg/animobjs.cxx b/sd/source/ui/dlg/animobjs.cxx
index 5c129ca..97c43fb 100644
--- a/sd/source/ui/dlg/animobjs.cxx
+++ b/sd/source/ui/dlg/animobjs.cxx
@@ -411,8 +411,8 @@ IMPL_LINK_TYPED( AnimationWindow, ClickGetObjectHdl, Button*, pBtn, void )
     // Code now in AddObj()
     SfxBoolItem aItem( SID_ANIMATOR_ADD, true );
 
-    GetBindings().GetDispatcher()->Execute(
-        SID_ANIMATOR_ADD, SfxCallMode::SLOT | SfxCallMode::RECORD, &aItem, 0L );
+    GetBindings().GetDispatcher()->ExecuteList(
+        SID_ANIMATOR_ADD, SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
 }
 
 IMPL_LINK_TYPED( AnimationWindow, ClickRemoveBitmapHdl, Button*, pBtn, void )
@@ -494,8 +494,8 @@ IMPL_LINK_NOARG_TYPED(AnimationWindow, ClickCreateGroupHdl, Button*, void)
     // Code now in CreatePresObj()
     SfxBoolItem aItem( SID_ANIMATOR_CREATE, true );
 
-    GetBindings().GetDispatcher()->Execute(
-        SID_ANIMATOR_CREATE, SfxCallMode::SLOT | SfxCallMode::RECORD, &aItem, 0L );
+    GetBindings().GetDispatcher()->ExecuteList(SID_ANIMATOR_CREATE,
+            SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
 }
 
 IMPL_LINK_NOARG_TYPED(AnimationWindow, ModifyBitmapHdl, Edit&, void)
@@ -693,8 +693,9 @@ bool AnimationWindow::Close()
     {
         SfxBoolItem aItem( SID_ANIMATION_OBJECTS, false );
 
-        GetBindings().GetDispatcher()->Execute(
-            SID_ANIMATION_OBJECTS, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, 0L );
+        GetBindings().GetDispatcher()->ExecuteList(
+            SID_ANIMATION_OBJECTS, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+            { &aItem });
 
         SfxDockingWindow::Close();
 
diff --git a/sd/source/ui/dlg/navigatr.cxx b/sd/source/ui/dlg/navigatr.cxx
index 8003a4a..92c4215 100644
--- a/sd/source/ui/dlg/navigatr.cxx
+++ b/sd/source/ui/dlg/navigatr.cxx
@@ -280,8 +280,8 @@ IMPL_LINK_NOARG_TYPED(SdNavigatorWin, SelectToolboxHdl, ToolBox *, void)
     if( ePage != PAGE_NONE )
     {
         SfxUInt16Item aItem( SID_NAVIGATOR_PAGE, (sal_uInt16)ePage );
-        mpBindings->GetDispatcher()->Execute(
-        SID_NAVIGATOR_PAGE, SfxCallMode::SLOT | SfxCallMode::RECORD, &aItem, 0L );
+        mpBindings->GetDispatcher()->ExecuteList(SID_NAVIGATOR_PAGE,
+                SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
     }
 }
 
@@ -374,8 +374,9 @@ IMPL_LINK_NOARG_TYPED(SdNavigatorWin, ClickObjectHdl, SvTreeListBox*, bool)
             if( !aStr.isEmpty() )
             {
                 SfxStringItem aItem( SID_NAVIGATOR_OBJECT, aStr );
-                mpBindings->GetDispatcher()->Execute(
-                    SID_NAVIGATOR_OBJECT, SfxCallMode::SLOT | SfxCallMode::RECORD, &aItem, 0L );
+                mpBindings->GetDispatcher()->ExecuteList(
+                    SID_NAVIGATOR_OBJECT,
+                    SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
                 //set sign variable
                 maTlbObjects->MarkCurEntry(aStr);
 
diff --git a/sd/source/ui/docshell/docshell.cxx b/sd/source/ui/docshell/docshell.cxx
index 0295166..dcec27d 100644
--- a/sd/source/ui/docshell/docshell.cxx
+++ b/sd/source/ui/docshell/docshell.cxx
@@ -197,8 +197,11 @@ DrawDocShell::~DrawDocShell()
         pFrame = SfxViewFrame::GetFirst( this );
 
     if( pFrame )
-        pFrame->GetDispatcher()->Execute(
-            SID_NAVIGATOR_INIT, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, 0L);
+    {
+        pFrame->GetDispatcher()->ExecuteList(
+            SID_NAVIGATOR_INIT, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+            { &aItem });
+    }
 }
 
 void DrawDocShell::GetState(SfxItemSet &rSet)
diff --git a/sd/source/ui/func/fudraw.cxx b/sd/source/ui/func/fudraw.cxx
index 76898a6..4488b7b 100644
--- a/sd/source/ui/func/fudraw.cxx
+++ b/sd/source/ui/func/fudraw.cxx
@@ -721,9 +721,10 @@ void FuDraw::DoubleClick(const MouseEvent& rMEvt)
                       !mpDocSh->IsReadOnly())
             {
                 SfxUInt16Item aItem(SID_TEXTEDIT, 2);
-                mpViewShell->GetViewFrame()->GetDispatcher()->
-                                 Execute(SID_TEXTEDIT, SfxCallMode::ASYNCHRON |
-                                         SfxCallMode::RECORD, &aItem, 0L);
+                mpViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(
+                        SID_TEXTEDIT,
+                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                        { &aItem });
             }
             else if (nInv == SdrInventor &&  nSdrObjKind == OBJ_GRUP)
             {
diff --git a/sd/source/ui/func/fuoltext.cxx b/sd/source/ui/func/fuoltext.cxx
index 7975708..5a753bb 100644
--- a/sd/source/ui/func/fuoltext.cxx
+++ b/sd/source/ui/func/fuoltext.cxx
@@ -155,15 +155,17 @@ bool FuOutlineText::MouseButtonUp(const MouseEvent& rMEvt)
                 if ( rMEvt.IsMod1() )
                 {
                     // open in new frame
-                    pFrame->GetDispatcher()->Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                &aStrItem, &aBrowseItem, &aReferer, 0L);
+                    pFrame->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                        { &aStrItem, &aBrowseItem, &aReferer });
                 }
                 else
                 {
                     // open in current frame
                     SfxFrameItem aFrameItem( SID_DOCFRAME, pFrame );
-                    pFrame->GetDispatcher()->Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+                    pFrame->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                        { &aStrItem, &aFrameItem, &aBrowseItem, &aReferer });
                 }
             }
         }
diff --git a/sd/source/ui/func/fupoor.cxx b/sd/source/ui/func/fupoor.cxx
index b39c569..6d6c9fa 100644
--- a/sd/source/ui/func/fupoor.cxx
+++ b/sd/source/ui/func/fupoor.cxx
@@ -820,11 +820,10 @@ bool FuPoor::KeyInput(const KeyEvent& rKEvt)
                         // try to activate textedit mode for the selected object
                         SfxStringItem aInputString(SID_ATTR_CHAR, OUString(rKEvt.GetCharCode()));
 
-                        mpViewShell->GetViewFrame()->GetDispatcher()->Execute(
+                        mpViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(
                             SID_ATTR_CHAR,
                             SfxCallMode::ASYNCHRON,
-                            &aInputString,
-                            0L);
+                            { &aInputString });
 
                         // consumed
                         bReturn = true;
@@ -869,11 +868,10 @@ bool FuPoor::KeyInput(const KeyEvent& rKEvt)
                         mpView->MarkObj(pCandidate, mpView->GetSdrPageView());
                         SfxStringItem aInputString(SID_ATTR_CHAR, OUString(rKEvt.GetCharCode()));
 
-                        mpViewShell->GetViewFrame()->GetDispatcher()->Execute(
+                        mpViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(
                             SID_ATTR_CHAR,
                             SfxCallMode::ASYNCHRON,
-                            &aInputString,
-                            0L);
+                            { &aInputString });
 
                         // consumed
                         bReturn = true;
diff --git a/sd/source/ui/func/fusel.cxx b/sd/source/ui/func/fusel.cxx
index fbd0587..2979c90 100644
--- a/sd/source/ui/func/fusel.cxx
+++ b/sd/source/ui/func/fusel.cxx
@@ -259,8 +259,9 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
 
                     SfxUInt16Item aItem(SID_TEXTEDIT, 1);
                     mpViewShell->GetViewFrame()->GetDispatcher()->
-                    Execute(SID_TEXTEDIT, SfxCallMode::SYNCHRON |
-                            SfxCallMode::RECORD, &aItem, 0L);
+                    ExecuteList(SID_TEXTEDIT,
+                            SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
+                            { &aItem });
                     return bReturn; // CAUTION, due to the synchronous slot the object is deleted now
                 }
             }
@@ -285,15 +286,17 @@ bool FuSelection::MouseButtonDown(const MouseEvent& rMEvt)
                 if (rMEvt.IsMod1())
                 {
                     // Open in new frame
-                    pFrame->GetDispatcher()->Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                &aStrItem, &aBrowseItem, &aReferer, 0L);
+                    pFrame->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                        { &aStrItem, &aBrowseItem, &aReferer });
                 }
                 else
                 {
                     // Open in current frame
                     SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
-                    pFrame->GetDispatcher()->Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+                    pFrame->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                        { &aStrItem, &aFrameItem, &aBrowseItem, &aReferer });
                 }
 
                 bReturn = true;
@@ -1249,9 +1252,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
                 SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
                 SfxBoolItem aBrowseItem( SID_BROWSE, true );
                 mpWindow->ReleaseMouse();
-                pFrame->GetDispatcher()->
-                    Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                            &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+                pFrame->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                        { &aStrItem, &aFrameItem, &aBrowseItem, &aReferer });
 
                 bAnimated = true;
             }
@@ -1273,8 +1276,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
                 {
                      // Jump to Bookmark (Page or Object)
                     SfxStringItem aItem(SID_NAVIGATOR_OBJECT, pInfo->GetBookmark());
-                    mpViewShell->GetViewFrame()->GetDispatcher()->
-                    Execute(SID_NAVIGATOR_OBJECT, SfxCallMode::SLOT | SfxCallMode::RECORD, &aItem, 0L);
+                    mpViewShell->GetViewFrame()->GetDispatcher()->ExecuteList(
+                        SID_NAVIGATOR_OBJECT,
+                        SfxCallMode::SLOT | SfxCallMode::RECORD, { &aItem });
                     bAnimated = true;
                 }
                 break;
@@ -1291,8 +1295,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
                         SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
                         SfxBoolItem aBrowseItem( SID_BROWSE, true );
                         pFrame->GetDispatcher()->
-                        Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+                        ExecuteList(SID_OPENDOC,
+                            SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                            { &aStrItem, &aFrameItem, &aBrowseItem, &aReferer });
                     }
 
                     bAnimated = true;
@@ -1304,8 +1309,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
                     // Jump to the previous page
                     SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_PREVIOUS);
                     mpViewShell->GetViewFrame()->GetDispatcher()->
-                    Execute(SID_NAVIGATOR_PAGE, SfxCallMode::SLOT | SfxCallMode::RECORD,
-                            &aItem, 0L);
+                    ExecuteList(SID_NAVIGATOR_PAGE,
+                            SfxCallMode::SLOT | SfxCallMode::RECORD,
+                            { &aItem });
                     bAnimated = true;
                 }
                 break;
@@ -1315,8 +1321,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
                     // Jump to the next page
                     SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_NEXT);
                     mpViewShell->GetViewFrame()->GetDispatcher()->
-                    Execute(SID_NAVIGATOR_PAGE, SfxCallMode::SLOT | SfxCallMode::RECORD,
-                            &aItem, 0L);
+                    ExecuteList(SID_NAVIGATOR_PAGE,
+                            SfxCallMode::SLOT | SfxCallMode::RECORD,
+                            { &aItem });
                     bAnimated = true;
                 }
                 break;
@@ -1326,8 +1333,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
                     // Jump to the first page
                     SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_FIRST);
                     mpViewShell->GetViewFrame()->GetDispatcher()->
-                    Execute(SID_NAVIGATOR_PAGE, SfxCallMode::SLOT | SfxCallMode::RECORD,
-                            &aItem, 0L);
+                    ExecuteList(SID_NAVIGATOR_PAGE,
+                            SfxCallMode::SLOT | SfxCallMode::RECORD,
+                            { &aItem });
                     bAnimated = true;
                 }
                 break;
@@ -1337,8 +1345,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
                     // Jump to the last page
                     SfxUInt16Item aItem(SID_NAVIGATOR_PAGE, PAGE_LAST);
                     mpViewShell->GetViewFrame()->GetDispatcher()->
-                    Execute(SID_NAVIGATOR_PAGE, SfxCallMode::SLOT | SfxCallMode::RECORD,
-                            &aItem, 0L);
+                    ExecuteList(SID_NAVIGATOR_PAGE,
+                            SfxCallMode::SLOT | SfxCallMode::RECORD,
+                            { &aItem });
                     bAnimated = true;
                 }
                 break;
@@ -1381,11 +1390,9 @@ bool FuSelection::AnimateObj(SdrObject* pObj, const Point& rPos)
 
                         SfxViewFrame* pViewFrm = SfxViewFrame::Current();
                         if (pViewFrm)
-                            pViewFrm->GetDispatcher()->Execute( SID_OPENDOC,
-                                                          SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                                        &aUrl,
-                                                        &aBrowsing,
-                                                        0L );
+                            pViewFrm->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                                  SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                                  { &aUrl, &aBrowsing });
                    }
 
                     bAnimated = true;
diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx
index 9aecfe3..f5d83bd 100644
--- a/sd/source/ui/func/futext.cxx
+++ b/sd/source/ui/func/futext.cxx
@@ -342,15 +342,17 @@ bool FuText::MouseButtonDown(const MouseEvent& rMEvt)
                         if (rMEvt.IsMod1())
                         {
                             // open in new frame
-                            pFrame->GetDispatcher()->Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                        &aStrItem, &aBrowseItem, &aReferer, 0L);
+                            pFrame->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                                { &aStrItem, &aBrowseItem, &aReferer });
                         }
                         else
                         {
                             // open in current frame
                             SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
-                            pFrame->GetDispatcher()->Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                        &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, 0L);
+                            pFrame->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                                { &aStrItem, &aFrameItem, &aBrowseItem, &aReferer });
                         }
                     }
                     else
diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx
index 482d9cd..6f99264 100644
--- a/sd/source/ui/slideshow/slideshowimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowimpl.cxx
@@ -1546,11 +1546,11 @@ void SlideshowImpl::click( const Reference< XShape >& xShape, const css::awt::Mo
 
             SfxViewFrame* pViewFrm = SfxViewFrame::Current();
             if (pViewFrm)
-                pViewFrm->GetDispatcher()->Execute( SID_OPENDOC,
-                                              SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                            &aUrl,
-                                            &aBrowsing,
-                                            0L );
+            {
+                pViewFrm->GetDispatcher()->ExecuteList( SID_OPENDOC,
+                    SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                    { &aUrl, &aBrowsing });
+            }
         }
     }
     break;
diff --git a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
index a839bdca..25aebfa 100644
--- a/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
+++ b/sd/source/ui/slidesorter/controller/SlsSlotManager.cxx
@@ -1019,8 +1019,10 @@ bool SlotManager::RenameSlideFromDrawViewShell( sal_uInt16 nPageId, const OUStri
         // inform navigator about change
         SfxBoolItem aItem( SID_NAVIGATOR_INIT, true );
         if (mrSlideSorter.GetViewShell() != nullptr)
-            mrSlideSorter.GetViewShell()->GetDispatcher()->Execute(
-                SID_NAVIGATOR_INIT, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, 0L );
+            mrSlideSorter.GetViewShell()->GetDispatcher()->ExecuteList(
+                SID_NAVIGATOR_INIT,
+                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                { &aItem });
     }
 
     return bSuccess;
diff --git a/sd/source/ui/table/TableDesignPane.cxx b/sd/source/ui/table/TableDesignPane.cxx
index 2720f63..064fb2c 100644
--- a/sd/source/ui/table/TableDesignPane.cxx
+++ b/sd/source/ui/table/TableDesignPane.cxx
@@ -208,7 +208,8 @@ void TableDesignWidget::ApplyStyle()
         {
             SfxDispatcher* pDispatcher = getDispatcher( mrBase );
             SfxStringItem aArg( SID_TABLE_STYLE, sStyleName );
-            pDispatcher->Execute(SID_INSERT_TABLE, SfxCallMode::ASYNCHRON, &aArg, 0 );
+            pDispatcher->ExecuteList(SID_INSERT_TABLE, SfxCallMode::ASYNCHRON,
+                    { &aArg });
         }
     }
     catch( Exception& )
diff --git a/sd/source/ui/unoidl/SdUnoDrawView.cxx b/sd/source/ui/unoidl/SdUnoDrawView.cxx
index e7cfe2b..5a0207637 100644
--- a/sd/source/ui/unoidl/SdUnoDrawView.cxx
+++ b/sd/source/ui/unoidl/SdUnoDrawView.cxx
@@ -478,7 +478,8 @@ void SdUnoDrawView::SetZoom( sal_Int16 nZoom )
         SfxDispatcher* pDispatcher = pViewFrame->GetDispatcher();
         if( pDispatcher )
         {
-            pDispatcher->Execute(SID_ATTR_ZOOM,SfxCallMode::SYNCHRON,&aZoomItem, 0L);
+            pDispatcher->ExecuteList(SID_ATTR_ZOOM, SfxCallMode::SYNCHRON,
+                    { &aZoomItem });
         }
     }
 }
@@ -528,7 +529,8 @@ void SdUnoDrawView::SetZoomType ( sal_Int16 nType )
                     return;
             }
             SvxZoomItem aZoomItem( eZoomType );
-            pDispatcher->Execute(SID_ATTR_ZOOM,SfxCallMode::SYNCHRON,&aZoomItem, 0L);
+            pDispatcher->ExecuteList(SID_ATTR_ZOOM, SfxCallMode::SYNCHRON,
+                    { &aZoomItem });
         }
     }
 }
diff --git a/sd/source/ui/view/Outliner.cxx b/sd/source/ui/view/Outliner.cxx
index 0ad60d1..b5f667e 100644
--- a/sd/source/ui/view/Outliner.cxx
+++ b/sd/source/ui/view/Outliner.cxx
@@ -1399,9 +1399,8 @@ void Outliner::EnterEditMode (bool bGrabFocus)
         // Make FuText the current function.
         SfxUInt16Item aItem (SID_TEXTEDIT, 1);
         std::shared_ptr<ViewShell> pViewShell (mpWeakViewShell.lock());
-        pViewShell->GetDispatcher()->
-            Execute(SID_TEXTEDIT, SfxCallMode::SYNCHRON |
-                SfxCallMode::RECORD, &aItem, 0L);
+        pViewShell->GetDispatcher()->ExecuteList(SID_TEXTEDIT,
+                SfxCallMode::SYNCHRON | SfxCallMode::RECORD, { &aItem });
 
         // To be consistent with the usual behaviour in the Office the text
         // object that is put into edit mode would have also to be selected.
diff --git a/sd/source/ui/view/drviews1.cxx b/sd/source/ui/view/drviews1.cxx
index de29408..710f073 100644
--- a/sd/source/ui/view/drviews1.cxx
+++ b/sd/source/ui/view/drviews1.cxx
@@ -162,8 +162,8 @@ void DrawViewShell::SelectionHasChanged()
 
     //Update3DWindow(); // 3D-Controller
     SfxBoolItem aItem( SID_3D_STATE, true );
-    GetViewFrame()->GetDispatcher()->Execute(
-        SID_3D_STATE, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, nullptr);
+    GetViewFrame()->GetDispatcher()->ExecuteList(
+        SID_3D_STATE, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { &aItem });
 
     SdrOle2Obj* pOleObj = nullptr;
 
diff --git a/sd/source/ui/view/drviews2.cxx b/sd/source/ui/view/drviews2.cxx
index 68aa34b..b2b123d 100644
--- a/sd/source/ui/view/drviews2.cxx
+++ b/sd/source/ui/view/drviews2.cxx
@@ -1049,8 +1049,8 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
         {
             // The value (sal_uInt16)0xFFFF means set bullet on/off.
             SfxUInt16Item aItem(FN_SVX_SET_BULLET, (sal_uInt16)0xFFFF);
-            GetViewFrame()->GetDispatcher()->Execute(FN_SVX_SET_BULLET,
-                    SfxCallMode::RECORD, &aItem, nullptr);
+            GetViewFrame()->GetDispatcher()->ExecuteList(FN_SVX_SET_BULLET,
+                    SfxCallMode::RECORD, { &aItem });
         }
         break;
 
@@ -1058,8 +1058,8 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
         {
             // The value (sal_uInt16)0xFFFF means set bullet on/off.
             SfxUInt16Item aItem(FN_SVX_SET_NUMBER, (sal_uInt16)0xFFFF);
-            GetViewFrame()->GetDispatcher()->Execute(FN_SVX_SET_NUMBER,
-                    SfxCallMode::RECORD, &aItem, nullptr);
+            GetViewFrame()->GetDispatcher()->ExecuteList(FN_SVX_SET_NUMBER,
+                    SfxCallMode::RECORD, { &aItem });
         }
         break;
 
@@ -1737,12 +1737,12 @@ void DrawViewShell::FuTemporary(SfxRequest& rReq)
 
                         SfxViewFrame* pViewFrm = SfxViewFrame::Current();
                         if (pViewFrm)
-                            pViewFrm->GetDispatcher()->Execute( SID_OPENDOC,
-                                                        SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                                                        &aUrl, &aTarget,
-                                                        &aFrm, &aReferer,
-                                                        &aNewView, &aBrowsing,
-                                                        nullptr);
+                        {
+                            pViewFrm->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                                { &aUrl, &aTarget, &aFrm, &aReferer,
+                                  &aNewView, &aBrowsing });
+                        }
                     }
                 }
             }
diff --git a/sd/source/ui/view/drviews5.cxx b/sd/source/ui/view/drviews5.cxx
index 477b5b7..6c6396d 100644
--- a/sd/source/ui/view/drviews5.cxx
+++ b/sd/source/ui/view/drviews5.cxx
@@ -73,8 +73,8 @@ void DrawViewShell::ModelHasChanged()
     GetViewFrame()->GetBindings().Invalidate( SID_NAVIGATOR_STATE, true );
 
     SfxBoolItem aItem( SID_3D_STATE, true );
-    GetViewFrame()->GetDispatcher()->Execute(
-        SID_3D_STATE, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, nullptr);
+    GetViewFrame()->GetDispatcher()->ExecuteList(
+        SID_3D_STATE, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { &aItem });
 
     // now initialize the TextEditOutliner which was newly created by the draw engine
     ::Outliner* pOutliner     = mpDrawView->GetTextEditOutliner();
@@ -300,9 +300,9 @@ void DrawViewShell::ReadFrameViewData(FrameView* pView)
     if ( mpDrawView->IsDesignMode() != pView->IsDesignMode() )
     {
         SfxBoolItem aDesignModeItem( SID_FM_DESIGN_MODE, pView->IsDesignMode() );
-        GetViewFrame()->GetDispatcher()->Execute(SID_FM_DESIGN_MODE,
+        GetViewFrame()->GetDispatcher()->ExecuteList(SID_FM_DESIGN_MODE,
                 SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                &aDesignModeItem, nullptr);
+                { &aDesignModeItem });
     }
 
     // has to be called in the end, because it executes a WriteFrameViewData()
diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx
index b4ece57..0a2958c 100644
--- a/sd/source/ui/view/drviews9.cxx
+++ b/sd/source/ui/view/drviews9.cxx
@@ -177,8 +177,8 @@ void DrawViewShell::ExecGallery(SfxRequest& rReq)
     else if( nType == css::gallery::GalleryItemType::MEDIA )
     {
         const SfxStringItem aMediaURLItem( SID_INSERT_AVMEDIA, pGalleryItem->GetURL() );
-        GetViewFrame()->GetDispatcher()->Execute(SID_INSERT_AVMEDIA,
-                SfxCallMode::SYNCHRON, &aMediaURLItem, nullptr);
+        GetViewFrame()->GetDispatcher()->ExecuteList(SID_INSERT_AVMEDIA,
+                SfxCallMode::SYNCHRON, { &aMediaURLItem });
     }
 
     GetDocSh()->SetWaitCursor( false );
diff --git a/sd/source/ui/view/drviewsa.cxx b/sd/source/ui/view/drviewsa.cxx
index 35cfb9e..52cd788 100644
--- a/sd/source/ui/view/drviewsa.cxx
+++ b/sd/source/ui/view/drviewsa.cxx
@@ -749,8 +749,8 @@ void DrawViewShell::Notify (SfxBroadcaster&, const SfxHint& rHint)
             mbReadOnly = GetDocSh()->IsReadOnly();
 
             SfxBoolItem aItem( SID_FM_DESIGN_MODE, !mbReadOnly );
-            GetViewFrame()->GetDispatcher()->Execute( SID_FM_DESIGN_MODE,
-                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, nullptr);
+            GetViewFrame()->GetDispatcher()->ExecuteList(SID_FM_DESIGN_MODE,
+                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { &aItem });
         }
     }
 
diff --git a/sd/source/ui/view/drviewsb.cxx b/sd/source/ui/view/drviewsb.cxx
index eb6842c..3369ee4 100644
--- a/sd/source/ui/view/drviewsb.cxx
+++ b/sd/source/ui/view/drviewsb.cxx
@@ -121,8 +121,8 @@ bool DrawViewShell::RenameSlide( sal_uInt16 nPageId, const OUString & rName  )
 
         // inform navigator about change
         SfxBoolItem aItem( SID_NAVIGATOR_INIT, true );
-        GetViewFrame()->GetDispatcher()->Execute(SID_NAVIGATOR_INIT,
-                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, nullptr);
+        GetViewFrame()->GetDispatcher()->ExecuteList(SID_NAVIGATOR_INIT,
+                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { &aItem });
 
         // Tell the slide sorter about the name change (necessary for
         // accessibility.)
diff --git a/sd/source/ui/view/drviewsd.cxx b/sd/source/ui/view/drviewsd.cxx
index 6cf3b4e..2d0d157 100644
--- a/sd/source/ui/view/drviewsd.cxx
+++ b/sd/source/ui/view/drviewsd.cxx
@@ -135,8 +135,8 @@ void DrawViewShell::ExecNavigatorWin( SfxRequest& rReq )
                 SfxFrameItem aFrameItem(SID_DOCFRAME, pFrame);
                 SfxBoolItem aBrowseItem(SID_BROWSE, true);
                 pFrame->GetDispatcher()->
-                Execute(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                    &aStrItem, &aFrameItem, &aBrowseItem, &aReferer, nullptr);
+                ExecuteList(SID_OPENDOC, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
+                    { &aStrItem, &aFrameItem, &aBrowseItem, &aReferer });
             }
 
             SfxBindings& rBindings = GetViewFrame()->GetBindings();
diff --git a/sd/source/ui/view/drviewse.cxx b/sd/source/ui/view/drviewse.cxx
index d22f581..fe585ee 100644
--- a/sd/source/ui/view/drviewse.cxx
+++ b/sd/source/ui/view/drviewse.cxx
@@ -618,8 +618,8 @@ void DrawViewShell::FuPermanent(SfxRequest& rReq)
                         // Make FuText the current function.
                         SfxUInt16Item aItem (SID_TEXTEDIT, 1);
                         GetViewFrame()->GetDispatcher()->
-                            Execute(SID_TEXTEDIT, SfxCallMode::SYNCHRON |
-                                SfxCallMode::RECORD, &aItem, nullptr);
+                            ExecuteList(SID_TEXTEDIT, SfxCallMode::SYNCHRON |
+                                SfxCallMode::RECORD, { &aItem });
                         // Put text object into edit mode.
                         GetView()->SdrBeginTextEdit(static_cast<SdrTextObj*>(pObj), pPageView);
                         break;
diff --git a/sd/source/ui/view/drviewsi.cxx b/sd/source/ui/view/drviewsi.cxx
index 7964e5d..a2fe62b 100644
--- a/sd/source/ui/view/drviewsi.cxx
+++ b/sd/source/ui/view/drviewsi.cxx
@@ -139,9 +139,9 @@ void DrawViewShell::AssignFrom3DWindow()
                     // transform text into 3D
                     sal_uInt16 nSId = SID_CONVERT_TO_3D;
                     SfxBoolItem aItem( nSId, true );
-                    GetViewFrame()->GetDispatcher()->Execute(
+                    GetViewFrame()->GetDispatcher()->ExecuteList(
                         nSId, SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
-                        &aItem, nullptr);
+                        { &aItem });
 
                     // Determine if a FILL attribute is set.
                     // If not, hard set a fill attribute
diff --git a/sd/source/ui/view/presvish.cxx b/sd/source/ui/view/presvish.cxx
index d673e06..bc696ee 100644
--- a/sd/source/ui/view/presvish.cxx
+++ b/sd/source/ui/view/presvish.cxx
@@ -125,7 +125,8 @@ void PresentationViewShell::Activate( bool bIsMDIActivate )
     {
         SfxBoolItem aItem( SID_NAVIGATOR_INIT, true );
 
-        GetViewFrame()->GetDispatcher()->Execute( SID_NAVIGATOR_INIT, SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, &aItem, 0L );
+        GetViewFrame()->GetDispatcher()->ExecuteList(SID_NAVIGATOR_INIT,
+                SfxCallMode::ASYNCHRON | SfxCallMode::RECORD, { &aItem });
 
         rtl::Reference< SlideShow > xSlideShow( SlideShow::GetSlideShow( GetViewShellBase() ) );
         if( xSlideShow.is() )
diff --git a/sd/source/ui/view/viewshel.cxx b/sd/source/ui/view/viewshel.cxx
index e7543a0..30b9f30 100644
--- a/sd/source/ui/view/viewshel.cxx
+++ b/sd/source/ui/view/viewshel.cxx
@@ -316,11 +316,10 @@ void ViewShell::Activate(bool bIsMDIActivate)
         // thus, the Navigator will also get a current status
         SfxBoolItem aItem( SID_NAVIGATOR_INIT, true );
         if (GetDispatcher() != nullptr)
-            GetDispatcher()->Execute(
+            GetDispatcher()->ExecuteList(
                 SID_NAVIGATOR_INIT,
                 SfxCallMode::ASYNCHRON | SfxCallMode::RECORD,
-                &aItem,
-                0L);
+                { &aItem });
 
         SfxViewShell* pViewShell = GetViewShell();
         OSL_ASSERT (pViewShell!=nullptr);
diff --git a/sfx2/source/appl/appdde.cxx b/sfx2/source/appl/appdde.cxx
index ad9e9d4..4685749 100644
--- a/sfx2/source/appl/appdde.cxx
+++ b/sfx2/source/appl/appdde.cxx
@@ -149,10 +149,9 @@ bool ImplDdeService::MakeTopic( const OUString& rNm )
 
             SfxBoolItem aSilent(SID_SILENT, sal_True);
             SfxDispatcher* pDispatcher = SfxGetpApp()->GetDispatcher_Impl();
-            const SfxPoolItem* pRet = pDispatcher->Execute( SID_OPENDOC,
+            const SfxPoolItem* pRet = pDispatcher->ExecuteList(SID_OPENDOC,
                     SfxCallMode::SYNCHRON,
-                    &aName, &aNewView,
-                    &aSilent, 0L );
+                    { &aName, &aNewView, &aSilent });
 
             if( pRet && dynamic_cast< const SfxViewFrameItem *>( pRet ) !=  nullptr &&
                 ((SfxViewFrameItem*)pRet)->GetFrame() &&
diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx
index 07a1dee..9500ceb 100644
--- a/sfx2/source/appl/appopen.cxx
+++ b/sfx2/source/appl/appopen.cxx
@@ -314,7 +314,9 @@ sal_uIntPtr SfxApplication::LoadTemplate( SfxObjectShellLock& xDoc, const OUStri
         SfxStringItem aReferer( SID_REFERER, OUString("private:user") );
         SfxStringItem aFlags( SID_OPTIONS, OUString("T") );
         SfxBoolItem aHidden( SID_HIDDEN, true );
-        const SfxPoolItem *pRet = GetDispatcher_Impl()->Execute( SID_OPENDOC, SfxCallMode::SYNCHRON, &aName, &aHidden, &aReferer, &aFlags, 0L );
+        const SfxPoolItem *pRet = GetDispatcher_Impl()->ExecuteList(
+            SID_OPENDOC, SfxCallMode::SYNCHRON,
+            { &aName, &aHidden, &aReferer, &aFlags } );
         const SfxObjectItem *pObj = dynamic_cast<const SfxObjectItem*>( pRet  );
         if ( pObj )
             xDoc = dynamic_cast<SfxObjectShell*>( pObj->GetShell()  );
@@ -520,12 +522,14 @@ void SfxApplication::NewDocExec_Impl( SfxRequest& rReq )
             SfxStringItem aName( SID_FILE_NAME, aObj.GetMainURL( INetURLObject::NO_DECODE ) );
             SfxStringItem aTemplName( SID_TEMPLATE_NAME, aTemplateName );
             SfxStringItem aTemplRegionName( SID_TEMPLATE_REGIONNAME, aTemplateRegion );
-            pRet = GetDispatcher_Impl()->Execute( SID_OPENDOC, eMode, &aName, &aTarget, &aReferer, &aTemplName, &aTemplRegionName, 0L );
+            pRet = GetDispatcher_Impl()->ExecuteList(SID_OPENDOC, eMode,
+                {&aName, &aTarget, &aReferer, &aTemplName, &aTemplRegionName});
         }
         else
         {
             SfxStringItem aName( SID_FILE_NAME, "private:factory" );
-            pRet = GetDispatcher_Impl()->Execute( SID_OPENDOC, eMode, &aName, &aTarget, &aReferer, 0L );
+            pRet = GetDispatcher_Impl()->ExecuteList(SID_OPENDOC, eMode,
+                    { &aName, &aTarget, &aReferer } );
         }
 
         if ( pRet )
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index f467783..822a851 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -185,7 +185,8 @@ namespace
             SfxStringItem aURL(SID_FILE_NAME, OUString(".component:Bibliography/View1"));
             SfxStringItem aRef(SID_REFERER, OUString("private:user"));
             SfxStringItem aTarget(SID_TARGETNAME, OUString("_blank"));
-            SfxViewFrame::Current()->GetDispatcher()->Execute( SID_OPENDOC, SfxCallMode::ASYNCHRON, &aURL, &aRef, &aTarget, 0L);
+            SfxViewFrame::Current()->GetDispatcher()->ExecuteList(SID_OPENDOC,
+                SfxCallMode::ASYNCHRON, { &aURL, &aRef, &aTarget });
         }
         catch (const Exception & e)
         {
@@ -299,7 +300,8 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
 
                 SfxStringItem aNameItem( SID_FILE_NAME, OUString("vnd.sun.star.cmd:logout") );
                 SfxStringItem aReferer( SID_REFERER, "private/user" );
-                pAppData_Impl->pAppDispat->Execute( SID_OPENDOC, SfxCallMode::SLOT, &aNameItem, &aReferer, 0L );
+                pAppData_Impl->pAppDispat->ExecuteList(SID_OPENDOC,
+                        SfxCallMode::SLOT, { &aNameItem, &aReferer });
                 return;
             }
 
@@ -625,7 +627,7 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
                     break;
             }
 
-            pCurrentShell->GetDispatcher()->Execute(SID_ATTR_ZOOM, SfxCallMode::ASYNCHRON, &aZoom, 0L);
+            pCurrentShell->GetDispatcher()->ExecuteList(SID_ATTR_ZOOM, SfxCallMode::ASYNCHRON, { &aZoom });
 
             break;
         }
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index f0d4327..dc710dd 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -1017,8 +1017,7 @@ const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode eCall,
 
     @param nSlot the Id of the executing function
     @param eCall SfxCallMode::SYNCRHON, ..._ASYNCHRON or ..._SLOT
-    @param pArg1 First parameter
-    @param ... Zero terminated list of parameters
+    @param args  list of SfxPoolItem arguments
 
     @return                 Pointer to the SfxPoolItem valid to the next run
                             though the Message-Loop, which contains the return
@@ -1030,13 +1029,13 @@ const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode eCall,
     [Example]
 
     pDispatcher->Execute( SID_OPENDOCUMENT, SfxCallMode::SYNCHRON,
-        &SfxStringItem( SID_FILE_NAME, "\\tmp\\temp.sdd" ),
-        &SfxStringItem( SID_FILTER_NAME, "StarDraw Presentation" ),
-        &SfxBoolItem( SID_DOC_READONLY, sal_False ),
-        0L );
+        {   &SfxStringItem( SID_FILE_NAME, "\\tmp\\temp.sdd" ),
+            &SfxStringItem( SID_FILTER_NAME, "StarDraw Presentation" ),
+            &SfxBoolItem( SID_DOC_READONLY, sal_False ),
+        });
 */
-const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode eCall,
-        const SfxPoolItem*  pArg1, ...)
+const SfxPoolItem* SfxDispatcher::ExecuteList(sal_uInt16 nSlot, SfxCallMode eCall,
+        std::initializer_list<SfxPoolItem const*> args)
 {
     if ( IsLocked(nSlot) )
         return nullptr;
@@ -1048,13 +1047,11 @@ const SfxPoolItem* SfxDispatcher::Execute(sal_uInt16 nSlot, SfxCallMode eCall,
     {
        SfxAllItemSet aSet( pShell->GetPool() );
 
-       va_list pVarArgs;
-       va_start( pVarArgs, pArg1 );
-       for ( const SfxPoolItem *pArg = pArg1;
-             pArg;
-             pArg = va_arg( pVarArgs, const SfxPoolItem* ) )
+       for (const SfxPoolItem *pArg : args)
+       {
+           assert(pArg);
            MappedPut_Impl( aSet, *pArg );
-       va_end(pVarArgs);
+       }
 
        SfxRequest aReq( nSlot, eCall, aSet );
        _Execute( *pShell, *pSlot, aReq, eCall );
diff --git a/sfx2/source/dialog/basedlgs.cxx b/sfx2/source/dialog/basedlgs.cxx
index 851eb54..84dff54 100644
--- a/sfx2/source/dialog/basedlgs.cxx
+++ b/sfx2/source/dialog/basedlgs.cxx
@@ -385,9 +385,9 @@ bool SfxModelessDialog::Close()
 {
     // Execute with Parameters, since Toggle is ignored by some ChildWindows.
     SfxBoolItem aValue( pImp->pMgr->GetType(), false);
-    pBindings->GetDispatcher_Impl()->Execute(
+    pBindings->GetDispatcher_Impl()->ExecuteList(
         pImp->pMgr->GetType(),
-        SfxCallMode::RECORD|SfxCallMode::SYNCHRON, &aValue, 0L );
+        SfxCallMode::RECORD|SfxCallMode::SYNCHRON, { &aValue } );
     return true;
 }
 
@@ -498,9 +498,9 @@ bool SfxFloatingWindow::Close()
 {
     // Execute with Parameters, since Toggle is ignored by some ChildWindows.
     SfxBoolItem aValue( pImp->pMgr->GetType(), false);
-    pBindings->GetDispatcher_Impl()->Execute(
+    pBindings->GetDispatcher_Impl()->ExecuteList(
             pImp->pMgr->GetType(),
-            SfxCallMode::RECORD|SfxCallMode::SYNCHRON, &aValue, 0L );
+            SfxCallMode::RECORD|SfxCallMode::SYNCHRON, { &aValue });
     return true;
 }
 
diff --git a/sfx2/source/dialog/dockwin.cxx b/sfx2/source/dialog/dockwin.cxx
index 28011c9..caf0c64 100644
--- a/sfx2/source/dialog/dockwin.cxx
+++ b/sfx2/source/dialog/dockwin.cxx
@@ -1661,8 +1661,9 @@ bool SfxDockingWindow::Close()
         return true;
 
     SfxBoolItem aValue( pMgr->GetType(), false);
-    pBindings->GetDispatcher_Impl()->Execute(
-        pMgr->GetType(), SfxCallMode::RECORD | SfxCallMode::ASYNCHRON, &aValue, 0L );
+    pBindings->GetDispatcher_Impl()->ExecuteList(
+        pMgr->GetType(), SfxCallMode::RECORD | SfxCallMode::ASYNCHRON,
+        { &aValue });
     return true;
 }
 
diff --git a/sfx2/source/dialog/recfloat.cxx b/sfx2/source/dialog/recfloat.cxx
index 0cb4a83..780fb40 100644
--- a/sfx2/source/dialog/recfloat.cxx
+++ b/sfx2/source/dialog/recfloat.cxx
@@ -141,7 +141,8 @@ SfxRecordingFloatWrapper_Impl::~SfxRecordingFloatWrapper_Impl()
     SfxBoolItem aItem( FN_PARAM_1, true );
     css::uno::Reference< css::frame::XDispatchRecorder > xRecorder = pBindings->GetRecorder();
     if ( xRecorder.is() )
-        pBindings->GetDispatcher()->Execute( SID_STOP_RECORDING, SfxCallMode::SYNCHRON, &aItem, 0L );
+        pBindings->GetDispatcher()->ExecuteList(SID_STOP_RECORDING,
+                SfxCallMode::SYNCHRON, { &aItem });
 }
 
 bool SfxRecordingFloatWrapper_Impl::QueryClose()
@@ -193,7 +194,8 @@ SfxRecordingFloat_Impl::SfxRecordingFloat_Impl(
 
     // start recording
     SfxBoolItem aItem( SID_RECORDMACRO, true );
-    GetBindings().GetDispatcher()->Execute( SID_RECORDMACRO, SfxCallMode::SYNCHRON, &aItem, 0L );
+    GetBindings().GetDispatcher()->ExecuteList(SID_RECORDMACRO,
+            SfxCallMode::SYNCHRON, { &aItem });
 }
 
 SfxRecordingFloat_Impl::~SfxRecordingFloat_Impl()
diff --git a/sfx2/source/dialog/templdlg.cxx b/sfx2/source/dialog/templdlg.cxx
index e0f10e9..86af63d 100644
--- a/sfx2/source/dialog/templdlg.cxx
+++ b/sfx2/source/dialog/templdlg.cxx
@@ -1701,7 +1701,7 @@ void SfxCommonTemplateDialog_Impl::FamilySelect(sal_uInt16 nEntry)
         nActFamily = nEntry;
         SfxDispatcher* pDispat = pBindings->GetDispatcher_Impl();
         SfxUInt16Item aItem( SID_STYLE_FAMILY, nEntry );

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list