[Libreoffice-commits] core.git: 5 commits - basctl/source cui/source include/sfx2 include/svl sc/source sd/source sfx2/source svx/source sw/source

Jan Holesovsky kendy at collabora.com
Fri Oct 16 03:16:19 PDT 2015


 basctl/source/basicide/baside2.cxx                     |    2 
 basctl/source/basicide/basides1.cxx                    |   19 +--
 cui/source/dialogs/cuicharmap.cxx                      |   10 +-
 cui/source/tabpages/autocdlg.cxx                       |    6 -
 cui/source/tabpages/backgrnd.cxx                       |    2 
 cui/source/tabpages/border.cxx                         |    4 
 cui/source/tabpages/chardlg.cxx                        |   14 +-
 cui/source/tabpages/connect.cxx                        |    2 
 cui/source/tabpages/measure.cxx                        |    2 
 cui/source/tabpages/numfmt.cxx                         |    4 
 cui/source/tabpages/numpages.cxx                       |   16 +--
 cui/source/tabpages/page.cxx                           |   10 +-
 cui/source/tabpages/paragrph.cxx                       |   10 +-
 cui/source/tabpages/tabstpge.cxx                       |    2 
 cui/source/tabpages/textattr.cxx                       |    2 
 cui/source/tabpages/tparea.cxx                         |   26 ++---
 cui/source/tabpages/tpline.cxx                         |   18 +--
 cui/source/tabpages/tpshadow.cxx                       |    8 -
 include/sfx2/request.hxx                               |   27 ++---
 include/svl/itemset.hxx                                |   17 +++
 sc/source/filter/excel/xeroot.cxx                      |    4 
 sc/source/filter/ftools/fapihelper.cxx                 |    4 
 sc/source/ui/app/scmod.cxx                             |    2 
 sc/source/ui/docshell/docsh.cxx                        |    8 -
 sc/source/ui/docshell/docsh4.cxx                       |    4 
 sc/source/ui/drawfunc/drawsh5.cxx                      |    2 
 sc/source/ui/drawfunc/drtxtob.cxx                      |    2 
 sc/source/ui/drawfunc/drtxtob2.cxx                     |    2 
 sc/source/ui/drawfunc/fuconuno.cxx                     |    4 
 sc/source/ui/drawfunc/fuins2.cxx                       |    2 
 sc/source/ui/view/cellsh1.cxx                          |   24 ++---
 sc/source/ui/view/editsh.cxx                           |    2 
 sc/source/ui/view/formatsh.cxx                         |    4 
 sc/source/ui/view/tabvwsh2.cxx                         |    2 
 sc/source/ui/view/tabvwsh3.cxx                         |    2 
 sc/source/ui/view/tabvwsh9.cxx                         |    2 
 sc/source/ui/view/tabvwshb.cxx                         |    2 
 sc/source/ui/view/viewutil.cxx                         |    4 
 sd/source/ui/app/sdmod1.cxx                            |    6 -
 sd/source/ui/dlg/dlgass.cxx                            |    2 
 sd/source/ui/dlg/prntopts.cxx                          |    2 
 sd/source/ui/dlg/tpoption.cxx                          |    2 
 sd/source/ui/docshell/docshel3.cxx                     |    2 
 sd/source/ui/framework/tools/FrameworkHelper.cxx       |    6 -
 sd/source/ui/func/fubullet.cxx                         |    4 
 sd/source/ui/func/fuconarc.cxx                         |   12 +-
 sd/source/ui/func/fuconrec.cxx                         |   16 +--
 sd/source/ui/func/fuconuno.cxx                         |    4 
 sd/source/ui/func/fuinsert.cxx                         |    2 
 sd/source/ui/func/fuinsfil.cxx                         |    4 
 sd/source/ui/func/fuolbull.cxx                         |    4 
 sd/source/ui/func/fuscale.cxx                          |    2 
 sd/source/ui/func/fusnapln.cxx                         |    2 
 sd/source/ui/func/futempl.cxx                          |    4 
 sd/source/ui/slideshow/slideshowimpl.cxx               |    2 
 sd/source/ui/slidesorter/controller/SlsSlotManager.cxx |    3 
 sd/source/ui/table/tablefunction.cxx                   |    6 -
 sd/source/ui/view/ToolBarManager.cxx                   |    2 
 sd/source/ui/view/ViewShellImplementation.cxx          |   12 +-
 sd/source/ui/view/drtxtob1.cxx                         |    2 
 sd/source/ui/view/drviews2.cxx                         |   65 ++++++-------
 sd/source/ui/view/drviews3.cxx                         |   18 +--
 sd/source/ui/view/drviews9.cxx                         |   78 ++++++++--------
 sd/source/ui/view/drviewse.cxx                         |    8 -
 sd/source/ui/view/outlnvs2.cxx                         |    2 
 sd/source/ui/view/viewshe3.cxx                         |   10 +-
 sfx2/source/appl/appbas.cxx                            |    2 
 sfx2/source/appl/appopen.cxx                           |   62 ++++++-------
 sfx2/source/appl/appserv.cxx                           |   22 +---
 sfx2/source/appl/appuno.cxx                            |    4 
 sfx2/source/appl/linkmgr2.cxx                          |    2 
 sfx2/source/appl/sfxpicklist.cxx                       |    4 
 sfx2/source/appl/workwin.cxx                           |    2 
 sfx2/source/bastyp/fltfnc.cxx                          |    6 -
 sfx2/source/bastyp/progress.cxx                        |    4 
 sfx2/source/control/dispatch.cxx                       |    2 
 sfx2/source/control/request.cxx                        |   81 -----------------
 sfx2/source/dialog/dinfdlg.cxx                         |    6 -
 sfx2/source/dialog/filedlghelper.cxx                   |    6 -
 sfx2/source/dialog/versdlg.cxx                         |    4 
 sfx2/source/doc/docfile.cxx                            |   74 +++++++--------
 sfx2/source/doc/guisaveas.cxx                          |    2 
 sfx2/source/doc/objcont.cxx                            |    2 
 sfx2/source/doc/objmisc.cxx                            |   28 ++---
 sfx2/source/doc/objserv.cxx                            |   31 +++---
 sfx2/source/doc/objstor.cxx                            |   69 +++++---------
 sfx2/source/doc/objxtor.cxx                            |    4 
 sfx2/source/doc/sfxbasemodel.cxx                       |   34 +++----
 sfx2/source/view/frame.cxx                             |    8 -
 sfx2/source/view/viewfrm.cxx                           |   65 ++++++-------
 sfx2/source/view/viewfrm2.cxx                          |    6 -
 sfx2/source/view/viewprn.cxx                           |    6 -
 sfx2/source/view/viewsh.cxx                            |   12 +-
 svx/source/dialog/hdft.cxx                             |    2 
 svx/source/form/fmshell.cxx                            |   10 +-
 svx/source/sidebar/nbdtmg.cxx                          |    2 
 sw/source/filter/html/htmlform.cxx                     |    2 
 sw/source/filter/ww8/wrtww8.cxx                        |    4 
 sw/source/filter/ww8/ww8par.cxx                        |    4 
 sw/source/ui/config/optpage.cxx                        |   10 +-
 sw/source/ui/fldui/flddinf.cxx                         |    2 
 sw/source/ui/misc/insfnote.cxx                         |    4 
 sw/source/ui/misc/srtdlg.cxx                           |    2 
 sw/source/uibase/app/appenv.cxx                        |    4 
 sw/source/uibase/app/apphdl.cxx                        |    6 -
 sw/source/uibase/app/docsh.cxx                         |    2 
 sw/source/uibase/app/docsh2.cxx                        |    6 -
 sw/source/uibase/app/docshini.cxx                      |    2 
 sw/source/uibase/app/docst.cxx                         |    4 
 sw/source/uibase/shells/annotsh.cxx                    |   14 +-
 sw/source/uibase/shells/basesh.cxx                     |   16 +--
 sw/source/uibase/shells/drwtxtex.cxx                   |    4 
 sw/source/uibase/shells/drwtxtsh.cxx                   |    4 
 sw/source/uibase/shells/langhelper.cxx                 |    2 
 sw/source/uibase/shells/tabsh.cxx                      |    8 -
 sw/source/uibase/shells/textfld.cxx                    |   12 +-
 sw/source/uibase/shells/textsh.cxx                     |   20 ++--
 sw/source/uibase/shells/textsh1.cxx                    |   16 +--
 sw/source/uibase/shells/txtnum.cxx                     |    8 -
 sw/source/uibase/uiview/view2.cxx                      |    8 -
 sw/source/uibase/uiview/viewdraw.cxx                   |    6 -
 sw/source/uibase/uiview/viewprt.cxx                    |    4 
 122 files changed, 591 insertions(+), 704 deletions(-)

New commits:
commit adeefc6295b1cf411b47b9b4213c16effea9d832
Author: Jan Holesovsky <kendy at collabora.com>
Date:   Fri Oct 16 12:06:21 2015 +0200

    sfx items: Kill the unreadable & misplaced SFX_ITEMSET_ARG too.
    
    Change-Id: I1e0f96dce2b9cf9da32f4f577cf76e1d8824d37a

diff --git a/cui/source/dialogs/cuicharmap.cxx b/cui/source/dialogs/cuicharmap.cxx
index 08d1276..6d835dd 100644
--- a/cui/source/dialogs/cuicharmap.cxx
+++ b/cui/source/dialogs/cuicharmap.cxx
@@ -68,22 +68,22 @@ SvxCharacterMap::SvxCharacterMap( vcl::Window* pParent, bool bOne_, const SfxIte
     m_pCharCodeText->set_width_request(m_pCharCodeText->get_preferred_size().Width());
     get(m_pSymbolText, "symboltext");
 
-    SFX_ITEMSET_ARG(pSet, pItem, SfxBoolItem, FN_PARAM_1);
+    const SfxBoolItem* pItem = SfxItemSet::GetItem<SfxBoolItem>(pSet, FN_PARAM_1, false);
     if ( pItem )
         bOne = pItem->GetValue();
 
     init();
 
-    SFX_ITEMSET_ARG(pSet, pCharItem, SfxInt32Item, SID_ATTR_CHAR);
+    const SfxInt32Item* pCharItem = SfxItemSet::GetItem<SfxInt32Item>(pSet, SID_ATTR_CHAR, false);
     if ( pCharItem )
         SetChar( pCharItem->GetValue() );
 
-    SFX_ITEMSET_ARG(pSet, pDisableItem, SfxBoolItem, FN_PARAM_2);
+    const SfxBoolItem* pDisableItem = SfxItemSet::GetItem<SfxBoolItem>(pSet, FN_PARAM_2, false);
     if ( pDisableItem && pDisableItem->GetValue() )
         DisableFontSelection();
 
-    SFX_ITEMSET_ARG(pSet, pFontItem, SvxFontItem, SID_ATTR_CHAR_FONT);
-    SFX_ITEMSET_ARG(pSet, pFontNameItem, SfxStringItem, SID_FONT_NAME);
+    const SvxFontItem* pFontItem = SfxItemSet::GetItem<SvxFontItem>(pSet, SID_ATTR_CHAR_FONT, false);
+    const SfxStringItem* pFontNameItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_FONT_NAME, false);
     if ( pFontItem )
     {
         vcl::Font aTmpFont( pFontItem->GetFamilyName(), pFontItem->GetStyleName(), GetCharFont().GetSize() );
diff --git a/cui/source/tabpages/autocdlg.cxx b/cui/source/tabpages/autocdlg.cxx
index 8efcbf8..b8bab0c 100644
--- a/cui/source/tabpages/autocdlg.cxx
+++ b/cui/source/tabpages/autocdlg.cxx
@@ -72,11 +72,11 @@ OfaAutoCorrDlg::OfaAutoCorrDlg(vcl::Window* pParent, const SfxItemSet* _pSet )
 
     if ( _pSet )
     {
-        SFX_ITEMSET_ARG(_pSet, pItem, SfxBoolItem, SID_AUTO_CORRECT_DLG);
+        const SfxBoolItem* pItem = SfxItemSet::GetItem<SfxBoolItem>(_pSet, SID_AUTO_CORRECT_DLG, false);
         if ( pItem && pItem->GetValue() )
             bShowSWOptions = true;
 
-        SFX_ITEMSET_ARG(_pSet, pItem2, SfxBoolItem, SID_OPEN_SMARTTAGOPTIONS);
+        const SfxBoolItem* pItem2 = SfxItemSet::GetItem<SfxBoolItem>(_pSet, SID_OPEN_SMARTTAGOPTIONS, false);
         if ( pItem2 && pItem2->GetValue() )
             bOpenSmartTagOptions = true;
     }
@@ -1857,7 +1857,7 @@ OfaQuoteTabPage::OfaQuoteTabPage(vcl::Window* pParent, const SfxItemSet& rSet)
 
     bool bShowSWOptions = false;
 
-    SFX_ITEMSET_ARG(&rSet, pItem, SfxBoolItem, SID_AUTO_CORRECT_DLG);
+    const SfxBoolItem* pItem = rSet.GetItem<SfxBoolItem>(SID_AUTO_CORRECT_DLG, false);
     if ( pItem && pItem->GetValue() )
         bShowSWOptions = true;
 
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 1ef8077..613a3d9 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -1509,7 +1509,7 @@ void SvxBackgroundTabPage::FillControls_Impl( const SvxBrushItem& rBgdAttr,
 
 void SvxBackgroundTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_FLAG_TYPE);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_FLAG_TYPE, false);
 
     if (pFlagItem)
     {
diff --git a/cui/source/tabpages/border.cxx b/cui/source/tabpages/border.cxx
index c876fc8..36ec95e 100644
--- a/cui/source/tabpages/border.cxx
+++ b/cui/source/tabpages/border.cxx
@@ -1208,8 +1208,8 @@ void SvxBorderTabPage::DataChanged( const DataChangedEvent& rDCEvt )
 
 void SvxBorderTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pSWModeItem,SfxUInt16Item,SID_SWMODE_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_FLAG_TYPE);
+    const SfxUInt16Item* pSWModeItem = aSet.GetItem<SfxUInt16Item>(SID_SWMODE_TYPE, false);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_FLAG_TYPE, false);
     if (pSWModeItem)
     {
         nSWMode = static_cast<SwBorderModes>(pSWModeItem->GetValue());
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 547c0d7..3f0f004 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -1346,9 +1346,9 @@ void SvxCharNamePage::SetPreviewBackgroundToCharacter()
 
 void SvxCharNamePage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pFontListItem,SvxFontListItem,SID_ATTR_CHAR_FONTLIST);
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_FLAG_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pDisalbeItem,SfxUInt16Item,SID_DISABLE_CTL);
+    const SvxFontListItem* pFontListItem = aSet.GetItem<SvxFontListItem>(SID_ATTR_CHAR_FONTLIST, false);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_FLAG_TYPE, false);
+    const SfxUInt16Item* pDisalbeItem = aSet.GetItem<SfxUInt16Item>(SID_DISABLE_CTL, false);
     if (pFontListItem)
         SetFontList(*pFontListItem);
 
@@ -2620,8 +2620,8 @@ void SvxCharEffectsPage::SetPreviewBackgroundToCharacter()
 
 void SvxCharEffectsPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pDisableCtlItem,SfxUInt16Item,SID_DISABLE_CTL);
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_FLAG_TYPE);
+    const SfxUInt16Item* pDisableCtlItem = aSet.GetItem<SfxUInt16Item>(SID_DISABLE_CTL, false);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_FLAG_TYPE, false);
     if (pDisableCtlItem)
         DisableControls(pDisableCtlItem->GetValue());
 
@@ -3390,7 +3390,7 @@ void SvxCharPositionPage::SetPreviewBackgroundToCharacter()
 
 void SvxCharPositionPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_FLAG_TYPE);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_FLAG_TYPE, false);
     if (pFlagItem)
     {
         sal_uInt32 nFlags=pFlagItem->GetValue();
@@ -3628,7 +3628,7 @@ void SvxCharTwoLinesPage::SetPreviewBackgroundToCharacter()
 
 void SvxCharTwoLinesPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_FLAG_TYPE);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_FLAG_TYPE, false);
     if (pFlagItem)
     {
         sal_uInt32 nFlags=pFlagItem->GetValue();
diff --git a/cui/source/tabpages/connect.cxx b/cui/source/tabpages/connect.cxx
index 060fa79..f717e0f 100644
--- a/cui/source/tabpages/connect.cxx
+++ b/cui/source/tabpages/connect.cxx
@@ -512,7 +512,7 @@ void SvxConnectionPage::FillTypeLB()
 }
 void SvxConnectionPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pOfaPtrItem,OfaPtrItem,SID_OBJECT_LIST);
+    const OfaPtrItem* pOfaPtrItem = aSet.GetItem<OfaPtrItem>(SID_OBJECT_LIST, false);
     if (pOfaPtrItem)
         SetView( static_cast<SdrView *>(pOfaPtrItem->GetValue()) );
 
diff --git a/cui/source/tabpages/measure.cxx b/cui/source/tabpages/measure.cxx
index 3ad49e6..6afab70 100644
--- a/cui/source/tabpages/measure.cxx
+++ b/cui/source/tabpages/measure.cxx
@@ -820,7 +820,7 @@ void SvxMeasurePage::FillUnitLB()
 }
 void SvxMeasurePage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pOfaPtrItem,OfaPtrItem,SID_OBJECT_LIST);
+    const OfaPtrItem* pOfaPtrItem = aSet.GetItem<OfaPtrItem>(SID_OBJECT_LIST, false);
 
     if (pOfaPtrItem)
         SetView( static_cast<SdrView *>(pOfaPtrItem->GetValue()));
diff --git a/cui/source/tabpages/numfmt.cxx b/cui/source/tabpages/numfmt.cxx
index 0efb9ba..cdc03e3 100644
--- a/cui/source/tabpages/numfmt.cxx
+++ b/cui/source/tabpages/numfmt.cxx
@@ -1808,8 +1808,8 @@ void SvxNumberFormatTabPage::AddAutomaticLanguage_Impl(LanguageType eAutoLang, b
 
 void SvxNumberFormatTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pNumberInfoItem,SvxNumberInfoItem,SID_ATTR_NUMBERFORMAT_INFO);
-    SFX_ITEMSET_ARG(&aSet,pLinkItem,SfxLinkItem,SID_LINK_TYPE);
+    const SvxNumberInfoItem* pNumberInfoItem = aSet.GetItem<SvxNumberInfoItem>(SID_ATTR_NUMBERFORMAT_INFO, false);
+    const SfxLinkItem* pLinkItem = aSet.GetItem<SfxLinkItem>(SID_LINK_TYPE, false);
     if (pNumberInfoItem)
         SetNumberFormatList(*pNumberInfoItem);
     if (pLinkItem)
diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 5f429a1..094f622 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -532,7 +532,7 @@ IMPL_LINK_NOARG_TYPED(SvxBulletPickTabPage, DoubleClickHdl_Impl, ValueSet*, void
 void SvxBulletPickTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
 
-    SFX_ITEMSET_ARG(&aSet,pBulletCharFmt,SfxStringItem,SID_BULLET_CHAR_FMT);
+    const SfxStringItem* pBulletCharFmt = aSet.GetItem<SfxStringItem>(SID_BULLET_CHAR_FMT, false);
 
     if (pBulletCharFmt)
         SetCharFormatName( pBulletCharFmt->GetValue());
@@ -786,8 +786,8 @@ IMPL_LINK_NOARG_TYPED(SvxNumPickTabPage, DoubleClickHdl_Impl, ValueSet*, void)
 
 void SvxNumPickTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pNumCharFmt,SfxStringItem,SID_NUM_CHAR_FMT);
-    SFX_ITEMSET_ARG(&aSet,pBulletCharFmt,SfxStringItem,SID_BULLET_CHAR_FMT);
+    const SfxStringItem* pNumCharFmt = aSet.GetItem<SfxStringItem>(SID_NUM_CHAR_FMT, false);
+    const SfxStringItem* pBulletCharFmt = aSet.GetItem<SfxStringItem>(SID_BULLET_CHAR_FMT, false);
 
 
     if (pNumCharFmt &&pBulletCharFmt)
@@ -3671,10 +3671,10 @@ void SvxNumOptionsTabPage::SetModified(bool bRepaint)
 
 void SvxNumOptionsTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pListItem,SfxStringListItem,SID_CHAR_FMT_LIST_BOX);
-    SFX_ITEMSET_ARG(&aSet,pNumCharFmt,SfxStringItem,SID_NUM_CHAR_FMT);
-    SFX_ITEMSET_ARG(&aSet,pBulletCharFmt,SfxStringItem,SID_BULLET_CHAR_FMT);
-    SFX_ITEMSET_ARG(&aSet,pMetricItem,SfxAllEnumItem,SID_METRIC_ITEM);
+    const SfxStringListItem* pListItem = aSet.GetItem<SfxStringListItem>(SID_CHAR_FMT_LIST_BOX, false);
+    const SfxStringItem* pNumCharFmt = aSet.GetItem<SfxStringItem>(SID_NUM_CHAR_FMT, false);
+    const SfxStringItem* pBulletCharFmt = aSet.GetItem<SfxStringItem>(SID_BULLET_CHAR_FMT, false);
+    const SfxAllEnumItem* pMetricItem = aSet.GetItem<SfxAllEnumItem>(SID_METRIC_ITEM, false);
 
     if (pNumCharFmt &&pBulletCharFmt)
         SetCharFmts( pNumCharFmt->GetValue(),pBulletCharFmt->GetValue());
@@ -3693,7 +3693,7 @@ void SvxNumOptionsTabPage::PageCreated(const SfxAllItemSet& aSet)
 
 void SvxNumPositionTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pMetricItem,SfxAllEnumItem,SID_METRIC_ITEM);
+    const SfxAllEnumItem* pMetricItem = aSet.GetItem<SfxAllEnumItem>(SID_METRIC_ITEM, false);
 
     if (pMetricItem)
         SetMetric(static_cast<FieldUnit>(pMetricItem->GetValue()));
diff --git a/cui/source/tabpages/page.cxx b/cui/source/tabpages/page.cxx
index 46c2b3e..ef7110a 100644
--- a/cui/source/tabpages/page.cxx
+++ b/cui/source/tabpages/page.cxx
@@ -1758,13 +1758,13 @@ bool SvxPageDescPage::IsMarginOutOfRange()
 
 void SvxPageDescPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pModeItem,SfxAllEnumItem,SID_ENUM_PAGE_MODE);
-    SFX_ITEMSET_ARG(&aSet,pPaperStartItem,SfxAllEnumItem,SID_PAPER_START);
-    SFX_ITEMSET_ARG(&aSet,pPaperEndItem,SfxAllEnumItem,SID_PAPER_END);
-    SFX_ITEMSET_ARG(&aSet,pCollectListItem,SfxStringListItem,SID_COLLECT_LIST);
+    const SfxAllEnumItem* pModeItem = aSet.GetItem<SfxAllEnumItem>(SID_ENUM_PAGE_MODE, false);
+    const SfxAllEnumItem* pPaperStartItem = aSet.GetItem<SfxAllEnumItem>(SID_PAPER_START, false);
+    const SfxAllEnumItem* pPaperEndItem = aSet.GetItem<SfxAllEnumItem>(SID_PAPER_END, false);
+    const SfxStringListItem* pCollectListItem = aSet.GetItem<SfxStringListItem>(SID_COLLECT_LIST, false);
 
     //UUUU
-    SFX_ITEMSET_ARG(&aSet, pSupportDrawingLayerFillStyleItem, SfxBoolItem, SID_DRAWINGLAYER_FILLSTYLES);
+    const SfxBoolItem* pSupportDrawingLayerFillStyleItem = aSet.GetItem<SfxBoolItem>(SID_DRAWINGLAYER_FILLSTYLES, false);
 
     if (pModeItem)
     {
diff --git a/cui/source/tabpages/paragrph.cxx b/cui/source/tabpages/paragrph.cxx
index 8c010e6..63f10bb 100644
--- a/cui/source/tabpages/paragrph.cxx
+++ b/cui/source/tabpages/paragrph.cxx
@@ -943,9 +943,9 @@ void    SvxStdParagraphTabPage::PageCreated(const SfxAllItemSet& aSet)
                         0x0008 --->EnableNegativeMode()
                         0x0010 --->EnableContextualMode()
             */
-    SFX_ITEMSET_ARG(&aSet,pPageWidthItem,SfxUInt16Item,SID_SVXSTDPARAGRAPHTABPAGE_PAGEWIDTH);
-    SFX_ITEMSET_ARG(&aSet,pFlagSetItem,SfxUInt32Item,SID_SVXSTDPARAGRAPHTABPAGE_FLAGSET);
-    SFX_ITEMSET_ARG(&aSet,pLineDistItem,SfxUInt32Item,SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST);
+    const SfxUInt16Item* pPageWidthItem = aSet.GetItem<SfxUInt16Item>(SID_SVXSTDPARAGRAPHTABPAGE_PAGEWIDTH, false);
+    const SfxUInt32Item* pFlagSetItem = aSet.GetItem<SfxUInt32Item>(SID_SVXSTDPARAGRAPHTABPAGE_FLAGSET, false);
+    const SfxUInt32Item* pLineDistItem = aSet.GetItem<SfxUInt32Item>(SID_SVXSTDPARAGRAPHTABPAGE_ABSLINEDIST, false);
 
     if (pPageWidthItem)
         SetPageWidth(pPageWidthItem->GetValue());
@@ -1353,7 +1353,7 @@ void SvxParaAlignTabPage::EnableJustifyExt()
 
 void SvxParaAlignTabPage::PageCreated (const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pBoolItem,SfxBoolItem,SID_SVXPARAALIGNTABPAGE_ENABLEJUSTIFYEXT);
+    const SfxBoolItem* pBoolItem = aSet.GetItem<SfxBoolItem>(SID_SVXPARAALIGNTABPAGE_ENABLEJUSTIFYEXT, false);
     if (pBoolItem)
         if(pBoolItem->GetValue())
             EnableJustifyExt();
@@ -2166,7 +2166,7 @@ IMPL_LINK_TYPED( SvxExtParagraphTabPage, PageBreakTypeHdl_Impl, ListBox&, rListB
 
 void SvxExtParagraphTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pDisablePageBreakItem,SfxBoolItem,SID_DISABLE_SVXEXTPARAGRAPHTABPAGE_PAGEBREAK);
+    const SfxBoolItem* pDisablePageBreakItem = aSet.GetItem<SfxBoolItem>(SID_DISABLE_SVXEXTPARAGRAPHTABPAGE_PAGEBREAK, false);
 
     if (pDisablePageBreakItem)
         if ( pDisablePageBreakItem->GetValue())
diff --git a/cui/source/tabpages/tabstpge.cxx b/cui/source/tabpages/tabstpge.cxx
index 04d523b..4603f6b 100644
--- a/cui/source/tabpages/tabstpge.cxx
+++ b/cui/source/tabpages/tabstpge.cxx
@@ -689,7 +689,7 @@ IMPL_LINK_NOARG_TYPED(SvxTabulatorTabPage, ModifyHdl_Impl, Edit&, void)
 
 void SvxTabulatorTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pControlItem,SfxUInt16Item,SID_SVXTABULATORTABPAGE_CONTROLFLAGS);
+    const SfxUInt16Item* pControlItem = aSet.GetItem<SfxUInt16Item>(SID_SVXTABULATORTABPAGE_CONTROLFLAGS, false);
     if (pControlItem)
         DisableControls(pControlItem->GetValue());
 }
diff --git a/cui/source/tabpages/textattr.cxx b/cui/source/tabpages/textattr.cxx
index 0ebb8ef..62ebd52 100644
--- a/cui/source/tabpages/textattr.cxx
+++ b/cui/source/tabpages/textattr.cxx
@@ -701,7 +701,7 @@ bool SvxTextAttrPage::IsTextDirectionLeftToRight() const
 
 void SvxTextAttrPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pViewItem,OfaPtrItem,SID_SVXTEXTATTRPAGE_VIEW);
+    const OfaPtrItem* pViewItem = aSet.GetItem<OfaPtrItem>(SID_SVXTEXTATTRPAGE_VIEW, false);
 
     if (pViewItem)
         SetView( static_cast<SdrView *>(pViewItem->GetValue()));
diff --git a/cui/source/tabpages/tparea.cxx b/cui/source/tabpages/tparea.cxx
index 3fdde8a..d35ef40 100644
--- a/cui/source/tabpages/tparea.cxx
+++ b/cui/source/tabpages/tparea.cxx
@@ -482,7 +482,7 @@ void SvxTransparenceTabPage::ChangesApplied()
 
 void SvxTransparenceTabPage::ActivatePage(const SfxItemSet& rSet)
 {
-    SFX_ITEMSET_ARG(&rSet,pPageTypeItem,CntUInt16Item,SID_PAGE_TYPE);
+    const CntUInt16Item* pPageTypeItem = rSet.GetItem<CntUInt16Item>(SID_PAGE_TYPE, false);
     if (pPageTypeItem)
         SetPageType(pPageTypeItem->GetValue());
 
@@ -577,8 +577,8 @@ void SvxTransparenceTabPage::InvalidatePreview (bool bEnable)
 
 void SvxTransparenceTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE);
+    const SfxUInt16Item* pPageTypeItem = aSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
+    const SfxUInt16Item* pDlgTypeItem = aSet.GetItem<SfxUInt16Item>(SID_DLG_TYPE, false);
 
     if (pPageTypeItem)
         SetPageType(pPageTypeItem->GetValue());
@@ -851,8 +851,8 @@ void SvxAreaTabPage::Construct()
 void SvxAreaTabPage::ActivatePage( const SfxItemSet& rSet )
 {
     sal_Int32 nCount(0);
-    SFX_ITEMSET_ARG(&rSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE);
-    SFX_ITEMSET_ARG(&rSet,pPosItem,SfxUInt16Item,SID_TABPAGE_POS);
+    const SfxUInt16Item* pPageTypeItem = rSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
+    const SfxUInt16Item* pPosItem = rSet.GetItem<SfxUInt16Item>(SID_TABPAGE_POS, false);
     if (pPageTypeItem)
         SetPageType(pPageTypeItem->GetValue());
     if (pPosItem)
@@ -2447,16 +2447,16 @@ void SvxAreaTabPage::PointChanged( vcl::Window* , RECT_POINT eRcPt )
 
 void SvxAreaTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pColorListItem,SvxColorListItem,SID_COLOR_TABLE);
-    SFX_ITEMSET_ARG(&aSet,pGradientListItem,SvxGradientListItem,SID_GRADIENT_LIST);
-    SFX_ITEMSET_ARG(&aSet,pHatchingListItem,SvxHatchListItem,SID_HATCH_LIST);
-    SFX_ITEMSET_ARG(&aSet,pBitmapListItem,SvxBitmapListItem,SID_BITMAP_LIST);
-    SFX_ITEMSET_ARG(&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pPosItem,SfxUInt16Item,SID_TABPAGE_POS);
+    const SvxColorListItem* pColorListItem = aSet.GetItem<SvxColorListItem>(SID_COLOR_TABLE, false);
+    const SvxGradientListItem* pGradientListItem = aSet.GetItem<SvxGradientListItem>(SID_GRADIENT_LIST, false);
+    const SvxHatchListItem* pHatchingListItem = aSet.GetItem<SvxHatchListItem>(SID_HATCH_LIST, false);
+    const SvxBitmapListItem* pBitmapListItem = aSet.GetItem<SvxBitmapListItem>(SID_BITMAP_LIST, false);
+    const SfxUInt16Item* pPageTypeItem = aSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
+    const SfxUInt16Item* pDlgTypeItem = aSet.GetItem<SfxUInt16Item>(SID_DLG_TYPE, false);
+    const SfxUInt16Item* pPosItem = aSet.GetItem<SfxUInt16Item>(SID_TABPAGE_POS, false);
 
     //UUUU
-    SFX_ITEMSET_ARG(&aSet, pOfferImportItem, SfxBoolItem, SID_OFFER_IMPORT);
+    const SfxBoolItem* pOfferImportItem = aSet.GetItem<SfxBoolItem>(SID_OFFER_IMPORT, false);
 
     if (pColorListItem)
         SetColorList(pColorListItem->GetColorList());
diff --git a/cui/source/tabpages/tpline.cxx b/cui/source/tabpages/tpline.cxx
index 9e85f09..03f095d 100644
--- a/cui/source/tabpages/tpline.cxx
+++ b/cui/source/tabpages/tpline.cxx
@@ -557,7 +557,7 @@ void SvxLineTabPage::FillListboxes()
 
 void SvxLineTabPage::ActivatePage( const SfxItemSet& rSet )
 {
-    SFX_ITEMSET_ARG(&rSet,pPageTypeItem,CntUInt16Item,SID_PAGE_TYPE);
+    const CntUInt16Item* pPageTypeItem = rSet.GetItem<CntUInt16Item>(SID_PAGE_TYPE, false);
     if (pPageTypeItem)
         SetPageType(pPageTypeItem->GetValue());
     if( m_nDlgType == 0 && m_pDashList.is() )
@@ -1812,14 +1812,14 @@ void SvxLineTabPage::DataChanged( const DataChangedEvent& rDCEvt )
 
 void SvxLineTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pColorListItem,SvxColorListItem,SID_COLOR_TABLE);
-    SFX_ITEMSET_ARG(&aSet,pDashListItem,SvxDashListItem,SID_DASH_LIST);
-    SFX_ITEMSET_ARG(&aSet,pLineEndListItem,SvxLineEndListItem,SID_LINEEND_LIST);
-    SFX_ITEMSET_ARG(&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pSdrObjListItem,OfaPtrItem,SID_OBJECT_LIST);
-    SFX_ITEMSET_ARG(&aSet,pSymbolAttrItem,SfxTabDialogItem,SID_ATTR_SET);
-    SFX_ITEMSET_ARG(&aSet,pGraphicItem,SvxGraphicItem,SID_GRAPHIC);
+    const SvxColorListItem* pColorListItem = aSet.GetItem<SvxColorListItem>(SID_COLOR_TABLE, false);
+    const SvxDashListItem* pDashListItem = aSet.GetItem<SvxDashListItem>(SID_DASH_LIST, false);
+    const SvxLineEndListItem* pLineEndListItem = aSet.GetItem<SvxLineEndListItem>(SID_LINEEND_LIST, false);
+    const SfxUInt16Item* pPageTypeItem = aSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
+    const SfxUInt16Item* pDlgTypeItem = aSet.GetItem<SfxUInt16Item>(SID_DLG_TYPE, false);
+    const OfaPtrItem* pSdrObjListItem = aSet.GetItem<OfaPtrItem>(SID_OBJECT_LIST, false);
+    const SfxTabDialogItem* pSymbolAttrItem = aSet.GetItem<SfxTabDialogItem>(SID_ATTR_SET, false);
+    const SvxGraphicItem* pGraphicItem = aSet.GetItem<SvxGraphicItem>(SID_GRAPHIC, false);
 
     if (pColorListItem)
         SetColorList(pColorListItem->GetColorList());
diff --git a/cui/source/tabpages/tpshadow.cxx b/cui/source/tabpages/tpshadow.cxx
index 39e31b0..ec3cf5f 100644
--- a/cui/source/tabpages/tpshadow.cxx
+++ b/cui/source/tabpages/tpshadow.cxx
@@ -201,7 +201,7 @@ void SvxShadowTabPage::ActivatePage( const SfxItemSet& rSet )
     sal_Int32 nPos;
     sal_Int32 nCount;
 
-    SFX_ITEMSET_ARG(&rSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE);
+    const SfxUInt16Item* pPageTypeItem = rSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
     if (pPageTypeItem)
         SetPageType(pPageTypeItem->GetValue());
 
@@ -564,9 +564,9 @@ void SvxShadowTabPage::PointChanged( vcl::Window*, RECT_POINT eRcPt )
 
 void SvxShadowTabPage::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pColorListItem,SvxColorListItem,SID_COLOR_TABLE);
-    SFX_ITEMSET_ARG(&aSet,pPageTypeItem,SfxUInt16Item,SID_PAGE_TYPE);
-    SFX_ITEMSET_ARG(&aSet,pDlgTypeItem,SfxUInt16Item,SID_DLG_TYPE);
+    const SvxColorListItem* pColorListItem = aSet.GetItem<SvxColorListItem>(SID_COLOR_TABLE, false);
+    const SfxUInt16Item* pPageTypeItem = aSet.GetItem<SfxUInt16Item>(SID_PAGE_TYPE, false);
+    const SfxUInt16Item* pDlgTypeItem = aSet.GetItem<SfxUInt16Item>(SID_DLG_TYPE, false);
 
     if (pColorListItem)
         SetColorList(pColorListItem->GetColorList());
diff --git a/include/sfx2/request.hxx b/include/sfx2/request.hxx
index 05e8910..a59a49e 100644
--- a/include/sfx2/request.hxx
+++ b/include/sfx2/request.hxx
@@ -78,10 +78,6 @@ public:
     void                AppendItem(const SfxPoolItem &);
     void                RemoveItem( sal_uInt16 nSlotId );
 
-    static const SfxPoolItem* GetItem( const SfxItemSet*, sal_uInt16 nSlotId,
-                                       bool bDeep = false,
-                                       std::function<bool ( const SfxPoolItem* )> isItemType = nullptr );
-
     /** Templatized access to the individual parameters of the SfxRequest.
 
         Use like: const SfxInt32Item *pPosItem = rReq.GetArg<SfxInt32Item>(SID_POS);
@@ -121,15 +117,6 @@ private:
     const SfxRequest&   operator=(const SfxRequest &) = delete;
 };
 
-template<class T> bool checkSfxPoolItem(const SfxPoolItem* pItem)
-{
-    return dynamic_cast<const T*>(pItem) != nullptr;
-}
-
-#define SFX_ITEMSET_ARG(pArgs, pItem, ItemType, nSlotId) \
-    const ItemType *pItem = static_cast<const ItemType*>( \
-        SfxRequest::GetItem( pArgs, nSlotId, false, checkSfxPoolItem<ItemType> ) )
-
 #endif
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/include/svl/itemset.hxx b/include/svl/itemset.hxx
index 4685441..52d4d7a 100644
--- a/include/svl/itemset.hxx
+++ b/include/svl/itemset.hxx
@@ -87,12 +87,21 @@ public:
     const SfxPoolItem*          GetItem( sal_uInt16 nWhich, bool bSearchInParent = true,
                                          TypeId aItemType = 0 ) const;
 
-    /// Templatized version of the GetItem().
-    template<class T> const T*  GetItem(sal_uInt16 nWhich, bool bSearchInParent = true) const
+    /// Templatized version to directly return the correct type.
+    template<class T> const T* GetItem(sal_uInt16 nWhich, bool bSearchInParent = true) const
     {
         return dynamic_cast<const T*>(GetItem(nWhich, bSearchInParent));
     }
 
+    /// Templatized static version to directly return the correct type if the SfxItemSet is available.
+    template<class T> static const T* GetItem(const SfxItemSet* pItemSet, sal_uInt16 nWhich, bool bSearchInParent = true)
+    {
+        if (pItemSet)
+            return pItemSet->GetItem<T>(nWhich, bSearchInParent);
+
+        return nullptr;
+    }
+
     // Get Which-value of the item at position nPos
     sal_uInt16                  GetWhichByPos(sal_uInt16 nPos) const;
 
diff --git a/sc/source/filter/excel/xeroot.cxx b/sc/source/filter/excel/xeroot.cxx
index 8022f4f..d3762369 100644
--- a/sc/source/filter/excel/xeroot.cxx
+++ b/sc/source/filter/excel/xeroot.cxx
@@ -343,13 +343,13 @@ uno::Sequence< beans::NamedValue > XclExpRoot::GenerateEncryptionData( const OUS
 uno::Sequence< beans::NamedValue > XclExpRoot::GetEncryptionData() const
 {
     uno::Sequence< beans::NamedValue > aEncryptionData;
-    SFX_ITEMSET_ARG(GetMedium().GetItemSet(), pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
+    const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(GetMedium().GetItemSet(), SID_ENCRYPTIONDATA, false);
     if ( pEncryptionDataItem )
         pEncryptionDataItem->GetValue() >>= aEncryptionData;
     else
     {
         // try to get the encryption data from the password
-        SFX_ITEMSET_ARG(GetMedium().GetItemSet(), pPasswordItem, SfxStringItem, SID_PASSWORD);
+        const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium().GetItemSet(), SID_PASSWORD, false);
         if ( pPasswordItem && !pPasswordItem->GetValue().isEmpty() )
             aEncryptionData = GenerateEncryptionData( pPasswordItem->GetValue() );
     }
diff --git a/sc/source/filter/ftools/fapihelper.cxx b/sc/source/filter/ftools/fapihelper.cxx
index 7c1c89d..210215c 100644
--- a/sc/source/filter/ftools/fapihelper.cxx
+++ b/sc/source/filter/ftools/fapihelper.cxx
@@ -105,12 +105,12 @@ uno::Sequence< beans::NamedValue > ScfApiHelper::QueryEncryptionDataForMedium( S
         ::comphelper::IDocPasswordVerifier& rVerifier, const ::std::vector< OUString >* pDefaultPasswords )
 {
     uno::Sequence< beans::NamedValue > aEncryptionData;
-    SFX_ITEMSET_ARG(rMedium.GetItemSet(), pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
+    const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(rMedium.GetItemSet(), SID_ENCRYPTIONDATA, false);
     if ( pEncryptionDataItem )
         pEncryptionDataItem->GetValue() >>= aEncryptionData;
 
     OUString aPassword;
-    SFX_ITEMSET_ARG(rMedium.GetItemSet(), pPasswordItem, SfxStringItem, SID_PASSWORD);
+    const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(rMedium.GetItemSet(), SID_PASSWORD, false);
     if ( pPasswordItem )
         aPassword = pPasswordItem->GetValue();
 
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index bbd0086..487c89a 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -568,7 +568,7 @@ bool ScDocShell::Load( SfxMedium& rMedium )
     {
         if (GetMedium())
         {
-            SFX_ITEMSET_ARG(rMedium.GetItemSet(), pUpdateDocItem, SfxUInt16Item, SID_UPDATEDOCMODE);
+            const SfxUInt16Item* pUpdateDocItem = SfxItemSet::GetItem<SfxUInt16Item>(rMedium.GetItemSet(), SID_UPDATEDOCMODE, false);
             nCanUpdate = pUpdateDocItem ? pUpdateDocItem->GetValue() : com::sun::star::document::UpdateDocMode::NO_UPDATE;
         }
 
@@ -860,7 +860,7 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
                                             aValues[0].Name = "FilterName";
                                             aValues[0].Value <<= OUString( GetMedium()->GetFilter()->GetFilterName() );
 
-                                            SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pPasswordItem, SfxStringItem, SID_PASSWORD);
+                                            const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium()->GetItemSet(), SID_PASSWORD, false);
                                             if ( pPasswordItem && !pPasswordItem->GetValue().isEmpty() )
                                             {
                                                 aValues.realloc( 2 );
@@ -983,7 +983,7 @@ bool ScDocShell::LoadFrom( SfxMedium& rMedium )
 
     if (GetMedium())
     {
-        SFX_ITEMSET_ARG(rMedium.GetItemSet(), pUpdateDocItem, SfxUInt16Item, SID_UPDATEDOCMODE);
+        const SfxUInt16Item* pUpdateDocItem = SfxItemSet::GetItem<SfxUInt16Item>(rMedium.GetItemSet(), SID_UPDATEDOCMODE, false);
         nCanUpdate = pUpdateDocItem ? pUpdateDocItem->GetValue() : com::sun::star::document::UpdateDocMode::NO_UPDATE;
     }
 
@@ -1052,7 +1052,7 @@ bool ScDocShell::ConvertFrom( SfxMedium& rMedium )
     //  So make sure that we transfer the whole file with CreateFileStream
     rMedium.GetPhysicalName();  //! Call CreateFileStream directly, if available
 
-    SFX_ITEMSET_ARG(rMedium.GetItemSet(), pUpdateDocItem, SfxUInt16Item, SID_UPDATEDOCMODE);
+    const SfxUInt16Item* pUpdateDocItem = SfxItemSet::GetItem<SfxUInt16Item>(rMedium.GetItemSet(), SID_UPDATEDOCMODE, false);
     nCanUpdate = pUpdateDocItem ? pUpdateDocItem->GetValue() : com::sun::star::document::UpdateDocMode::NO_UPDATE;
 
     const SfxFilter* pFilter = rMedium.GetFilter();
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index c0ffe06..d93d7d6 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -2365,7 +2365,7 @@ uno::Reference< frame::XModel > ScDocShell::LoadSharedDocument()
 
         if ( GetMedium() )
         {
-            SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pPasswordItem, SfxStringItem, SID_PASSWORD);
+            const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium()->GetItemSet(), SID_PASSWORD, false);
             if ( pPasswordItem && !pPasswordItem->GetValue().isEmpty() )
             {
                 aArgs.realloc( 2 );
diff --git a/sc/source/ui/view/cellsh1.cxx b/sc/source/ui/view/cellsh1.cxx
index 2d7bc84..f190dc4 100644
--- a/sc/source/ui/view/cellsh1.cxx
+++ b/sc/source/ui/view/cellsh1.cxx
@@ -2349,8 +2349,8 @@ void ScCellShell::ExecuteEdit( SfxRequest& rReq )
 
                 if ( pDlg->Execute() == RET_OK )
                 {
-                    SFX_ITEMSET_ARG(pDlg->GetOutputItemSet(), pItem, SfxStringItem, SID_CHARMAP);
-                    SFX_ITEMSET_ARG(pDlg->GetOutputItemSet(), pFontItem, SvxFontItem, SID_ATTR_CHAR_FONT);
+                    const SfxStringItem* pItem = SfxItemSet::GetItem<SfxStringItem>(pDlg->GetOutputItemSet(), SID_CHARMAP, false);
+                    const SvxFontItem* pFontItem = SfxItemSet::GetItem<SvxFontItem>(pDlg->GetOutputItemSet(), SID_ATTR_CHAR_FONT, false);
 
                     if ( pItem && pFontItem )
                     {
diff --git a/sc/source/ui/view/tabvwsh9.cxx b/sc/source/ui/view/tabvwsh9.cxx
index c5f812f..fdd4c26 100644
--- a/sc/source/ui/view/tabvwsh9.cxx
+++ b/sc/source/ui/view/tabvwsh9.cxx
@@ -64,7 +64,7 @@ void ScTabViewShell::ExecGallery( SfxRequest& rReq )
 {
     const SfxItemSet* pArgs = rReq.GetArgs();
 
-    SFX_ITEMSET_ARG(pArgs, pGalleryItem, SvxGalleryItem, SID_GALLERY_FORMATS);
+    const SvxGalleryItem* pGalleryItem = SfxItemSet::GetItem<SvxGalleryItem>(pArgs, SID_GALLERY_FORMATS, false);
     if ( !pGalleryItem )
         return;
 
diff --git a/sc/source/ui/view/viewutil.cxx b/sc/source/ui/view/viewutil.cxx
index 40cadfc..e878df4 100644
--- a/sc/source/ui/view/viewutil.cxx
+++ b/sc/source/ui/view/viewutil.cxx
@@ -353,8 +353,8 @@ bool ScViewUtil::ExecuteCharMap( const SvxFontItem& rOldFont,
         std::unique_ptr<SfxAbstractDialog> pDlg(pFact->CreateSfxDialog( &rFrame.GetWindow(), aSet, rFrame.GetFrame().GetFrameInterface(), RID_SVXDLG_CHARMAP ));
         if ( pDlg->Execute() == RET_OK )
         {
-            SFX_ITEMSET_ARG(pDlg->GetOutputItemSet(), pItem, SfxStringItem, SID_CHARMAP);
-            SFX_ITEMSET_ARG(pDlg->GetOutputItemSet(), pFontItem, SvxFontItem, SID_ATTR_CHAR_FONT);
+            const SfxStringItem* pItem = SfxItemSet::GetItem<SfxStringItem>(pDlg->GetOutputItemSet(), SID_CHARMAP, false);
+            const SvxFontItem* pFontItem = SfxItemSet::GetItem<SvxFontItem>(pDlg->GetOutputItemSet(), SID_ATTR_CHAR_FONT, false);
             if ( pItem )
                 rString  = pItem->GetValue();
             if ( pFontItem )
diff --git a/sd/source/ui/dlg/dlgass.cxx b/sd/source/ui/dlg/dlgass.cxx
index 7cb6a60..163e2df 100644
--- a/sd/source/ui/dlg/dlgass.cxx
+++ b/sd/source/ui/dlg/dlgass.cxx
@@ -1542,7 +1542,7 @@ void AssistentDlgImpl::SavePassword( SfxObjectShellLock xDoc, const OUString& rP
         if(pMedium && pMedium->IsStorage())
         {
           SfxItemSet * pSet = pMedium->GetItemSet();
-          SFX_ITEMSET_ARG(pSet, pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
+          const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pSet, SID_ENCRYPTIONDATA, false);
           uno::Sequence < beans::NamedValue > aEncryptionData;
           if (pEncryptionDataItem)
               pEncryptionDataItem->GetValue() >>= aEncryptionData;
diff --git a/sd/source/ui/dlg/prntopts.cxx b/sd/source/ui/dlg/prntopts.cxx
index fe9df81..d6d58ab 100644
--- a/sd/source/ui/dlg/prntopts.cxx
+++ b/sd/source/ui/dlg/prntopts.cxx
@@ -253,7 +253,7 @@ void SdPrintOptions::PageCreated (const SfxAllItemSet&
                                   )
 {
 #ifdef MACOSX
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_SDMODE_FLAG);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_SDMODE_FLAG, false);
     if (pFlagItem)
     {
         sal_uInt32 nFlags=pFlagItem->GetValue();
diff --git a/sd/source/ui/dlg/tpoption.cxx b/sd/source/ui/dlg/tpoption.cxx
index 46475ca..c1ec179 100644
--- a/sd/source/ui/dlg/tpoption.cxx
+++ b/sd/source/ui/dlg/tpoption.cxx
@@ -662,7 +662,7 @@ void SdTpOptionsMisc::UpdateCompatibilityControls()
 
 void SdTpOptionsMisc::PageCreated(const SfxAllItemSet& aSet)
 {
-    SFX_ITEMSET_ARG(&aSet,pFlagItem,SfxUInt32Item,SID_SDMODE_FLAG);
+    const SfxUInt32Item* pFlagItem = aSet.GetItem<SfxUInt32Item>(SID_SDMODE_FLAG, false);
     if (pFlagItem)
     {
         sal_uInt32 nFlags=pFlagItem->GetValue();
diff --git a/sd/source/ui/func/fubullet.cxx b/sd/source/ui/func/fubullet.cxx
index 030fcbc..1beffa4 100644
--- a/sd/source/ui/func/fubullet.cxx
+++ b/sd/source/ui/func/fubullet.cxx
@@ -202,8 +202,8 @@ void FuBullet::InsertSpecialCharacter( SfxRequest& rReq )
         sal_uInt16 nResult = pDlg->Execute();
         if( nResult == RET_OK )
         {
-            SFX_ITEMSET_ARG(pDlg->GetOutputItemSet(), pCItem, SfxStringItem, SID_CHARMAP);
-            SFX_ITEMSET_ARG(pDlg->GetOutputItemSet(), pFItem, SvxFontItem, SID_ATTR_CHAR_FONT);
+            const SfxStringItem* pCItem = SfxItemSet::GetItem<SfxStringItem>(pDlg->GetOutputItemSet(), SID_CHARMAP, false);
+            const SvxFontItem* pFItem = SfxItemSet::GetItem<SvxFontItem>(pDlg->GetOutputItemSet(), SID_ATTR_CHAR_FONT, false);
             if ( pFItem )
             {
                 aFont.SetName( pFItem->GetFamilyName() );
diff --git a/sd/source/ui/func/fuolbull.cxx b/sd/source/ui/func/fuolbull.cxx
index cee7082..994ebc7 100644
--- a/sd/source/ui/func/fuolbull.cxx
+++ b/sd/source/ui/func/fuolbull.cxx
@@ -68,7 +68,7 @@ void FuOutlineBullet::DoExecute( SfxRequest& rReq )
     }
 
     const SfxItemSet* pArgs = rReq.GetArgs();
-    SFX_ITEMSET_ARG(pArgs, pPageItem, SfxStringItem, FN_PARAM_1);
+    const SfxStringItem* pPageItem = SfxItemSet::GetItem<SfxStringItem>(pArgs, FN_PARAM_1, false);
 
     if ( !pArgs || pPageItem )
     {
diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx
index 2e4d14e..ba18d45 100644
--- a/sd/source/ui/slideshow/slideshowimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowimpl.cxx
@@ -2596,7 +2596,7 @@ void SlideshowImpl::setActiveXToolbarsVisible( bool bVisible )
     // actually it runs always in window mode in case of ActiveX control
     if ( !maPresSettings.mbFullScreen && mpDocSh && mpDocSh->GetMedium() )
     {
-        SFX_ITEMSET_ARG(mpDocSh->GetMedium()->GetItemSet(), pItem, SfxBoolItem, SID_VIEWONLY);
+        const SfxBoolItem* pItem = SfxItemSet::GetItem<SfxBoolItem>(mpDocSh->GetMedium()->GetItemSet(), SID_VIEWONLY, false);
         if ( pItem && pItem->GetValue() )
         {
             // this is a plugin/activex mode, no toolbars should be visible during slide show
diff --git a/sd/source/ui/view/ToolBarManager.cxx b/sd/source/ui/view/ToolBarManager.cxx
index 7d4388e..57ad96d 100644
--- a/sd/source/ui/view/ToolBarManager.cxx
+++ b/sd/source/ui/view/ToolBarManager.cxx
@@ -912,7 +912,7 @@ bool ToolBarManager::Implementation::CheckPlugInMode (const OUString& rsName) co
         if (pMedium == NULL)
             break;
 
-        SFX_ITEMSET_ARG(pMedium->GetItemSet(),pViewOnlyItem,SfxBoolItem,SID_VIEWONLY);
+        const SfxBoolItem* pViewOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_VIEWONLY, false);
         if (pViewOnlyItem == NULL)
             break;
 
diff --git a/sd/source/ui/view/drviews9.cxx b/sd/source/ui/view/drviews9.cxx
index 01846af..8ea4492 100644
--- a/sd/source/ui/view/drviews9.cxx
+++ b/sd/source/ui/view/drviews9.cxx
@@ -74,7 +74,7 @@ void DrawViewShell::ExecGallery(SfxRequest& rReq)
 
     const SfxItemSet* pArgs = rReq.GetArgs();
 
-    SFX_ITEMSET_ARG(pArgs, pGalleryItem, SvxGalleryItem, SID_GALLERY_FORMATS);
+    const SvxGalleryItem* pGalleryItem = SfxItemSet::GetItem<SvxGalleryItem>(pArgs, SID_GALLERY_FORMATS, false);
     if ( !pGalleryItem )
         return;
 
diff --git a/sfx2/source/appl/appopen.cxx b/sfx2/source/appl/appopen.cxx
index 79f7337..3cddd76 100644
--- a/sfx2/source/appl/appopen.cxx
+++ b/sfx2/source/appl/appopen.cxx
@@ -232,12 +232,12 @@ sal_uInt32 CheckPasswd_Impl
                         {
                             // use the comphelper password helper to request a password
                             OUString aPassword;
-                            SFX_ITEMSET_ARG(pSet, pPasswordItem, SfxStringItem, SID_PASSWORD);
+                            const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_PASSWORD, false);
                             if ( pPasswordItem )
                                 aPassword = pPasswordItem->GetValue();
 
                             uno::Sequence< beans::NamedValue > aEncryptionData;
-                            SFX_ITEMSET_ARG(pSet, pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
+                            const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pSet, SID_ENCRYPTIONDATA, false);
                             if ( pEncryptionDataItem )
                                 pEncryptionDataItem->GetValue() >>= aEncryptionData;
 
diff --git a/sfx2/source/appl/appserv.cxx b/sfx2/source/appl/appserv.cxx
index 2fa9fae..4fa868e 100644
--- a/sfx2/source/appl/appserv.cxx
+++ b/sfx2/source/appl/appserv.cxx
@@ -359,7 +359,7 @@ void SfxApplication::MiscExec_Impl( SfxRequest& rReq )
 
                 Reference< XFrame > xFrame;
                 const SfxItemSet* pIntSet = rReq.GetInternalArgs_Impl();
-                SFX_ITEMSET_ARG(pIntSet, pFrameItem, SfxUnoFrameItem, SID_FILLFRAME);
+                const SfxUnoFrameItem* pFrameItem = SfxItemSet::GetItem<SfxUnoFrameItem>(pIntSet, SID_FILLFRAME, false);
                 if ( pFrameItem )
                     xFrame = pFrameItem->GetFrame();
 
@@ -1138,7 +1138,7 @@ void SfxApplication::OfaExec_Impl( SfxRequest& rReq )
 
             Reference< XFrame > xFrame;
             const SfxItemSet* pIntSet = rReq.GetInternalArgs_Impl();
-            SFX_ITEMSET_ARG(pIntSet, pFrameItem, SfxUnoFrameItem, SID_FILLFRAME);
+            const SfxUnoFrameItem* pFrameItem = SfxItemSet::GetItem<SfxUnoFrameItem>(pIntSet, SID_FILLFRAME, false);
             if ( pFrameItem )
                 xFrame = pFrameItem->GetFrame();
 
diff --git a/sfx2/source/appl/appuno.cxx b/sfx2/source/appl/appuno.cxx
index b0b1c8a..5f1a86a 100644
--- a/sfx2/source/appl/appuno.cxx
+++ b/sfx2/source/appl/appuno.cxx
@@ -1277,7 +1277,7 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, uno::Sequence<b
         // slot is a property
         sal_uInt16 nWhich = rSet.GetPool()->GetWhich(nSlotId);
         bool bConvertTwips = ( rSet.GetPool()->GetMetric( nWhich ) == SFX_MAPUNIT_TWIP );
-        SFX_ITEMSET_ARG(&rSet, pItem, SfxPoolItem, nWhich);
+        const SfxPoolItem* pItem = rSet.GetItem<SfxPoolItem>(nWhich, false);
         if ( pItem ) //???
         {
             sal_uInt16 nSubCount = pType->nAttribs;
@@ -1329,7 +1329,7 @@ void TransformItems( sal_uInt16 nSlotId, const SfxItemSet& rSet, uno::Sequence<b
         const SfxFormalArgument &rArg = pSlot->GetFormalArgument( nArg );
         sal_uInt16 nWhich = rSet.GetPool()->GetWhich( rArg.nSlotId );
         bool bConvertTwips = ( rSet.GetPool()->GetMetric( nWhich ) == SFX_MAPUNIT_TWIP );
-        SFX_ITEMSET_ARG(&rSet, pItem, SfxPoolItem, nWhich);
+        const SfxPoolItem* pItem = rSet.GetItem<SfxPoolItem>(nWhich, false);
         if ( pItem ) //???
         {
             sal_uInt16 nSubCount = rArg.pType->nAttribs;
diff --git a/sfx2/source/appl/linkmgr2.cxx b/sfx2/source/appl/linkmgr2.cxx
index 2c08d38..fe9d1e8 100644
--- a/sfx2/source/appl/linkmgr2.cxx
+++ b/sfx2/source/appl/linkmgr2.cxx
@@ -588,7 +588,7 @@ bool SvxInternalLink::Connect( sfx2::SvBaseLink* pLink )
         if( pShell && pShell->GetMedium() )
         {
             sReferer = pShell->GetMedium()->GetBaseURL();
-            SFX_ITEMSET_ARG(pShell->GetMedium()->GetItemSet(), pItem, SfxUInt16Item, SID_UPDATEDOCMODE);
+            const SfxUInt16Item* pItem = SfxItemSet::GetItem<SfxUInt16Item>(pShell->GetMedium()->GetItemSet(), SID_UPDATEDOCMODE, false);
             if ( pItem )
                 nUpdateMode = pItem->GetValue();
         }
diff --git a/sfx2/source/appl/sfxpicklist.cxx b/sfx2/source/appl/sfxpicklist.cxx
index 32179734..c1f1203 100644
--- a/sfx2/source/appl/sfxpicklist.cxx
+++ b/sfx2/source/appl/sfxpicklist.cxx
@@ -179,7 +179,7 @@ void SfxPickList::AddDocumentToPickList( SfxObjectShell* pDocSh )
         return;
 
     // add no document that forbids this (for example Message-Body)
-    SFX_ITEMSET_ARG(pMed->GetItemSet(), pPicklistItem, SfxBoolItem, SID_PICKLIST);
+    const SfxBoolItem* pPicklistItem = SfxItemSet::GetItem<SfxBoolItem>(pMed->GetItemSet(), SID_PICKLIST, false);
     if ( pPicklistItem && !pPicklistItem->GetValue() )
         return;
 
@@ -200,7 +200,7 @@ void SfxPickList::AddDocumentToPickList( SfxObjectShell* pDocSh )
     if (!pDocSh->IsModified() && !Application::IsHeadlessModeEnabled())
     {
         // not modified => the document matches what is in the shell
-        SFX_ITEMSET_ARG(pMed->GetItemSet(), pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
+        const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pMed->GetItemSet(), SID_ENCRYPTIONDATA, false);
         if ( pEncryptionDataItem )
         {
             // encrypted document, will show a generic document icon instead
diff --git a/sfx2/source/appl/workwin.cxx b/sfx2/source/appl/workwin.cxx
index e1d4db1..b03c12d 100644
--- a/sfx2/source/appl/workwin.cxx
+++ b/sfx2/source/appl/workwin.cxx
@@ -1213,7 +1213,7 @@ bool SfxWorkWindow::IsPluginMode( SfxObjectShell* pObjShell )
 {
     if ( pObjShell && pObjShell->GetMedium() )
     {
-        SFX_ITEMSET_ARG(pObjShell->GetMedium()->GetItemSet(), pViewOnlyItem, SfxBoolItem, SID_VIEWONLY);
+        const SfxBoolItem* pViewOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pObjShell->GetMedium()->GetItemSet(), SID_VIEWONLY, false);
         if ( pViewOnlyItem && pViewOnlyItem->GetValue() )
             return true;
     }
diff --git a/sfx2/source/bastyp/fltfnc.cxx b/sfx2/source/bastyp/fltfnc.cxx
index c978a19..f1cf9f8 100644
--- a/sfx2/source/bastyp/fltfnc.cxx
+++ b/sfx2/source/bastyp/fltfnc.cxx
@@ -574,7 +574,7 @@ sal_uInt32 SfxFilterMatcher::DetectFilter( SfxMedium& rMedium, const SfxFilter**
             pOldFilter = 0;
         else
         {
-            SFX_ITEMSET_ARG(rMedium.GetItemSet(), pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+            const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(rMedium.GetItemSet(), SID_DOC_SALVAGE, false);
             if ( ( pOldFilter->GetFilterFlags() & SfxFilterFlags::PACKED ) && pSalvageItem )
                 // Salvage is always done without packing
                 pOldFilter = 0;
@@ -584,7 +584,7 @@ sal_uInt32 SfxFilterMatcher::DetectFilter( SfxMedium& rMedium, const SfxFilter**
     const SfxFilter* pFilter = pOldFilter;
 
     bool bPreview = rMedium.IsPreview_Impl();
-    SFX_ITEMSET_ARG(rMedium.GetItemSet(), pReferer, SfxStringItem, SID_REFERER);
+    const SfxStringItem* pReferer = SfxItemSet::GetItem<SfxStringItem>(rMedium.GetItemSet(), SID_REFERER, false);
     if ( bPreview && rMedium.IsRemote() && ( !pReferer || !pReferer->GetValue().match("private:searchfolder:") ) )
         return ERRCODE_ABORT;
 
@@ -621,7 +621,7 @@ sal_uInt32 SfxFilterMatcher::DetectFilter( SfxMedium& rMedium, const SfxFilter**
     }
 
     bool bHidden = bPreview;
-    SFX_ITEMSET_ARG(rMedium.GetItemSet(), pFlags, SfxStringItem, SID_OPTIONS);
+    const SfxStringItem* pFlags = SfxItemSet::GetItem<SfxStringItem>(rMedium.GetItemSet(), SID_OPTIONS, false);
     if ( !bHidden && pFlags )
     {
         OUString aFlags( pFlags->GetValue() );
diff --git a/sfx2/source/bastyp/progress.cxx b/sfx2/source/bastyp/progress.cxx
index b9af39d..148f7ae 100644
--- a/sfx2/source/bastyp/progress.cxx
+++ b/sfx2/source/bastyp/progress.cxx
@@ -280,11 +280,11 @@ bool SfxProgress::SetState
             {
                 // don't show status indicator for hidden documents (only valid while loading)
                 SfxMedium* pMedium = pObjSh->GetMedium();
-                SFX_ITEMSET_ARG(pMedium->GetItemSet(), pHiddenItem, SfxBoolItem, SID_HIDDEN);
+                const SfxBoolItem* pHiddenItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_HIDDEN, false);
                 if ( !pHiddenItem || !pHiddenItem->GetValue() )
                 {
                     {
-                        SFX_ITEMSET_ARG(pMedium->GetItemSet(), pIndicatorItem, SfxUnoAnyItem, SID_PROGRESS_STATUSBAR_CONTROL);
+                        const SfxUnoAnyItem* pIndicatorItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pMedium->GetItemSet(), SID_PROGRESS_STATUSBAR_CONTROL, false);
                         Reference< XStatusIndicator > xInd;
                         if ( pIndicatorItem && (pIndicatorItem->GetValue()>>=xInd) )
                             pImp->xStatusInd = xInd;
diff --git a/sfx2/source/control/dispatch.cxx b/sfx2/source/control/dispatch.cxx
index 353223e..31c44cd 100644
--- a/sfx2/source/control/dispatch.cxx
+++ b/sfx2/source/control/dispatch.cxx
@@ -1300,7 +1300,7 @@ void SfxDispatcher::_Update_Impl( bool bUIActive, bool bIsMDIApp, bool bIsIPOwne
             {
                 bool bViewerTbx = SFX_VISIBILITY_VIEWER == ( nPos & SFX_VISIBILITY_VIEWER );
                 SfxObjectShell* pSh = xImp->pFrame->GetObjectShell();
-                SFX_ITEMSET_ARG(pSh->GetMedium()->GetItemSet(), pItem, SfxBoolItem, SID_VIEWONLY);
+                const SfxBoolItem* pItem = SfxItemSet::GetItem<SfxBoolItem>(pSh->GetMedium()->GetItemSet(), SID_VIEWONLY, false);
                 bool bIsViewer = pItem && pItem->GetValue();
                 if ( bIsViewer != bViewerTbx )
                     continue;
diff --git a/sfx2/source/control/request.cxx b/sfx2/source/control/request.cxx
index 0ab61b5..15a8750 100644
--- a/sfx2/source/control/request.cxx
+++ b/sfx2/source/control/request.cxx
@@ -426,68 +426,6 @@ void SfxRequest::RemoveItem( sal_uInt16 nID )
     }
 }
 
-const SfxPoolItem* SfxRequest::GetItem
-(
-    const SfxItemSet* pArgs,
-    sal_uInt16            nSlotId,  // Slot-Id or Which-Id of the parameters
-    bool              bDeep,    // sal_False: do not search in the Parent-ItemSets
-    std::function<bool ( const SfxPoolItem* )> isItemType     // != 0:  check for required pool item class
-)
-
-/*  [Description]
-
-    With this method the access to individual parameters in the SfxRequest is
-    simplified. In particular the type-examination (by Assertion) is performed,
-    whereby the application source code will be much clearer. In the product-
-    version is a 0 returned, if the found item is not of the specified class.
-
-    [Example]
-
-    void MyShell::Execute( SfxRequest &rReq )
-    {
-        switch ( rReq.GetSlot() )
-        {
-            case SID_MY:
-            {
-                ...
-                // An example
-                const SfxInt32Item *pPosItem = rReq.GetArg<SfxUInt32Item>(SID_POS);
-                sal_uInt16 nPos = pPosItem ? pPosItem->GetValue() : 0;
-
-                ...
-            }
-
-            ...
-        }
-    }
-*/
-
-{
-    if ( pArgs )
-    {
-        // Which may be converted to ID
-        sal_uInt16 nWhich = pArgs->GetPool()->GetWhich(nSlotId);
-
-        // Is the item set or available at bDeep == sal_True?
-        const SfxPoolItem *pItem = 0;
-        if ( ( bDeep ? SfxItemState::DEFAULT : SfxItemState::SET )
-             <= pArgs->GetItemState( nWhich, bDeep, &pItem ) )
-        {
-            // Compare type
-            if ( !pItem || (!isItemType || isItemType(pItem)) )
-                return pItem;
-
-            // Item of wrong type => Programming error
-            OSL_FAIL(  "invalid argument type" );
-        }
-    }
-
-    // No Parameter, not found or wrong type
-    return 0;
-}
-
-
-
 void SfxRequest::SetReturnValue(const SfxPoolItem &rItem)
 {
     DBG_ASSERT(!pImp->pRetVal, "Set Return value multiple times?");
diff --git a/sfx2/source/dialog/dinfdlg.cxx b/sfx2/source/dialog/dinfdlg.cxx
index b7030c2..c66e27b 100644
--- a/sfx2/source/dialog/dinfdlg.cxx
+++ b/sfx2/source/dialog/dinfdlg.cxx
@@ -712,7 +712,7 @@ void SfxDocumentDescPage::Reset(const SfxItemSet *rSet)
     m_pKeywordsEd->SetText( m_pInfoItem->getKeywords() );
     m_pCommentEd->SetText( m_pInfoItem->getDescription() );
 
-    SFX_ITEMSET_ARG(rSet, pROItem, SfxBoolItem, SID_DOC_READONLY);
+    const SfxBoolItem* pROItem = SfxItemSet::GetItem<SfxBoolItem>(rSet, SID_DOC_READONLY, false);
     if ( pROItem && pROItem->GetValue() )
     {
         m_pTitleEd->SetReadOnly();
@@ -919,7 +919,7 @@ void SfxDocumentPage::ImplCheckPasswordState()
         SfxItemSet* pMedSet = pShell->GetMedium()->GetItemSet();
         if (!pMedSet)
             break;
-        SFX_ITEMSET_ARG(pMedSet, pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
+        const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pMedSet, SID_ENCRYPTIONDATA, false);
         uno::Sequence< beans::NamedValue > aEncryptionData;
         if (pEncryptionDataItem)
             pEncryptionDataItem->GetValue() >>= aEncryptionData;
@@ -1154,7 +1154,7 @@ SfxDocumentInfoDialog::SfxDocumentInfoDialog( vcl::Window* pParent,
         static_cast<const SfxDocumentInfoItem &>(rItemSet.Get( SID_DOCINFO ));
 
 #ifdef DBG_UTIL
-    SFX_ITEMSET_ARG(&rItemSet, pURLItem, SfxStringItem, SID_BASEURL);
+    const SfxStringItem* pURLItem = rItemSet.GetItem<SfxStringItem>(SID_BASEURL, false);
     DBG_ASSERT( pURLItem, "No BaseURL provided for InternetTabPage!" );
 #endif
 
diff --git a/sfx2/source/dialog/filedlghelper.cxx b/sfx2/source/dialog/filedlghelper.cxx
index 611e32e..638052a 100644
--- a/sfx2/source/dialog/filedlghelper.cxx
+++ b/sfx2/source/dialog/filedlghelper.cxx
@@ -1374,15 +1374,15 @@ ErrCode FileDialogHelper_Impl::execute( std::vector<OUString>& rpURLList,
         // check password checkbox if the document had password before
         if( mbHasPassword )
         {
-            SFX_ITEMSET_ARG(rpSet, pPassItem, SfxBoolItem, SID_PASSWORDINTERACTION);
+            const SfxBoolItem* pPassItem = SfxItemSet::GetItem<SfxBoolItem>(rpSet, SID_PASSWORDINTERACTION, false);
             mbPwdCheckBoxState = ( pPassItem != NULL && pPassItem->GetValue() );
 
             // in case the document has password to modify, the dialog should be shown
-            SFX_ITEMSET_ARG(rpSet, pPassToModifyItem, SfxUnoAnyItem, SID_MODIFYPASSWORDINFO);
+            const SfxUnoAnyItem* pPassToModifyItem = SfxItemSet::GetItem<SfxUnoAnyItem>(rpSet, SID_MODIFYPASSWORDINFO, false);
             mbPwdCheckBoxState |= ( pPassToModifyItem && pPassToModifyItem->GetValue().hasValue() );
         }
 
-        SFX_ITEMSET_ARG(rpSet, pSelectItem, SfxBoolItem, SID_SELECTION);
+        const SfxBoolItem* pSelectItem = SfxItemSet::GetItem<SfxBoolItem>(rpSet, SID_SELECTION, false);
         if ( pSelectItem )
             mbSelection = pSelectItem->GetValue();
         else
diff --git a/sfx2/source/dialog/versdlg.cxx b/sfx2/source/dialog/versdlg.cxx
index a72ab28..42ccd6b 100644
--- a/sfx2/source/dialog/versdlg.cxx
+++ b/sfx2/source/dialog/versdlg.cxx
@@ -445,8 +445,8 @@ IMPL_LINK_TYPED( SfxVersionDialog, ButtonHdl_Impl, Button*, pButton, void )
         aSet.Put( SfxStringItem( SID_FILE_NAME, pObjShell->GetMedium()->GetName() ) );
 
         SfxItemSet* pSet = pObjShell->GetMedium()->GetItemSet();
-        SFX_ITEMSET_ARG(pSet, pFilterItem, SfxStringItem, SID_FILTER_NAME);
-        SFX_ITEMSET_ARG(pSet, pFilterOptItem, SfxStringItem, SID_FILE_FILTEROPTIONS);
+        const SfxStringItem* pFilterItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_FILTER_NAME, false);
+        const SfxStringItem* pFilterOptItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_FILE_FILTEROPTIONS, false);
         if ( pFilterItem )
             aSet.Put( *pFilterItem );
         if ( pFilterOptItem )
diff --git a/sfx2/source/doc/docfile.cxx b/sfx2/source/doc/docfile.cxx
index 746eed2..cdd9a8a 100644
--- a/sfx2/source/doc/docfile.cxx
+++ b/sfx2/source/doc/docfile.cxx
@@ -418,7 +418,7 @@ Reference < XContent > SfxMedium::GetContent() const
         Reference < ::com::sun::star::ucb::XContent > xContent;
         Reference < ::com::sun::star::ucb::XCommandEnvironment > xEnv;
 
-        SFX_ITEMSET_ARG(pImp->m_pSet, pItem, SfxUnoAnyItem, SID_CONTENT);
+        const SfxUnoAnyItem* pItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImp->m_pSet, SID_CONTENT, false);
         if ( pItem )
             pItem->GetValue() >>= xContent;
 
@@ -712,12 +712,12 @@ bool SfxMedium::IsStorage()
 bool SfxMedium::IsPreview_Impl()
 {
     bool bPreview = false;
-    SFX_ITEMSET_ARG(GetItemSet(), pPreview, SfxBoolItem, SID_PREVIEW);
+    const SfxBoolItem* pPreview = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_PREVIEW, false);
     if ( pPreview )
         bPreview = pPreview->GetValue();
     else
     {
-        SFX_ITEMSET_ARG(GetItemSet(), pFlags, SfxStringItem, SID_OPTIONS);
+        const SfxStringItem* pFlags = SfxItemSet::GetItem<SfxStringItem>(GetItemSet(), SID_OPTIONS, false);
         if ( pFlags )
         {
             OUString aFileFlags = pFlags->GetValue();
@@ -961,7 +961,7 @@ void SfxMedium::LockOrigFileOnDemand( bool bLoading, bool bNoUI )
             if ( !bResult )
             {
                 // no read-write access is necessary on loading if the document is explicitly opened as copy
-                SFX_ITEMSET_ARG(GetItemSet(), pTemplateItem, SfxBoolItem, SID_TEMPLATE);
+                const SfxBoolItem* pTemplateItem = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_TEMPLATE, false);
                 bResult = ( bLoading && pTemplateItem && pTemplateItem->GetValue() );
             }
 
@@ -1036,7 +1036,7 @@ void SfxMedium::LockOrigFileOnDemand( bool bLoading, bool bNoUI )
             {
                 // the error should be set in case it is storing process
                 // or the document has been opened for editing explicitly
-                SFX_ITEMSET_ARG(pImp->m_pSet, pReadOnlyItem, SfxBoolItem, SID_DOC_READONLY);
+                const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImp->m_pSet, SID_DOC_READONLY, false);
 
                 if ( !bLoading || (pReadOnlyItem && !pReadOnlyItem->GetValue()) )
                     SetError( ERRCODE_IO_ACCESSDENIED, OUString( OSL_LOG_PREFIX  ) );
@@ -1073,7 +1073,7 @@ void SfxMedium::LockOrigFileOnDemand( bool bLoading, bool bNoUI )
         if ( !bResult )
         {
             // no read-write access is necessary on loading if the document is explicitly opened as copy
-            SFX_ITEMSET_ARG(GetItemSet(), pTemplateItem, SfxBoolItem, SID_TEMPLATE);
+            const SfxBoolItem* pTemplateItem = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_TEMPLATE, false);
             bResult = ( bLoading && pTemplateItem && pTemplateItem->GetValue() );
         }
 
@@ -1270,7 +1270,7 @@ void SfxMedium::LockOrigFileOnDemand( bool bLoading, bool bNoUI )
         {
             // the error should be set in case it is storing process
             // or the document has been opened for editing explicitly
-            SFX_ITEMSET_ARG(pImp->m_pSet, pReadOnlyItem, SfxBoolItem, SID_DOC_READONLY);
+            const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImp->m_pSet, SID_DOC_READONLY, false);
 
             if ( !bLoading || (pReadOnlyItem && !pReadOnlyItem->GetValue()) )
                 SetError( ERRCODE_IO_ACCESSDENIED, OUString( OSL_LOG_PREFIX  ) );
@@ -1309,7 +1309,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetStorage( bool bCreateTempIfNo )
     if ( GetError() )
         return pImp->xStorage;
 
-    SFX_ITEMSET_ARG(GetItemSet(), pRepairItem, SfxBoolItem, SID_REPAIRPACKAGE);
+    const SfxBoolItem* pRepairItem = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_REPAIRPACKAGE, false);
     if ( pRepairItem && pRepairItem->GetValue() )
     {
         // the storage should be created for repairing mode
@@ -1319,7 +1319,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetStorage( bool bCreateTempIfNo )
         Reference< ::com::sun::star::ucb::XProgressHandler > xProgressHandler;
         Reference< ::com::sun::star::task::XStatusIndicator > xStatusIndicator;
 
-        SFX_ITEMSET_ARG(GetItemSet(), pxProgressItem, SfxUnoAnyItem, SID_PROGRESS_STATUSBAR_CONTROL);
+        const SfxUnoAnyItem* pxProgressItem = SfxItemSet::GetItem<SfxUnoAnyItem>(GetItemSet(), SID_PROGRESS_STATUSBAR_CONTROL, false);
         if( pxProgressItem && ( pxProgressItem->GetValue() >>= xStatusIndicator ) )
             xProgressHandler = Reference< ::com::sun::star::ucb::XProgressHandler >(
                                     new utl::ProgressHandlerWrap( xStatusIndicator ) );
@@ -1385,7 +1385,7 @@ uno::Reference < embed::XStorage > SfxMedium::GetStorage( bool bCreateTempIfNo )
         GetVersionList();
     }
 
-    SFX_ITEMSET_ARG(pImp->m_pSet, pVersion, SfxInt16Item, SID_VERSION);
+    const SfxInt16Item* pVersion = SfxItemSet::GetItem<SfxInt16Item>(pImp->m_pSet, SID_VERSION, false);
 
     bool bResetStorage = false;
     if ( pVersion && pVersion->GetValue() )
@@ -1690,8 +1690,8 @@ bool SfxMedium::TransactedTransferForFS_Impl( const INetURLObject& aSource,
         if( ::ucbhelper::Content::create( aSource.GetMainURL( INetURLObject::NO_DECODE ), xDummyEnv, comphelper::getProcessComponentContext(), aTempCont ) )
         {
             bool bTransactStarted = false;
-            SFX_ITEMSET_ARG(GetItemSet(), pOverWrite, SfxBoolItem, SID_OVERWRITE);
-               SFX_ITEMSET_ARG(GetItemSet(), pRename, SfxBoolItem, SID_RENAME);
+            const SfxBoolItem* pOverWrite = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_OVERWRITE, false);
+               const SfxBoolItem* pRename = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_RENAME, false);
             bool bRename = pRename && pRename->GetValue();
             bool bOverWrite = pOverWrite ? pOverWrite->GetValue() : !bRename;
 
@@ -1776,14 +1776,14 @@ bool SfxMedium::TryDirectTransfer( const OUString& aURL, SfxItemSet& aTargetSet
     // if the document had no password it should be stored without password
     // if the document had password it should be stored with the same password
     // otherwise the stream copying can not be done
-    SFX_ITEMSET_ARG(&aTargetSet, pNewPassItem, SfxStringItem, SID_PASSWORD);
-    SFX_ITEMSET_ARG(GetItemSet(), pOldPassItem, SfxStringItem, SID_PASSWORD);
+    const SfxStringItem* pNewPassItem = aTargetSet.GetItem<SfxStringItem>(SID_PASSWORD, false);
+    const SfxStringItem* pOldPassItem = SfxItemSet::GetItem<SfxStringItem>(GetItemSet(), SID_PASSWORD, false);
     if ( ( !pNewPassItem && !pOldPassItem )
       || ( pNewPassItem && pOldPassItem && pNewPassItem->GetValue() == pOldPassItem->GetValue() ) )
     {
         // the filter must be the same
-        SFX_ITEMSET_ARG(&aTargetSet, pNewFilterItem, SfxStringItem, SID_FILTER_NAME);
-        SFX_ITEMSET_ARG(GetItemSet(), pOldFilterItem, SfxStringItem, SID_FILTER_NAME);
+        const SfxStringItem* pNewFilterItem = aTargetSet.GetItem<SfxStringItem>(SID_FILTER_NAME, false);
+        const SfxStringItem* pOldFilterItem = SfxItemSet::GetItem<SfxStringItem>(GetItemSet(), SID_FILTER_NAME, false);
         if ( pNewFilterItem && pOldFilterItem && pNewFilterItem->GetValue() == pOldFilterItem->GetValue() )
         {
             // get the input stream and copy it
@@ -1808,8 +1808,8 @@ bool SfxMedium::TryDirectTransfer( const OUString& aURL, SfxItemSet& aTargetSet
 
                     InsertCommandArgument aInsertArg;
                     aInsertArg.Data = xInStream;
-                       SFX_ITEMSET_ARG(&aTargetSet, pRename, SfxBoolItem, SID_RENAME);
-                       SFX_ITEMSET_ARG(&aTargetSet, pOverWrite, SfxBoolItem, SID_OVERWRITE);
+                       const SfxBoolItem* pRename = aTargetSet.GetItem<SfxBoolItem>(SID_RENAME, false);
+                       const SfxBoolItem* pOverWrite = aTargetSet.GetItem<SfxBoolItem>(SID_OVERWRITE, false);
                        if ( (pOverWrite && !pOverWrite->GetValue()) // argument says: never overwrite
                          || (pRename && pRename->GetValue()) ) // argument says: rename file
                         aInsertArg.ReplaceExisting = false;
@@ -1862,7 +1862,7 @@ void SfxMedium::Transfer_Impl()
         if (pImp->m_aLogicName.startsWith("private:stream"))
         {
             // TODO/LATER: support storing to SID_STREAM
-            SFX_ITEMSET_ARG(pImp->m_pSet, pOutStreamItem, SfxUnoAnyItem, SID_OUTPUTSTREAM);
+            const SfxUnoAnyItem* pOutStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImp->m_pSet, SID_OUTPUTSTREAM, false);
             if( pOutStreamItem && ( pOutStreamItem->GetValue() >>= rOutStream ) )
             {
                 if ( pImp->xStorage.is() )
@@ -1926,7 +1926,7 @@ void SfxMedium::Transfer_Impl()
             return;
         }
 
-        SFX_ITEMSET_ARG(GetItemSet(), pSegmentSize, SfxInt32Item, SID_SEGMENTSIZE);
+        const SfxInt32Item* pSegmentSize = SfxItemSet::GetItem<SfxInt32Item>(GetItemSet(), SID_SEGMENTSIZE, false);
         if ( pSegmentSize )
         {
             // this file must be stored into a disk spanned package
@@ -2059,8 +2059,8 @@ void SfxMedium::Transfer_Impl()
                 (void)::ucbhelper::Content::create( aSource.GetMainURL( INetURLObject::NO_DECODE ), xEnv, comphelper::getProcessComponentContext(), aSourceContent );
 
                 // check for external parameters that may customize the handling of NameClash situations
-                SFX_ITEMSET_ARG(GetItemSet(), pRename, SfxBoolItem, SID_RENAME);
-                SFX_ITEMSET_ARG(GetItemSet(), pOverWrite, SfxBoolItem, SID_OVERWRITE);
+                const SfxBoolItem* pRename = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_RENAME, false);
+                const SfxBoolItem* pOverWrite = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_OVERWRITE, false);
                 sal_Int32 nNameClash;
                 if ( pOverWrite && !pOverWrite->GetValue() )
                     // argument says: never overwrite
@@ -2081,9 +2081,9 @@ void SfxMedium::Transfer_Impl()
                     if ( IsInCheckIn( ) )
                     {
                         eOperation = ::ucbhelper::InsertOperation_CHECKIN;
-                        SFX_ITEMSET_ARG(GetItemSet(), pMajor, SfxBoolItem, SID_DOCINFO_MAJOR);
+                        const SfxBoolItem* pMajor = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_DOCINFO_MAJOR, false);
                         bMajor = pMajor && pMajor->GetValue( );
-                        SFX_ITEMSET_ARG(GetItemSet(), pComments, SfxStringItem, SID_DOCINFO_COMMENTS);
+                        const SfxStringItem* pComments = SfxItemSet::GetItem<SfxStringItem>(GetItemSet(), SID_DOCINFO_COMMENTS, false);
                         if ( pComments )
                             sComment = pComments->GetValue( );
                     }
@@ -2302,7 +2302,7 @@ void SfxMedium::GetLockingStream_Impl()
     if ( GetURLObject().GetProtocol() == INetProtocol::File
       && !pImp->m_xLockingStream.is() )
     {
-        SFX_ITEMSET_ARG(pImp->m_pSet, pWriteStreamItem, SfxUnoAnyItem, SID_STREAM);
+        const SfxUnoAnyItem* pWriteStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImp->m_pSet, SID_STREAM, false);
         if ( pWriteStreamItem )
             pWriteStreamItem->GetValue() >>= pImp->m_xLockingStream;
 
@@ -2344,8 +2344,8 @@ void SfxMedium::GetMedium_Impl()
         Reference< ::com::sun::star::task::XInteractionHandler > xInteractionHandler = GetInteractionHandler();
 
         //TODO/MBA: need support for SID_STREAM
-        SFX_ITEMSET_ARG(pImp->m_pSet, pWriteStreamItem, SfxUnoAnyItem, SID_STREAM);
-        SFX_ITEMSET_ARG(pImp->m_pSet, pInStreamItem, SfxUnoAnyItem, SID_INPUTSTREAM);
+        const SfxUnoAnyItem* pWriteStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImp->m_pSet, SID_STREAM, false);
+        const SfxUnoAnyItem* pInStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImp->m_pSet, SID_INPUTSTREAM, false);
         if ( pWriteStreamItem )
         {
             pWriteStreamItem->GetValue() >>= pImp->xStream;
@@ -2524,7 +2524,7 @@ void SfxMedium::Init_Impl()
     // TODO/LATER: handle lifetime of storages
     pImp->bDisposeStorage = false;
 
-    SFX_ITEMSET_ARG(pImp->m_pSet, pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+    const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pImp->m_pSet, SID_DOC_SALVAGE, false);
     if ( pSalvageItem && pSalvageItem->GetValue().isEmpty() )
     {
         pSalvageItem = NULL;
@@ -2567,7 +2567,7 @@ void SfxMedium::Init_Impl()
 
     // in case output stream is by mistake here
     // clear the reference
-    SFX_ITEMSET_ARG(pImp->m_pSet, pOutStreamItem, SfxUnoAnyItem, SID_OUTPUTSTREAM);
+    const SfxUnoAnyItem* pOutStreamItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pImp->m_pSet, SID_OUTPUTSTREAM, false);
     if( pOutStreamItem
      && ( !( pOutStreamItem->GetValue() >>= rOutStream )
           || !pImp->m_aLogicName.startsWith("private:stream")) )
@@ -2579,7 +2579,7 @@ void SfxMedium::Init_Impl()
     if (!pImp->m_aLogicName.isEmpty())
     {
         // if the logic name is set it should be set in MediaDescriptor as well
-        SFX_ITEMSET_ARG(pImp->m_pSet, pFileNameItem, SfxStringItem, SID_FILE_NAME);
+        const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImp->m_pSet, SID_FILE_NAME, false);
         if ( !pFileNameItem )
         {
             // let the ItemSet be created if necessary
@@ -2630,7 +2630,7 @@ SfxMedium::GetInteractionHandler( bool bGetAlways )
     if ( pImp->m_pSet )
     {
         ::com::sun::star::uno::Reference< ::com::sun::star::task::XInteractionHandler > xHandler;
-        SFX_ITEMSET_ARG(pImp->m_pSet, pHandler, SfxUnoAnyItem, SID_INTERACTIONHANDLER);
+        const SfxUnoAnyItem* pHandler = SfxItemSet::GetItem<SfxUnoAnyItem>(pImp->m_pSet, SID_INTERACTIONHANDLER, false);
         if ( pHandler && (pHandler->GetValue() >>= xHandler) && xHandler.is() )
             return xHandler;
     }
@@ -2999,7 +2999,7 @@ SfxMedium::SfxMedium( const uno::Sequence<beans::PropertyValue>& aArgs ) :
         pImp->m_pFilter = pImp->m_pCustomFilter.get();
     }
 
-    SFX_ITEMSET_ARG(pImp->m_pSet, pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+    const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pImp->m_pSet, SID_DOC_SALVAGE, false);
     if( pSalvageItem )
     {
         // QUESTION: there is some treatment of Salvage in Init_Impl; align!
@@ -3008,7 +3008,7 @@ SfxMedium::SfxMedium( const uno::Sequence<beans::PropertyValue>& aArgs ) :
             // if an URL is provided in SalvageItem that means that the FileName refers to a temporary file
             // that must be copied here
 
-            SFX_ITEMSET_ARG(pImp->m_pSet, pFileNameItem, SfxStringItem, SID_FILE_NAME);
+            const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImp->m_pSet, SID_FILE_NAME, false);
             if (!pFileNameItem) throw uno::RuntimeException();
             OUString aNewTempFileURL = SfxMedium::CreateTempCopyWithExt( pFileNameItem->GetValue() );
             if ( !aNewTempFileURL.isEmpty() )
@@ -3026,11 +3026,11 @@ SfxMedium::SfxMedium( const uno::Sequence<beans::PropertyValue>& aArgs ) :
     }
 
     bool readOnly = false;
-    SFX_ITEMSET_ARG(pImp->m_pSet, pReadOnlyItem, SfxBoolItem, SID_DOC_READONLY);
+    const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImp->m_pSet, SID_DOC_READONLY, false);
     if ( pReadOnlyItem && pReadOnlyItem->GetValue() )
         readOnly = true;
 
-    SFX_ITEMSET_ARG(pImp->m_pSet, pFileNameItem, SfxStringItem, SID_FILE_NAME);
+    const SfxStringItem* pFileNameItem = SfxItemSet::GetItem<SfxStringItem>(pImp->m_pSet, SID_FILE_NAME, false);
     if (!pFileNameItem) throw uno::RuntimeException();
     pImp->m_aLogicName = pFileNameItem->GetValue();
     pImp->m_nStorOpenMode = readOnly ? SFX_STREAM_READONLY : SFX_STREAM_READWRITE;
@@ -3341,7 +3341,7 @@ bool SfxMedium::IsReadOnly() const
     // c) the API can force the readonly state!
     if (!bReadOnly)
     {
-        SFX_ITEMSET_ARG(GetItemSet(), pItem, SfxBoolItem, SID_DOC_READONLY);
+        const SfxBoolItem* pItem = SfxItemSet::GetItem<SfxBoolItem>(GetItemSet(), SID_DOC_READONLY, false);
         if (pItem)
             bReadOnly = pItem->GetValue();
     }
@@ -3743,7 +3743,7 @@ OUString SfxMedium::SwitchDocumentToTempFile()
                 // remove the readonly state
                 bool bWasReadonly = false;
                 pImp->m_nStorOpenMode = SFX_STREAM_READWRITE;
-                SFX_ITEMSET_ARG(pImp->m_pSet, pReadOnlyItem, SfxBoolItem, SID_DOC_READONLY);
+                const SfxBoolItem* pReadOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(pImp->m_pSet, SID_DOC_READONLY, false);
                 if ( pReadOnlyItem && pReadOnlyItem->GetValue() )
                     bWasReadonly = true;
                 GetItemSet()->ClearItem( SID_DOC_READONLY );
diff --git a/sfx2/source/doc/guisaveas.cxx b/sfx2/source/doc/guisaveas.cxx
index 4c70d0c..87acdbf 100644
--- a/sfx2/source/doc/guisaveas.cxx
+++ b/sfx2/source/doc/guisaveas.cxx
@@ -1043,7 +1043,7 @@ bool ModelData_Impl::OutputFileDialog( sal_Int8 nStoreMode,
 
     // the following two arguments can not be converted in MediaDescriptor,
     // so they should be removed from the ItemSet after retrieving
-    SFX_ITEMSET_ARG(pDialogParams, pRecommendReadOnly, SfxBoolItem, SID_RECOMMENDREADONLY);
+    const SfxBoolItem* pRecommendReadOnly = SfxItemSet::GetItem<SfxBoolItem>(pDialogParams, SID_RECOMMENDREADONLY, false);
     m_bRecommendReadOnly = ( pRecommendReadOnly && pRecommendReadOnly->GetValue() );
     pDialogParams->ClearItem( SID_RECOMMENDREADONLY );
 
diff --git a/sfx2/source/doc/objcont.cxx b/sfx2/source/doc/objcont.cxx
index 0af7fe7..ce7c927 100644
--- a/sfx2/source/doc/objcont.cxx
+++ b/sfx2/source/doc/objcont.cxx
@@ -396,7 +396,7 @@ void SfxObjectShell::UpdateFromTemplate_Impl(  )
     if ( !pFile->GetFilter() || !pFile->GetFilter()->IsOwnFormat() )
         return;
 
-    SFX_ITEMSET_ARG(pFile->GetItemSet(), pUpdateDocItem, SfxUInt16Item, SID_UPDATEDOCMODE);
+    const SfxUInt16Item* pUpdateDocItem = SfxItemSet::GetItem<SfxUInt16Item>(pFile->GetItemSet(), SID_UPDATEDOCMODE, false);
     sal_Int16 bCanUpdateFromTemplate = pUpdateDocItem ? pUpdateDocItem->GetValue() : document::UpdateDocMode::NO_UPDATE;
 
     // created from template?
diff --git a/sfx2/source/doc/objmisc.cxx b/sfx2/source/doc/objmisc.cxx
index 66a4ce5..5a1b04c 100644
--- a/sfx2/source/doc/objmisc.cxx
+++ b/sfx2/source/doc/objmisc.cxx
@@ -835,7 +835,7 @@ OUString SfxObjectShell::GetTitle
 
         if ( pMed )
         {
-            SFX_ITEMSET_ARG(pMed->GetItemSet(), pNameItem, SfxStringItem, SID_DOCINFO_TITLE);
+            const SfxStringItem* pNameItem = SfxItemSet::GetItem<SfxStringItem>(pMed->GetItemSet(), SID_DOCINFO_TITLE, false);
             if ( pNameItem )
                 aTitle = pNameItem->GetValue();
         }
@@ -862,7 +862,7 @@ OUString SfxObjectShell::GetTitle
         // If a specific title was given at open:
         // important for URLs: use INetProtocol::File for which the set title is not
         // considered. (See below, analysis of aTitleMap_Impl)
-        SFX_ITEMSET_ARG(pMed->GetItemSet(), pNameItem, SfxStringItem, SID_DOCINFO_TITLE);
+        const SfxStringItem* pNameItem = SfxItemSet::GetItem<SfxStringItem>(pMed->GetItemSet(), SID_DOCINFO_TITLE, false);
         if ( pNameItem )
             return X( pNameItem->GetValue() );
     }
@@ -1024,7 +1024,7 @@ void SfxObjectShell::PostActivateEvent_Impl( SfxViewFrame* pFrame )
     SfxApplication* pSfxApp = SfxGetpApp();
     if ( !pSfxApp->IsDowning() && !IsLoading() && pFrame && !pFrame->GetFrame().IsClosing_Impl() )
     {
-        SFX_ITEMSET_ARG(pMedium->GetItemSet(), pHiddenItem, SfxBoolItem, SID_HIDDEN);
+        const SfxBoolItem* pHiddenItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_HIDDEN, false);
         if ( !pHiddenItem || !pHiddenItem->GetValue() )
         {
             sal_uInt16 nId = pImp->nEventId;
@@ -1162,7 +1162,7 @@ void SfxObjectShell::InitOwnModel_Impl()
 {
     if ( !pImp->bModelInitialized )
     {
-        SFX_ITEMSET_ARG(pMedium->GetItemSet(), pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+        const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pMedium->GetItemSet(), SID_DOC_SALVAGE, false);
         if ( pSalvageItem )
         {
             pImp->aTempName = pMedium->GetPhysicalName();
@@ -1197,7 +1197,7 @@ void SfxObjectShell::InitOwnModel_Impl()
 void SfxObjectShell::FinishedLoading( SfxLoadedFlags nFlags )
 {
     bool bSetModifiedTRUE = false;
-    SFX_ITEMSET_ARG(pMedium->GetItemSet(), pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+    const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pMedium->GetItemSet(), SID_DOC_SALVAGE, false);
     if( ( nFlags & SfxLoadedFlags::MAINDOCUMENT ) && !(pImp->nLoadedFlags & SfxLoadedFlags::MAINDOCUMENT )
         && !(pImp->nFlagsInProgress & SfxLoadedFlags::MAINDOCUMENT ))
     {
@@ -1258,7 +1258,7 @@ void SfxObjectShell::FinishedLoading( SfxLoadedFlags nFlags )
 
         if ( (pImp->nLoadedFlags & SfxLoadedFlags::MAINDOCUMENT ) && (pImp->nLoadedFlags & SfxLoadedFlags::IMAGES ) )
         {
-            SFX_ITEMSET_ARG(pMedium->GetItemSet(), pTemplateItem, SfxBoolItem, SID_TEMPLATE);
+            const SfxBoolItem* pTemplateItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_TEMPLATE, false);
             bool bTemplate = pTemplateItem && pTemplateItem->GetValue();
 
             // closing the streams on loading should be under control of SFX!
@@ -1296,7 +1296,7 @@ void SfxObjectShell::TemplateDisconnectionAfterLoad()
     if ( pTmpMedium )
     {
         OUString aName( pTmpMedium->GetName() );
-        SFX_ITEMSET_ARG(pTmpMedium->GetItemSet(), pTemplNamItem, SfxStringItem, SID_TEMPLATE_NAME);
+        const SfxStringItem* pTemplNamItem = SfxItemSet::GetItem<SfxStringItem>(pTmpMedium->GetItemSet(), SID_TEMPLATE_NAME, false);
         OUString aTemplateName;
         if ( pTemplNamItem )
             aTemplateName = pTemplNamItem->GetValue();
@@ -1342,7 +1342,7 @@ void SfxObjectShell::TemplateDisconnectionAfterLoad()
             assert(pMedium != 0);
             if( ok )
             {
-                SFX_ITEMSET_ARG(pMedium->GetItemSet(), pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+                const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pMedium->GetItemSet(), SID_DOC_SALVAGE, false);
                 bool bSalvage = pSalvageItem != nullptr;
 
                 if ( !bSalvage )
@@ -1685,7 +1685,7 @@ bool SfxObjectShell::IsPreview() const
         return false;
 
     bool bPreview = false;
-    SFX_ITEMSET_ARG(pMedium->GetItemSet(), pFlags, SfxStringItem, SID_OPTIONS);
+    const SfxStringItem* pFlags = SfxItemSet::GetItem<SfxStringItem>(pMedium->GetItemSet(), SID_OPTIONS, false);
     if ( pFlags )
     {
         // Distributed values among individual items
@@ -1697,7 +1697,7 @@ bool SfxObjectShell::IsPreview() const
 
     if ( !bPreview )
     {
-        SFX_ITEMSET_ARG(pMedium->GetItemSet(), pItem, SfxBoolItem, SID_PREVIEW);
+        const SfxBoolItem* pItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_PREVIEW, false);
         if ( pItem )
             bPreview = pItem->GetValue();
     }
@@ -1750,7 +1750,7 @@ vcl::Window* SfxObjectShell::GetDialogParent( SfxMedium* pLoadingMedium )
 {
     vcl::Window* pWindow = 0;
     SfxItemSet* pSet = pLoadingMedium ? pLoadingMedium->GetItemSet() : GetMedium()->GetItemSet();
-    SFX_ITEMSET_ARG(pSet, pUnoItem, SfxUnoFrameItem, SID_FILLFRAME);
+    const SfxUnoFrameItem* pUnoItem = SfxItemSet::GetItem<SfxUnoFrameItem>(pSet, SID_FILLFRAME, false);
     if ( pUnoItem )
     {
         uno::Reference < frame::XFrame > xFrame( pUnoItem->GetFrame() );
@@ -1760,7 +1760,7 @@ vcl::Window* SfxObjectShell::GetDialogParent( SfxMedium* pLoadingMedium )
     if ( !pWindow )
     {
         SfxFrame* pFrame = 0;
-        SFX_ITEMSET_ARG(pSet, pFrameItem, SfxFrameItem, SID_DOCFRAME);
+        const SfxFrameItem* pFrameItem = SfxItemSet::GetItem<SfxFrameItem>(pSet, SID_DOCFRAME, false);
         if( pFrameItem && pFrameItem->GetFrame() )
             // get target frame from ItemSet
             pFrame = pFrameItem->GetFrame();
@@ -1783,7 +1783,7 @@ vcl::Window* SfxObjectShell::GetDialogParent( SfxMedium* pLoadingMedium )
     if ( pWindow )
     {
         // this frame may be invisible, show it if it is allowed
-        SFX_ITEMSET_ARG(pSet, pHiddenItem, SfxBoolItem, SID_HIDDEN);
+        const SfxBoolItem* pHiddenItem = SfxItemSet::GetItem<SfxBoolItem>(pSet, SID_HIDDEN, false);
         if ( !pHiddenItem || !pHiddenItem->GetValue() )
         {
             pWindow->Show();
@@ -1861,7 +1861,7 @@ sal_Int16 SfxObjectShell_Impl::getCurrentMacroExecMode() const
     OSL_PRECOND( pMedium, "SfxObjectShell_Impl::getCurrentMacroExecMode: no medium!" );
     if ( pMedium )
     {
-        SFX_ITEMSET_ARG(pMedium->GetItemSet(), pMacroModeItem, SfxUInt16Item, SID_MACROEXECMODE);
+        const SfxUInt16Item* pMacroModeItem = SfxItemSet::GetItem<SfxUInt16Item>(pMedium->GetItemSet(), SID_MACROEXECMODE, false);
         if ( pMacroModeItem )
             nImposedExecMode = pMacroModeItem->GetValue();
     }
diff --git a/sfx2/source/doc/objserv.cxx b/sfx2/source/doc/objserv.cxx
index 27fc315..1e7164a 100644
--- a/sfx2/source/doc/objserv.cxx
+++ b/sfx2/source/doc/objserv.cxx
@@ -277,14 +277,14 @@ bool SfxObjectShell::APISaveAs_Impl
     if ( GetMedium() )
     {
         OUString aFilterName;
-        SFX_ITEMSET_ARG(aParams, pFilterNameItem, SfxStringItem, SID_FILTER_NAME);
+        const SfxStringItem* pFilterNameItem = SfxItemSet::GetItem<SfxStringItem>(aParams, SID_FILTER_NAME, false);
         if( pFilterNameItem )
         {
             aFilterName = pFilterNameItem->GetValue();
         }
         else
         {
-            SFX_ITEMSET_ARG(aParams, pContentTypeItem, SfxStringItem, SID_CONTENTTYPE);
+            const SfxStringItem* pContentTypeItem = SfxItemSet::GetItem<SfxStringItem>(aParams, SID_CONTENTTYPE, false);
             if ( pContentTypeItem )
             {
                 const SfxFilter* pFilter = SfxFilterMatcher( OUString::createFromAscii(GetFactory().GetShortName()) ).GetFilter4Mime( pContentTypeItem->GetValue(), SfxFilterFlags::EXPORT );
@@ -310,7 +310,7 @@ bool SfxObjectShell::APISaveAs_Impl
             SfxObjectShellRef xLock( this ); // ???
 
             // use the title that is provided in the media descriptor
-            SFX_ITEMSET_ARG(aParams, pDocTitleItem, SfxStringItem, SID_DOCINFO_TITLE);
+            const SfxStringItem* pDocTitleItem = SfxItemSet::GetItem<SfxStringItem>(aParams, SID_DOCINFO_TITLE, false);
             if ( pDocTitleItem )
                 getDocProperties()->setTitle( pDocTitleItem->GetValue() );
 
@@ -503,7 +503,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
                 ScopedVclPtr<SfxDocumentInfoDialog> pDlg(CreateDocumentInfoDialog(0, aSet));
                 if ( RET_OK == pDlg->Execute() )
                 {
-                    SFX_ITEMSET_ARG(pDlg->GetOutputItemSet(), pDocInfoItem, SfxDocumentInfoItem, SID_DOCINFO);
+                    const SfxDocumentInfoItem* pDocInfoItem = SfxItemSet::GetItem<SfxDocumentInfoItem>(pDlg->GetOutputItemSet(), SID_DOCINFO, false);
                     if ( pDocInfoItem )
                     {
                         // user has done some changes to DocumentInfo
@@ -565,7 +565,7 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
                 if ( nId == SID_SAVEASDOC || nId == SID_SAVEASREMOTE )
                 {
                     // in case of plugin mode the SaveAs operation means SaveTo
-                    SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pViewOnlyItem, SfxBoolItem, SID_VIEWONLY);
+                    const SfxBoolItem* pViewOnlyItem = SfxItemSet::GetItem<SfxBoolItem>(GetMedium()->GetItemSet(), SID_VIEWONLY, false);
                     if ( pViewOnlyItem && pViewOnlyItem->GetValue() )
                         rReq.AppendItem( SfxBoolItem( SID_SAVETO, true ) );
                 }
@@ -636,8 +636,8 @@ void SfxObjectShell::ExecFile_Impl(SfxRequest &rReq)
 
 
                 bool bPreselectPassword = false;
-                SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pOldEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
-                SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pOldPasswordItem, SfxStringItem, SID_PASSWORD);
+                const SfxUnoAnyItem* pOldEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(GetMedium()->GetItemSet(), SID_ENCRYPTIONDATA, false);
+                const SfxStringItem* pOldPasswordItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium()->GetItemSet(), SID_PASSWORD, false);
                 if ( pOldEncryptionDataItem || pOldPasswordItem )
                     bPreselectPassword = true;
 
diff --git a/sfx2/source/doc/objstor.cxx b/sfx2/source/doc/objstor.cxx
index 8998ace..5e39ce7 100644
--- a/sfx2/source/doc/objstor.cxx
+++ b/sfx2/source/doc/objstor.cxx
@@ -188,7 +188,7 @@ bool GetEncryptionData_Impl( const SfxItemSet* pSet, uno::Sequence< beans::Named
     bool bResult = false;
     if ( pSet )
     {
-        SFX_ITEMSET_ARG(pSet, pEncryptionDataItem, SfxUnoAnyItem, SID_ENCRYPTIONDATA);
+        const SfxUnoAnyItem* pEncryptionDataItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pSet, SID_ENCRYPTIONDATA, false);
         if ( pEncryptionDataItem )
         {
             pEncryptionDataItem->GetValue() >>= o_rEncryptionData;
@@ -196,7 +196,7 @@ bool GetEncryptionData_Impl( const SfxItemSet* pSet, uno::Sequence< beans::Named
         }
         else
         {
-            SFX_ITEMSET_ARG(pSet, pPasswordItem, SfxStringItem, SID_PASSWORD);
+            const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_PASSWORD, false);
             if ( pPasswordItem )
             {
                 OUString aPassword = pPasswordItem->GetValue();
@@ -639,15 +639,15 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed )
     SfxItemSet* pSet = pMedium->GetItemSet();
     if( !pImp->nEventId )
     {
-        SFX_ITEMSET_ARG(pSet, pTemplateItem, SfxBoolItem, SID_TEMPLATE);
+        const SfxBoolItem* pTemplateItem = SfxItemSet::GetItem<SfxBoolItem>(pSet, SID_TEMPLATE, false);
         SetActivateEvent_Impl(
             ( pTemplateItem && pTemplateItem->GetValue() )
             ? SFX_EVENT_CREATEDOC : SFX_EVENT_OPENDOC );
     }
 
-    SFX_ITEMSET_ARG(pSet, pBaseItem, SfxStringItem, SID_BASEURL);
+    const SfxStringItem* pBaseItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_BASEURL, false);
     OUString aBaseURL;
-    SFX_ITEMSET_ARG(pMedium->GetItemSet(), pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+    const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pMedium->GetItemSet(), SID_DOC_SALVAGE, false);
     if( pBaseItem )
         aBaseURL = pBaseItem->GetValue();
     else
@@ -694,7 +694,7 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed )
             try
             {
                 bool bWarnMediaTypeFallback = false;
-                SFX_ITEMSET_ARG(pMedium->GetItemSet(), pRepairPackageItem, SfxBoolItem, SID_REPAIRPACKAGE);
+                const SfxBoolItem* pRepairPackageItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_REPAIRPACKAGE, false);
 
                 // treat the package as broken if the mediatype was retrieved as a fallback
                 uno::Reference< beans::XPropertySet > xStorProps( xStorage, uno::UNO_QUERY_THROW );
@@ -729,7 +729,7 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed )
                 if ( bOk )
                 {
                     // the document loaded from template has no name
-                    SFX_ITEMSET_ARG(pMedium->GetItemSet(), pTemplateItem, SfxBoolItem, SID_TEMPLATE);
+                    const SfxBoolItem* pTemplateItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_TEMPLATE, false);
                     if ( !pTemplateItem || !pTemplateItem->GetValue() )
                         bHasName = true;
                 }
@@ -849,9 +849,9 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed )
 
         if ( SfxObjectCreateMode::EMBEDDED != eCreateMode )
         {
-            SFX_ITEMSET_ARG(pMedium->GetItemSet(), pAsTempItem, SfxBoolItem, SID_TEMPLATE);
-            SFX_ITEMSET_ARG(pMedium->GetItemSet(), pPreviewItem, SfxBoolItem, SID_PREVIEW);
-            SFX_ITEMSET_ARG(pMedium->GetItemSet(), pHiddenItem, SfxBoolItem, SID_HIDDEN);
+            const SfxBoolItem* pAsTempItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_TEMPLATE, false);
+            const SfxBoolItem* pPreviewItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_PREVIEW, false);
+            const SfxBoolItem* pHiddenItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_HIDDEN, false);
             if( bOk && !pMedium->GetOrigURL().isEmpty()
             && !( pAsTempItem && pAsTempItem->GetValue() )
             && !( pPreviewItem && pPreviewItem->GetValue() )
@@ -861,7 +861,7 @@ bool SfxObjectShell::DoLoad( SfxMedium *pMed )
             }
         }
 
-        SFX_ITEMSET_ARG(pMedium->GetItemSet(), pDdeReconnectItem, SfxBoolItem, SID_DDE_RECONNECT_ONLOAD);
+        const SfxBoolItem* pDdeReconnectItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_DDE_RECONNECT_ONLOAD, false);
 
         bool bReconnectDde = true; // by default, we try to auto-connect DDE connections.
         if (pDdeReconnectItem)
@@ -884,8 +884,8 @@ sal_uInt32 SfxObjectShell::HandleFilter( SfxMedium* pMedium, SfxObjectShell* pDo
 {
     sal_uInt32 nError = ERRCODE_NONE;
     SfxItemSet* pSet = pMedium->GetItemSet();
-    SFX_ITEMSET_ARG(pSet, pOptions, SfxStringItem, SID_FILE_FILTEROPTIONS);
-    SFX_ITEMSET_ARG(pSet, pData, SfxUnoAnyItem, SID_FILTER_DATA);
+    const SfxStringItem* pOptions = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_FILE_FILTEROPTIONS, false);
+    const SfxUnoAnyItem* pData = SfxItemSet::GetItem<SfxUnoAnyItem>(pSet, SID_FILTER_DATA, false);
     if ( !pData && !pOptions )
     {
         com::sun::star::uno::Reference< XMultiServiceFactory > xServiceManager = ::comphelper::getProcessServiceFactory();
@@ -942,11 +942,11 @@ sal_uInt32 SfxObjectShell::HandleFilter( SfxMedium* pMedium, SfxObjectShell* pDo
                                                             aNewParams,
                                                             NULL );
 
-                                            SFX_ITEMSET_ARG(&aNewParams, pFilterOptions, SfxStringItem, SID_FILE_FILTEROPTIONS);
+                                            const SfxStringItem* pFilterOptions = aNewParams.GetItem<SfxStringItem>(SID_FILE_FILTEROPTIONS, false);
                                             if ( pFilterOptions )
                                                 pSet->Put( *pFilterOptions );
 
-                                            SFX_ITEMSET_ARG(&aNewParams, pFilterData, SfxUnoAnyItem, SID_FILTER_DATA);
+                                            const SfxUnoAnyItem* pFilterData = aNewParams.GetItem<SfxUnoAnyItem>(SID_FILTER_DATA, false);
                                             if ( pFilterData )
                                                 pSet->Put( *pFilterData );
                                     }
@@ -1191,7 +1191,7 @@ bool SfxObjectShell::SaveTo_Impl
     SfxItemSet *pMedSet = rMedium.GetItemSet();
     if( pMedSet )
     {
-        SFX_ITEMSET_ARG(pMedSet, pSaveToItem, SfxBoolItem, SID_SAVETO);
+        const SfxBoolItem* pSaveToItem = SfxItemSet::GetItem<SfxBoolItem>(pMedSet, SID_SAVETO, false);
         bCopyTo =   GetCreateMode() == SfxObjectCreateMode::EMBEDDED ||
                     (pSaveToItem && pSaveToItem->GetValue());
     }
@@ -1415,9 +1415,7 @@ bool SfxObjectShell::SaveTo_Impl
 
         pFilter = rMedium.GetFilter();
 
-        const SfxStringItem *pVersionItem = ( !rMedium.IsInCheckIn( ) && pSet )
-                ? static_cast<const SfxStringItem*>( SfxRequest::GetItem( pSet, SID_DOCINFO_COMMENTS, false, checkSfxPoolItem< SfxStringItem > ) )
-                : NULL;
+        const SfxStringItem *pVersionItem = !rMedium.IsInCheckIn()? SfxItemSet::GetItem<SfxStringItem>(pSet, SID_DOCINFO_COMMENTS, false): nullptr;
         OUString aTmpVersionURL;
 
         if ( bOk )
@@ -1505,9 +1503,7 @@ bool SfxObjectShell::SaveTo_Impl
             if ( bOk && pVersionItem && !rMedium.IsInCheckIn() )
             {
                 // store a version also
-                const SfxStringItem *pAuthorItem = pSet
-                    ? static_cast<const SfxStringItem*>( SfxRequest::GetItem( pSet, SID_DOCINFO_AUTHOR, false, checkSfxPoolItem< SfxStringItem > ) )
-                    : NULL;
+                const SfxStringItem *pAuthorItem = SfxItemSet::GetItem<SfxStringItem>(pSet, SID_DOCINFO_AUTHOR, false);
 
                 // version comment
                 util::RevisionTag aInfo;
@@ -2526,7 +2522,7 @@ bool SfxObjectShell::DoSave_Impl( const SfxItemSet* pArgs )
     // an interaction handler here can acquire only in case of GUI Saving
     // and should be removed after the saving is done
     com::sun::star::uno::Reference< XInteractionHandler > xInteract;
-    SFX_ITEMSET_ARG(pArgs, pxInteractionItem, SfxUnoAnyItem, SID_INTERACTIONHANDLER);
+    const SfxUnoAnyItem* pxInteractionItem = SfxItemSet::GetItem<SfxUnoAnyItem>(pArgs, SID_INTERACTIONHANDLER, false);
     if ( pxInteractionItem && ( pxInteractionItem->GetValue() >>= xInteract ) && xInteract.is() )
         pMediumTmp->GetItemSet()->Put( SfxUnoAnyItem( SID_INTERACTIONHANDLER, makeAny( xInteract ) ) );
 
@@ -2583,10 +2579,10 @@ bool SfxObjectShell::Save_Impl( const SfxItemSet* pSet )
 
     pImp->bIsSaving = true;
     bool bSaved = false;
-    SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+    const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium()->GetItemSet(), SID_DOC_SALVAGE, false);
     if ( pSalvageItem )
     {
-        SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pFilterItem, SfxStringItem, SID_FILTER_NAME);
+        const SfxStringItem* pFilterItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium()->GetItemSet(), SID_FILTER_NAME, false);
         OUString aFilterName;
         const SfxFilter *pFilter = NULL;
         if ( pFilterItem )
@@ -2595,7 +2591,7 @@ bool SfxObjectShell::Save_Impl( const SfxItemSet* pSet )
         SfxMedium *pMed = new SfxMedium(
             pSalvageItem->GetValue(), STREAM_READWRITE | StreamMode::SHARE_DENYWRITE | StreamMode::TRUNC, pFilter );
 
-        SFX_ITEMSET_ARG(GetMedium()->GetItemSet(), pPasswordItem, SfxStringItem, SID_PASSWORD);
+        const SfxStringItem* pPasswordItem = SfxItemSet::GetItem<SfxStringItem>(GetMedium()->GetItemSet(), SID_PASSWORD, false);
         if ( pPasswordItem )
             pMed->GetItemSet()->Put( *pPasswordItem );
 
@@ -2651,7 +2647,7 @@ bool SfxObjectShell::CommonSaveAs_Impl
     DBG_ASSERT( aURL.GetProtocol() != INetProtocol::NotValid, "Illegal URL!" );
     DBG_ASSERT( aParams->Count() != 0, "Incorrect Parameter");
 
-    SFX_ITEMSET_ARG(aParams, pSaveToItem, SfxBoolItem, SID_SAVETO);
+    const SfxBoolItem* pSaveToItem = SfxItemSet::GetItem<SfxBoolItem>(aParams, SID_SAVETO, false);
     bool bSaveTo = pSaveToItem && pSaveToItem->GetValue();
 
     const SfxFilter* pFilter = GetFactory().GetFilterContainer()->GetFilter4FilterName( aFilterName );
@@ -2663,7 +2659,7 @@ bool SfxObjectShell::CommonSaveAs_Impl
         return false;
     }
 
-    SFX_ITEMSET_ARG(aParams, pCopyStreamItem, SfxBoolItem, SID_COPY_STREAM_IF_POSSIBLE);
+    const SfxBoolItem* pCopyStreamItem = SfxItemSet::GetItem<SfxBoolItem>(aParams, SID_COPY_STREAM_IF_POSSIBLE, false);
     if ( bSaveTo && pCopyStreamItem && pCopyStreamItem->GetValue() && !IsModified() )
     {
         if ( pMedium->TryDirectTransfer( aURL.GetMainURL( INetURLObject::NO_DECODE ), *aParams ) )
@@ -2821,7 +2817,7 @@ bool SfxObjectShell::PreDoSaveAs_Impl
     }
 
     // check if a "SaveTo" is wanted, no "SaveAs"
-    SFX_ITEMSET_ARG(pParams, pSaveToItem, SfxBoolItem, SID_SAVETO);
+    const SfxBoolItem* pSaveToItem = SfxItemSet::GetItem<SfxBoolItem>(pParams, SID_SAVETO, false);
     bool bCopyTo = GetCreateMode() == SfxObjectCreateMode::EMBEDDED || (pSaveToItem && pSaveToItem->GetValue());
 
     // distinguish between "Save" and "SaveAs"
@@ -3047,7 +3043,7 @@ bool SfxObjectShell::LoadOwnFormat( SfxMedium& rMedium )
     if ( xStorage.is() )
     {
         // Password
-        SFX_ITEMSET_ARG(rMedium.GetItemSet(), pPasswdItem, SfxStringItem, SID_PASSWORD);
+        const SfxStringItem* pPasswdItem = SfxItemSet::GetItem<SfxStringItem>(rMedium.GetItemSet(), SID_PASSWORD, false);
         if ( pPasswdItem || ERRCODE_IO_ABORT != CheckPasswd_Impl( this, SfxGetpApp()->GetPool(), pMedium ) )
         {
             uno::Sequence< beans::NamedValue > aEncryptionData;
diff --git a/sfx2/source/doc/objxtor.cxx b/sfx2/source/doc/objxtor.cxx
index 1a8c6c7..e5207d0 100644
--- a/sfx2/source/doc/objxtor.cxx
+++ b/sfx2/source/doc/objxtor.cxx
@@ -1105,8 +1105,8 @@ Reference<lang::XComponent> SfxObjectShell::CreateAndLoadComponent( const SfxIte
 {
     uno::Sequence < beans::PropertyValue > aProps;
     TransformItems( SID_OPENDOC, rSet, aProps );
-    SFX_ITEMSET_ARG(&rSet, pFileNameItem, SfxStringItem, SID_FILE_NAME);
-    SFX_ITEMSET_ARG(&rSet, pTargetItem, SfxStringItem, SID_TARGETNAME);
+    const SfxStringItem* pFileNameItem = rSet.GetItem<SfxStringItem>(SID_FILE_NAME, false);
+    const SfxStringItem* pTargetItem = rSet.GetItem<SfxStringItem>(SID_TARGETNAME, false);
     OUString aURL;
     OUString aTarget("_blank");
     if ( pFileNameItem )
diff --git a/sfx2/source/doc/sfxbasemodel.cxx b/sfx2/source/doc/sfxbasemodel.cxx
index a0d2d7d..ed11d79 100644
--- a/sfx2/source/doc/sfxbasemodel.cxx
+++ b/sfx2/source/doc/sfxbasemodel.cxx
@@ -940,12 +940,12 @@ sal_Bool SAL_CALL SfxBaseModel::attachResource( const   OUString&
             aSet.ClearItem( SID_FILLFRAME );
 
             pMedium->GetItemSet()->Put( aSet );
-            SFX_ITEMSET_ARG(&aSet, pItem, SfxStringItem, SID_FILTER_NAME);
+            const SfxStringItem* pItem = aSet.GetItem<SfxStringItem>(SID_FILTER_NAME, false);
             if ( pItem )
                 pMedium->SetFilter(
                     pObjectShell->GetFactory().GetFilterContainer()->GetFilter4FilterName( pItem->GetValue() ) );
 
-            SFX_ITEMSET_ARG(&aSet, pTitleItem, SfxStringItem, SID_DOCINFO_TITLE);
+            const SfxStringItem* pTitleItem = aSet.GetItem<SfxStringItem>(SID_DOCINFO_TITLE, false);
             if ( pTitleItem )
             {
                 SfxViewFrame* pFrame = SfxViewFrame::GetFirst( pObjectShell );
@@ -1669,7 +1669,7 @@ void SAL_CALL SfxBaseModel::storeAsURL( const   OUString&                   rURL
         loadCmisProperties( );
 
 #if OSL_DEBUG_LEVEL > 0
-        SFX_ITEMSET_ARG(m_pData->m_pObjectShell->GetMedium()->GetItemSet(), pPasswdItem, SfxStringItem, SID_PASSWORD);
+        const SfxStringItem* pPasswdItem = SfxItemSet::GetItem<SfxStringItem>(m_pData->m_pObjectShell->GetMedium()->GetItemSet(), SID_PASSWORD, false);
         OSL_ENSURE( !pPasswdItem, "There should be no Password property in the document MediaDescriptor!" );
 #endif
     }
@@ -1799,7 +1799,7 @@ void setUpdatePickList( SfxMedium* pMedium )
         return;
 
     bool bHidden = false;
-    SFX_ITEMSET_ARG(pMedium->GetItemSet(), pHidItem, SfxBoolItem, SID_HIDDEN);
+    const SfxBoolItem* pHidItem = SfxItemSet::GetItem<SfxBoolItem>(pMedium->GetItemSet(), SID_HIDDEN, false);
     if (pHidItem)
         bHidden = pHidItem->GetValue();
 
@@ -1843,7 +1843,7 @@ void SAL_CALL SfxBaseModel::load(   const Sequence< beans::PropertyValue >& seqA
     }
 
     OUString aFilterName;
-    SFX_ITEMSET_ARG(pMedium->GetItemSet(), pFilterNameItem, SfxStringItem, SID_FILTER_NAME);
+    const SfxStringItem* pFilterNameItem = SfxItemSet::GetItem<SfxStringItem>(pMedium->GetItemSet(), SID_FILTER_NAME, false);
     if( pFilterNameItem )
         aFilterName = pFilterNameItem->GetValue();
     if( !m_pData->m_pObjectShell->GetFactory().GetFilterContainer()->GetFilter4FilterName( aFilterName ) )
@@ -1853,7 +1853,7 @@ void SAL_CALL SfxBaseModel::load(   const Sequence< beans::PropertyValue >& seqA
         throw frame::IllegalArgumentIOException();
     }
 
-    SFX_ITEMSET_ARG(pMedium->GetItemSet(), pSalvageItem, SfxStringItem, SID_DOC_SALVAGE);
+    const SfxStringItem* pSalvageItem = SfxItemSet::GetItem<SfxStringItem>(pMedium->GetItemSet(), SID_DOC_SALVAGE, false);
     bool bSalvage = pSalvageItem != nullptr;
 
     // load document
@@ -1868,7 +1868,7 @@ void SAL_CALL SfxBaseModel::load(   const Sequence< beans::PropertyValue >& seqA
         if ( nError == ERRCODE_IO_BROKENPACKAGE && xHandler.is() )
         {
             OUString aDocName = pMedium->GetURLObject().getName( INetURLObject::LAST_SEGMENT, true, INetURLObject::DECODE_WITH_CHARSET );
-            SFX_ITEMSET_ARG(pMedium->GetItemSet(), pRepairItem, SfxBoolItem, SID_REPAIRPACKAGE);

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list