[Libreoffice-commits] core.git: basic/source connectivity/source cui/source dbaccess/source editeng/source idl/inc idl/source include/editeng include/sfx2 include/tools sc/qa sc/source sd/source sfx2/source sot/source starmath/source svl/source sw/inc sw/source vcl/source

Oliver Specht oliver.specht at cib.de
Tue Oct 6 00:30:43 PDT 2015


 basic/source/classes/sb.cxx                                        |    4 
 basic/source/classes/sbxmod.cxx                                    |    4 
 basic/source/comp/parser.cxx                                       |    2 
 basic/source/runtime/methods.cxx                                   |   10 -
 basic/source/runtime/runtime.cxx                                   |   18 +-
 basic/source/sbx/sbxobj.cxx                                        |    4 
 basic/source/sbx/sbxvar.cxx                                        |    2 
 connectivity/source/drivers/dbase/DIndexIter.cxx                   |    8 -
 cui/source/tabpages/backgrnd.cxx                                   |    9 -
 dbaccess/source/ui/dlg/DbAdminImpl.cxx                             |   15 +-
 editeng/source/editeng/editdoc.cxx                                 |   10 -
 editeng/source/editeng/editeng.cxx                                 |    4 
 editeng/source/outliner/outlin2.cxx                                |    4 
 idl/inc/basobj.hxx                                                 |   10 +
 idl/source/objects/basobj.cxx                                      |    2 
 idl/source/objects/object.cxx                                      |    2 
 include/editeng/editeng.hxx                                        |    7 -
 include/editeng/outliner.hxx                                       |    2 
 include/sfx2/objsh.hxx                                             |    9 +
 include/sfx2/request.hxx                                           |   18 +-
 include/sfx2/viewsh.hxx                                            |   11 +
 include/tools/pstm.hxx                                             |    2 
 sc/qa/unit/ucalc.cxx                                               |    5 
 sc/source/core/data/documen8.cxx                                   |   22 +--
 sc/source/core/data/documen9.cxx                                   |    2 
 sc/source/core/data/document.cxx                                   |    2 
 sc/source/core/data/drwlayer.cxx                                   |    6 
 sc/source/core/data/stlpool.cxx                                    |    2 
 sc/source/core/data/table5.cxx                                     |    2 
 sc/source/core/data/validat.cxx                                    |    2 
 sc/source/core/tool/compiler.cxx                                   |    2 
 sc/source/core/tool/detfunc.cxx                                    |    8 -
 sc/source/core/tool/editutil.cxx                                   |    2 
 sc/source/core/tool/interpr2.cxx                                   |    2 
 sc/source/core/tool/interpr4.cxx                                   |    6 
 sc/source/filter/excel/xehelper.cxx                                |   16 +-
 sc/source/filter/html/htmlexp.cxx                                  |    2 
 sc/source/filter/xcl97/xcl97esc.cxx                                |    2 
 sc/source/ui/app/client.cxx                                        |    8 -
 sc/source/ui/app/drwtrans.cxx                                      |    6 
 sc/source/ui/app/inputhdl.cxx                                      |    6 
 sc/source/ui/app/inputwin.cxx                                      |   25 +--
 sc/source/ui/app/scmod.cxx                                         |   41 ++----
 sc/source/ui/app/seltrans.cxx                                      |    2 
 sc/source/ui/cctrl/tbzoomsliderctrl.cxx                            |    4 
 sc/source/ui/dbgui/scuiimoptdlg.cxx                                |    2 
 sc/source/ui/docshell/arealink.cxx                                 |    2 
 sc/source/ui/docshell/docfunc.cxx                                  |    2 
 sc/source/ui/docshell/docsh.cxx                                    |    4 
 sc/source/ui/docshell/docsh3.cxx                                   |    2 
 sc/source/ui/docshell/docsh4.cxx                                   |   20 +-
 sc/source/ui/docshell/docsh6.cxx                                   |    4 
 sc/source/ui/docshell/externalrefmgr.cxx                           |   10 -
 sc/source/ui/docshell/impex.cxx                                    |    8 -
 sc/source/ui/docshell/servobj.cxx                                  |    2 
 sc/source/ui/docshell/tablink.cxx                                  |    5 
 sc/source/ui/docshell/tpstat.cxx                                   |    2 
 sc/source/ui/drawfunc/chartsh.cxx                                  |    4 
 sc/source/ui/drawfunc/drawsh2.cxx                                  |    2 
 sc/source/ui/drawfunc/drawsh5.cxx                                  |    4 
 sc/source/ui/drawfunc/drtxtob.cxx                                  |   12 -
 sc/source/ui/drawfunc/fuconarc.cxx                                 |    2 
 sc/source/ui/drawfunc/fuconpol.cxx                                 |    2 
 sc/source/ui/drawfunc/fuconrec.cxx                                 |    6 
 sc/source/ui/drawfunc/fuconstr.cxx                                 |    2 
 sc/source/ui/drawfunc/fudraw.cxx                                   |    4 
 sc/source/ui/drawfunc/fuins1.cxx                                   |    2 
 sc/source/ui/drawfunc/fuins2.cxx                                   |    4 
 sc/source/ui/drawfunc/fusel.cxx                                    |    2 
 sc/source/ui/drawfunc/futext.cxx                                   |    6 
 sc/source/ui/drawfunc/futext3.cxx                                  |    2 
 sc/source/ui/drawfunc/graphsh.cxx                                  |   24 +--
 sc/source/ui/drawfunc/mediash.cxx                                  |    4 
 sc/source/ui/formdlg/dwfunctr.cxx                                  |    2 
 sc/source/ui/formdlg/formula.cxx                                   |   13 -
 sc/source/ui/inc/ChildWindowWrapper.hxx                            |    2 
 sc/source/ui/inc/prevwsh.hxx                                       |    6 
 sc/source/ui/inc/tabvwsh.hxx                                       |   12 -
 sc/source/ui/miscdlgs/anyrefdg.cxx                                 |   38 ++---
 sc/source/ui/miscdlgs/mvtabdlg.cxx                                 |    2 
 sc/source/ui/navipi/content.cxx                                    |   19 +-
 sc/source/ui/navipi/navcitem.cxx                                   |    4 
 sc/source/ui/navipi/navipi.cxx                                     |    6 
 sc/source/ui/navipi/scenwnd.cxx                                    |    4 
 sc/source/ui/optdlg/opredlin.cxx                                   |    2 
 sc/source/ui/optdlg/tpusrlst.cxx                                   |    2 
 sc/source/ui/optdlg/tpview.cxx                                     |    4 
 sc/source/ui/pagedlg/areasdlg.cxx                                  |    4 
 sc/source/ui/pagedlg/scuitphfedit.cxx                              |    8 -
 sc/source/ui/pagedlg/tphf.cxx                                      |    2 
 sc/source/ui/pagedlg/tphfedit.cxx                                  |    6 
 sc/source/ui/sidebar/AlignmentPropertyPanel.cxx                    |    8 -
 sc/source/ui/undo/areasave.cxx                                     |    6 
 sc/source/ui/undo/undobase.cxx                                     |    2 
 sc/source/ui/undo/undoblk.cxx                                      |   60 ++++----
 sc/source/ui/undo/undoblk2.cxx                                     |    4 
 sc/source/ui/undo/undoblk3.cxx                                     |   38 ++---
 sc/source/ui/undo/undocell.cxx                                     |   20 +-
 sc/source/ui/undo/undodat.cxx                                      |   30 ++--
 sc/source/ui/undo/undotab.cxx                                      |   28 ++--
 sc/source/ui/unoobj/cellsuno.cxx                                   |    4 
 sc/source/ui/unoobj/docuno.cxx                                     |    8 -
 sc/source/ui/unoobj/linkuno.cxx                                    |    6 
 sc/source/ui/unoobj/shapeuno.cxx                                   |   12 -
 sc/source/ui/unoobj/viewuno.cxx                                    |   10 -
 sc/source/ui/vba/vbaworksheets.cxx                                 |    2 
 sc/source/ui/view/auditsh.cxx                                      |    2 
 sc/source/ui/view/cellsh1.cxx                                      |    8 -
 sc/source/ui/view/cellsh3.cxx                                      |    2 
 sc/source/ui/view/drawvie3.cxx                                     |    4 
 sc/source/ui/view/drawvie4.cxx                                     |    2 
 sc/source/ui/view/drawview.cxx                                     |   12 -
 sc/source/ui/view/editsh.cxx                                       |    6 
 sc/source/ui/view/formatsh.cxx                                     |    6 
 sc/source/ui/view/hdrcont.cxx                                      |    3 
 sc/source/ui/view/output.cxx                                       |    2 
 sc/source/ui/view/output2.cxx                                      |    6 
 sc/source/ui/view/prevwsh.cxx                                      |    2 
 sc/source/ui/view/reffact.cxx                                      |   10 -
 sc/source/ui/view/spelldialog.cxx                                  |    6 
 sc/source/ui/view/spelleng.cxx                                     |    2 
 sc/source/ui/view/tabvwsh2.cxx                                     |    6 
 sc/source/ui/view/tabvwsh3.cxx                                     |    2 
 sc/source/ui/view/tabvwsh4.cxx                                     |   10 -
 sc/source/ui/view/tabvwshb.cxx                                     |    6 
 sc/source/ui/view/tabvwshe.cxx                                     |    4 
 sc/source/ui/view/tabvwshf.cxx                                     |    2 
 sc/source/ui/view/tabvwshg.cxx                                     |    2 
 sc/source/ui/view/viewfun2.cxx                                     |    8 -
 sc/source/ui/view/viewfun5.cxx                                     |    8 -
 sc/source/ui/view/viewfun7.cxx                                     |    4 
 sc/source/ui/view/viewutil.cxx                                     |    2 
 sd/source/core/drawdoc.cxx                                         |    2 
 sd/source/core/drawdoc2.cxx                                        |    4 
 sd/source/core/drawdoc4.cxx                                        |    6 
 sd/source/core/sdpage.cxx                                          |   10 -
 sd/source/filter/eppt/eppt.cxx                                     |    2 
 sd/source/filter/grf/sdgrffilter.cxx                               |    3 
 sd/source/filter/html/htmlex.cxx                                   |    2 
 sd/source/filter/ppt/pptin.cxx                                     |    6 
 sd/source/filter/ppt/pptinanimations.cxx                           |    2 
 sd/source/ui/accessibility/AccessibleDocumentViewBase.cxx          |    6 
 sd/source/ui/accessibility/AccessibleOutlineView.cxx               |    2 
 sd/source/ui/app/sdmod.cxx                                         |    4 
 sd/source/ui/app/sdmod1.cxx                                        |   30 ++--
 sd/source/ui/app/sdmod2.cxx                                        |   12 -
 sd/source/ui/app/sdpopup.cxx                                       |   19 +-
 sd/source/ui/app/sdxfer.cxx                                        |   10 -
 sd/source/ui/app/tmplctrl.cxx                                      |    4 
 sd/source/ui/dlg/LayerTabBar.cxx                                   |    2 
 sd/source/ui/dlg/SpellDialogChildWindow.cxx                        |   10 -
 sd/source/ui/dlg/animobjs.cxx                                      |    2 
 sd/source/ui/dlg/dlgass.cxx                                        |   14 +-
 sd/source/ui/dlg/dlgfield.cxx                                      |   27 +--
 sd/source/ui/dlg/docprev.cxx                                       |    2 
 sd/source/ui/dlg/headerfooterdlg.cxx                               |    2 
 sd/source/ui/dlg/navigatr.cxx                                      |   12 -
 sd/source/ui/dlg/sdtreelb.cxx                                      |    2 
 sd/source/ui/docshell/docshel3.cxx                                 |    2 
 sd/source/ui/docshell/docshel4.cxx                                 |   14 +-
 sd/source/ui/docshell/docshell.cxx                                 |    6 
 sd/source/ui/func/fubullet.cxx                                     |   10 -
 sd/source/ui/func/fuconarc.cxx                                     |    2 
 sd/source/ui/func/fuconbez.cxx                                     |    2 
 sd/source/ui/func/fuconrec.cxx                                     |   10 -
 sd/source/ui/func/fudraw.cxx                                       |   20 +-
 sd/source/ui/func/fuhhconv.cxx                                     |   10 -
 sd/source/ui/func/fuinsert.cxx                                     |    6 
 sd/source/ui/func/fuinsfil.cxx                                     |    4 
 sd/source/ui/func/fulinend.cxx                                     |    4 
 sd/source/ui/func/fumorph.cxx                                      |    4 
 sd/source/ui/func/funavig.cxx                                      |    8 -
 sd/source/ui/func/fuolbull.cxx                                     |    4 
 sd/source/ui/func/fuoltext.cxx                                     |    2 
 sd/source/ui/func/fupoor.cxx                                       |   34 ++---
 sd/source/ui/func/fuprlout.cxx                                     |   10 -
 sd/source/ui/func/fuscale.cxx                                      |    8 -
 sd/source/ui/func/fusearch.cxx                                     |   10 -
 sd/source/ui/func/fusel.cxx                                        |   12 -
 sd/source/ui/func/futempl.cxx                                      |    4 
 sd/source/ui/func/futext.cxx                                       |   10 -
 sd/source/ui/func/futhes.cxx                                       |    6 
 sd/source/ui/func/fuvect.cxx                                       |    2 
 sd/source/ui/func/sdundogr.cxx                                     |    2 
 sd/source/ui/func/undolayer.cxx                                    |    6 
 sd/source/ui/sidebar/MasterPageContainerProviders.cxx              |    2 
 sd/source/ui/sidebar/MasterPageObserver.cxx                        |    2 
 sd/source/ui/slideshow/slideshowimpl.cxx                           |    4 
 sd/source/ui/slidesorter/shell/SlideSorterViewShell.cxx            |    8 -
 sd/source/ui/unoidl/unolayer.cxx                                   |    3 
 sd/source/ui/unoidl/unomodel.cxx                                   |    4 
 sd/source/ui/unoidl/unoobj.cxx                                     |   14 +-
 sd/source/ui/unoidl/unopage.cxx                                    |   18 +-
 sd/source/ui/view/DocumentRenderer.cxx                             |    2 
 sd/source/ui/view/GraphicObjectBar.cxx                             |    4 
 sd/source/ui/view/MediaObjectBar.cxx                               |    4 
 sd/source/ui/view/Outliner.cxx                                     |   42 +++---
 sd/source/ui/view/ViewShellBase.cxx                                |   10 -
 sd/source/ui/view/ViewShellImplementation.cxx                      |    4 
 sd/source/ui/view/drbezob.cxx                                      |    8 -
 sd/source/ui/view/drtxtob.cxx                                      |    8 -
 sd/source/ui/view/drtxtob1.cxx                                     |    2 
 sd/source/ui/view/drviews2.cxx                                     |   37 ++---
 sd/source/ui/view/drviews4.cxx                                     |   12 -
 sd/source/ui/view/drviews6.cxx                                     |    2 
 sd/source/ui/view/drviews7.cxx                                     |    6 
 sd/source/ui/view/drviews8.cxx                                     |    2 
 sd/source/ui/view/drviewsc.cxx                                     |    2 
 sd/source/ui/view/drviewse.cxx                                     |    4 
 sd/source/ui/view/drviewsf.cxx                                     |    2 
 sd/source/ui/view/drviewsg.cxx                                     |    2 
 sd/source/ui/view/drviewsj.cxx                                     |   22 +--
 sd/source/ui/view/frmview.cxx                                      |    2 
 sd/source/ui/view/outlnvs2.cxx                                     |   24 +--
 sd/source/ui/view/outlnvsh.cxx                                     |   10 -
 sd/source/ui/view/sdview.cxx                                       |    8 -
 sd/source/ui/view/sdview2.cxx                                      |   10 -
 sd/source/ui/view/sdview3.cxx                                      |   14 +-
 sd/source/ui/view/sdview4.cxx                                      |   12 -
 sd/source/ui/view/sdwindow.cxx                                     |   14 +-
 sd/source/ui/view/tabcontr.cxx                                     |    2 
 sd/source/ui/view/viewshel.cxx                                     |    2 
 sfx2/source/appl/appcfg.cxx                                        |   68 +++++-----
 sfx2/source/appl/appdde.cxx                                        |   17 +-
 sfx2/source/appl/appopen.cxx                                       |   10 -
 sfx2/source/appl/appserv.cxx                                       |    8 -
 sfx2/source/appl/appuno.cxx                                        |    4 
 sfx2/source/appl/linkmgr2.cxx                                      |    8 -
 sfx2/source/control/bindings.cxx                                   |   15 +-
 sfx2/source/control/ctrlitem.cxx                                   |    2 
 sfx2/source/control/dispatch.cxx                                   |   10 -
 sfx2/source/control/request.cxx                                    |    8 -
 sfx2/source/control/shell.cxx                                      |    4 
 sfx2/source/control/unoctitm.cxx                                   |    6 
 sfx2/source/dialog/dinfdlg.cxx                                     |    2 
 sfx2/source/dialog/templdlg.cxx                                    |    8 -
 sfx2/source/dialog/tplcitem.cxx                                    |    5 
 sfx2/source/doc/objitem.cxx                                        |    4 
 sfx2/source/doc/objmisc.cxx                                        |    4 
 sfx2/source/doc/objserv.cxx                                        |    2 
 sfx2/source/doc/objstor.cxx                                        |    6 
 sfx2/source/doc/objxtor.cxx                                        |   10 -
 sfx2/source/inet/inettbc.cxx                                       |    2 
 sfx2/source/menu/mnuitem.cxx                                       |    6 
 sfx2/source/menu/virtmenu.cxx                                      |    2 
 sfx2/source/statbar/stbitem.cxx                                    |    4 
 sfx2/source/toolbox/tbxitem.cxx                                    |    8 -
 sfx2/source/view/frame.cxx                                         |    2 
 sfx2/source/view/frmload.cxx                                       |    5 
 sfx2/source/view/viewfrm.cxx                                       |    4 
 sfx2/source/view/viewfrm2.cxx                                      |    4 
 sfx2/source/view/viewsh.cxx                                        |   17 +-
 sot/source/sdstor/stg.cxx                                          |    4 
 sot/source/sdstor/storage.cxx                                      |    4 
 sot/source/sdstor/ucbstorage.cxx                                   |   10 -
 starmath/source/ElementsDockingWindow.cxx                          |    2 
 starmath/source/edit.cxx                                           |    4 
 starmath/source/smmod.cxx                                          |    3 
 starmath/source/unomodel.cxx                                       |    7 -
 starmath/source/utility.cxx                                        |    2 
 starmath/source/view.cxx                                           |    4 
 svl/source/items/itempool.cxx                                      |    2 
 svl/source/items/itemset.cxx                                       |    2 
 sw/inc/frmfmt.hxx                                                  |    2 
 sw/inc/section.hxx                                                 |    4 
 sw/inc/unoframe.hxx                                                |    4 
 sw/source/core/access/acccell.cxx                                  |    4 
 sw/source/core/access/acccontext.cxx                               |    8 -
 sw/source/core/access/accdoc.cxx                                   |    2 
 sw/source/core/access/accframebase.cxx                             |    6 
 sw/source/core/access/accfrmobj.cxx                                |    2 
 sw/source/core/access/accmap.cxx                                   |   16 +-
 sw/source/core/access/accpara.cxx                                  |    6 
 sw/source/core/access/accselectionhelper.cxx                       |    6 
 sw/source/core/attr/swatrset.cxx                                   |    4 
 sw/source/core/crsr/crsrsh.cxx                                     |    4 
 sw/source/core/crsr/crstrvl.cxx                                    |    2 
 sw/source/core/crsr/swcrsr.cxx                                     |    2 
 sw/source/core/crsr/trvltbl.cxx                                    |    2 
 sw/source/core/doc/CntntIdxStore.cxx                               |    2 
 sw/source/core/doc/DocumentContentOperationsManager.cxx            |    2 
 sw/source/core/doc/DocumentDeviceManager.cxx                       |    2 
 sw/source/core/doc/DocumentLayoutManager.cxx                       |    4 
 sw/source/core/doc/DocumentLinksAdministrationManager.cxx          |    2 
 sw/source/core/doc/doc.cxx                                         |    2 
 sw/source/core/doc/doccorr.cxx                                     |    6 
 sw/source/core/doc/docdesc.cxx                                     |    2 
 sw/source/core/doc/docdraw.cxx                                     |   19 +-
 sw/source/core/doc/docfly.cxx                                      |    6 
 sw/source/core/doc/docfmt.cxx                                      |    2 
 sw/source/core/doc/doclay.cxx                                      |    8 -
 sw/source/core/doc/doctxm.cxx                                      |    8 -
 sw/source/core/doc/notxtfrm.cxx                                    |    2 
 sw/source/core/doc/swserv.cxx                                      |    4 
 sw/source/core/doc/tblrwcl.cxx                                     |    2 
 sw/source/core/doc/textboxhelper.cxx                               |    4 
 sw/source/core/docnode/ndcopy.cxx                                  |    2 
 sw/source/core/docnode/ndsect.cxx                                  |    2 
 sw/source/core/docnode/ndtbl.cxx                                   |   20 +-
 sw/source/core/docnode/node.cxx                                    |    4 
 sw/source/core/docnode/nodes.cxx                                   |    2 
 sw/source/core/docnode/section.cxx                                 |   12 -
 sw/source/core/docnode/swbaslnk.cxx                                |    4 
 sw/source/core/draw/dcontact.cxx                                   |   54 +++----
 sw/source/core/draw/dflyobj.cxx                                    |    8 -
 sw/source/core/draw/dpage.cxx                                      |    2 
 sw/source/core/draw/dview.cxx                                      |   18 +-
 sw/source/core/edit/edglbldc.cxx                                   |    2 
 sw/source/core/edit/editsh.cxx                                     |    2 
 sw/source/core/edit/edtab.cxx                                      |    8 -
 sw/source/core/edit/edtox.cxx                                      |    8 -
 sw/source/core/edit/edundo.cxx                                     |    2 
 sw/source/core/edit/edws.cxx                                       |    4 
 sw/source/core/fields/ddefld.cxx                                   |    6 
 sw/source/core/fields/docufld.cxx                                  |    4 
 sw/source/core/frmedt/fecopy.cxx                                   |   24 +--
 sw/source/core/frmedt/fefly1.cxx                                   |   22 +--
 sw/source/core/frmedt/feshview.cxx                                 |   64 ++++-----
 sw/source/core/frmedt/fetab.cxx                                    |   18 +-
 sw/source/core/frmedt/fews.cxx                                     |    8 -
 sw/source/core/graphic/grfatr.cxx                                  |    4 
 sw/source/core/graphic/ndgrf.cxx                                   |    2 
 sw/source/core/layout/anchoreddrawobject.cxx                       |    8 -
 sw/source/core/layout/atrfrm.cxx                                   |   14 +-
 sw/source/core/layout/calcmove.cxx                                 |    4 
 sw/source/core/layout/flowfrm.cxx                                  |    4 
 sw/source/core/layout/fly.cxx                                      |   20 +-
 sw/source/core/layout/flylay.cxx                                   |   14 +-
 sw/source/core/layout/frmtool.cxx                                  |   42 +++---
 sw/source/core/layout/hffrm.cxx                                    |    2 
 sw/source/core/layout/layact.cxx                                   |   20 +-
 sw/source/core/layout/laycache.cxx                                 |    4 
 sw/source/core/layout/newfrm.cxx                                   |    2 
 sw/source/core/layout/objectformatter.cxx                          |    6 
 sw/source/core/layout/pagechg.cxx                                  |   28 ++--
 sw/source/core/layout/paintfrm.cxx                                 |   14 +-
 sw/source/core/layout/sectfrm.cxx                                  |    8 -
 sw/source/core/layout/ssfrm.cxx                                    |   10 -
 sw/source/core/layout/tabfrm.cxx                                   |   12 -
 sw/source/core/layout/trvlfrm.cxx                                  |    6 
 sw/source/core/layout/wsfrm.cxx                                    |   16 +-
 sw/source/core/objectpositioning/anchoredobjectposition.cxx        |   16 +-
 sw/source/core/objectpositioning/ascharanchoredobjectposition.cxx  |    6 
 sw/source/core/objectpositioning/environmentofanchoredobject.cxx   |    4 
 sw/source/core/objectpositioning/tocntntanchoredobjectposition.cxx |    2 
 sw/source/core/para/paratr.cxx                                     |    2 
 sw/source/core/sw3io/swacorr.cxx                                   |    2 
 sw/source/core/text/EnhancedPDFExportHelper.cxx                    |    6 
 sw/source/core/text/itrcrsr.cxx                                    |    2 
 sw/source/core/text/porfly.cxx                                     |    4 
 sw/source/core/text/porrst.cxx                                     |    2 
 sw/source/core/text/txtfly.cxx                                     |    8 -
 sw/source/core/text/txtfrm.cxx                                     |    4 
 sw/source/core/text/txtftn.cxx                                     |    2 
 sw/source/core/undo/SwUndoTOXChange.cxx                            |    2 
 sw/source/core/undo/rolbck.cxx                                     |    4 
 sw/source/core/undo/unattr.cxx                                     |    2 
 sw/source/core/undo/undraw.cxx                                     |   20 +-
 sw/source/core/undo/unsect.cxx                                     |    2 
 sw/source/core/undo/untbl.cxx                                      |    6 
 sw/source/core/unocore/unodraw.cxx                                 |   10 -
 sw/source/core/unocore/unoframe.cxx                                |    4 
 sw/source/core/unocore/unosect.cxx                                 |    2 
 sw/source/core/unocore/unotext.cxx                                 |    2 
 sw/source/core/view/printdata.cxx                                  |    3 
 sw/source/core/view/vdraw.cxx                                      |    8 -
 sw/source/core/view/viewsh.cxx                                     |   10 -
 sw/source/core/view/vprint.cxx                                     |    2 
 sw/source/filter/basflt/shellio.cxx                                |    2 
 sw/source/filter/html/htmlform.cxx                                 |    2 
 sw/source/filter/html/swhtml.cxx                                   |    8 -
 sw/source/filter/ww8/docxattributeoutput.cxx                       |    2 
 sw/source/filter/ww8/rtfattributeoutput.cxx                        |    2 
 sw/source/filter/ww8/wrtw8esh.cxx                                  |    4 
 sw/source/filter/ww8/wrtw8nds.cxx                                  |    4 
 sw/source/filter/ww8/wrtw8sty.cxx                                  |    4 
 sw/source/filter/ww8/wrtww8gr.cxx                                  |    2 
 sw/source/filter/ww8/ww8atr.cxx                                    |   20 +-
 sw/source/filter/ww8/ww8graf.cxx                                   |   10 -
 sw/source/filter/ww8/ww8graf2.cxx                                  |    2 
 sw/source/filter/ww8/ww8par4.cxx                                   |    2 
 sw/source/filter/xml/xmlexp.cxx                                    |    2 
 sw/source/filter/xml/xmlexpit.cxx                                  |   34 ++---
 sw/source/filter/xml/xmlfmt.cxx                                    |    2 
 sw/source/filter/xml/xmlimpit.cxx                                  |   28 ++--
 sw/source/filter/xml/xmltble.cxx                                   |    2 
 sw/source/ui/config/optpage.cxx                                    |    5 
 sw/source/ui/dialog/docstdlg.cxx                                   |    4 
 sw/source/ui/dialog/uiregionsw.cxx                                 |    8 -
 sw/source/ui/fldui/fldtdlg.cxx                                     |    5 
 sw/source/ui/fmtui/tmpdlg.cxx                                      |    4 
 sw/source/ui/misc/docfnote.cxx                                     |    2 
 sw/source/ui/misc/num.cxx                                          |    6 
 sw/source/ui/table/colwd.cxx                                       |    4 
 sw/source/ui/table/rowht.cxx                                       |    4 
 sw/source/uibase/app/apphdl.cxx                                    |   31 ++--
 sw/source/uibase/app/appopt.cxx                                    |    8 -
 sw/source/uibase/app/docsh.cxx                                     |   26 +--
 sw/source/uibase/app/docsh2.cxx                                    |   26 +--
 sw/source/uibase/app/docshini.cxx                                  |   12 -
 sw/source/uibase/app/docst.cxx                                     |    2 
 sw/source/uibase/app/swmodul1.cxx                                  |   25 +--
 sw/source/uibase/config/viewopt.cxx                                |    2 
 sw/source/uibase/dbui/mmconfigitem.cxx                             |    5 
 sw/source/uibase/dialog/SwSpellDialogChildWindow.cxx               |    4 
 sw/source/uibase/dialog/regionsw.cxx                               |    2 
 sw/source/uibase/dochdl/swdtflvr.cxx                               |   19 +-
 sw/source/uibase/docvw/PostItMgr.cxx                               |    4 
 sw/source/uibase/docvw/SidebarTxtControl.cxx                       |    4 
 sw/source/uibase/docvw/edtdd.cxx                                   |    4 
 sw/source/uibase/docvw/edtwin.cxx                                  |   30 ++--
 sw/source/uibase/docvw/edtwin3.cxx                                 |   16 +-
 sw/source/uibase/docvw/romenu.cxx                                  |    4 
 sw/source/uibase/ribbar/concustomshape.cxx                         |    2 
 sw/source/uibase/ribbar/conrect.cxx                                |    2 
 sw/source/uibase/ribbar/tbxanchr.cxx                               |    7 -
 sw/source/uibase/shells/annotsh.cxx                                |   12 -
 sw/source/uibase/shells/basesh.cxx                                 |    4 
 sw/source/uibase/shells/drawsh.cxx                                 |    4 
 sw/source/uibase/shells/drformsh.cxx                               |    4 
 sw/source/uibase/shells/drwbassh.cxx                               |    4 
 sw/source/uibase/shells/drwtxtex.cxx                               |    8 -
 sw/source/uibase/shells/drwtxtsh.cxx                               |    4 
 sw/source/uibase/shells/frmsh.cxx                                  |    2 
 sw/source/uibase/shells/grfshex.cxx                                |    3 
 sw/source/uibase/shells/mediash.cxx                                |    4 
 sw/source/uibase/shells/tabsh.cxx                                  |    4 
 sw/source/uibase/shells/textdrw.cxx                                |    2 
 sw/source/uibase/shells/textsh.cxx                                 |    4 
 sw/source/uibase/shells/textsh1.cxx                                |    6 
 sw/source/uibase/shells/txtnum.cxx                                 |    2 
 sw/source/uibase/sidebar/PagePropertyPanel.cxx                     |   10 -
 sw/source/uibase/sidebar/WrapPropertyPanel.cxx                     |    2 
 sw/source/uibase/uiview/pview.cxx                                  |    6 
 sw/source/uibase/uiview/srcview.cxx                                |    6 
 sw/source/uibase/uiview/view.cxx                                   |   36 ++---
 sw/source/uibase/uiview/view0.cxx                                  |    2 
 sw/source/uibase/uiview/view2.cxx                                  |    2 
 sw/source/uibase/uiview/viewdlg2.cxx                               |    2 
 sw/source/uibase/uiview/viewdraw.cxx                               |   18 +-
 sw/source/uibase/uiview/viewling.cxx                               |    2 
 sw/source/uibase/uiview/viewmdi.cxx                                |    4 
 sw/source/uibase/uiview/viewprt.cxx                                |    6 
 sw/source/uibase/uiview/viewstat.cxx                               |    6 
 sw/source/uibase/uiview/viewtab.cxx                                |    2 
 sw/source/uibase/uno/unomailmerge.cxx                              |    2 
 sw/source/uibase/uno/unotxdoc.cxx                                  |   30 +---
 sw/source/uibase/utlui/bookctrl.cxx                                |    6 
 sw/source/uibase/utlui/content.cxx                                 |    8 -
 sw/source/uibase/utlui/navipi.cxx                                  |    4 
 sw/source/uibase/utlui/tmplctrl.cxx                                |    4 
 sw/source/uibase/utlui/viewlayoutctrl.cxx                          |    4 
 sw/source/uibase/utlui/zoomctrl.cxx                                |    2 
 sw/source/uibase/web/wview.cxx                                     |    6 
 sw/source/uibase/wrtsh/wrtsh1.cxx                                  |    2 
 sw/source/uibase/wrtsh/wrtsh2.cxx                                  |    2 
 sw/source/uibase/wrtsh/wrtsh3.cxx                                  |    2 
 vcl/source/app/vclevent.cxx                                        |    2 
 458 files changed, 1727 insertions(+), 1769 deletions(-)

New commits:
commit 89d39bc100aabf5dccbe77c0b5c0c85736e85b39
Author: Oliver Specht <oliver.specht at cib.de>
Date:   Wed Sep 30 16:10:07 2015 +0200

        tdf#94559: 4th step to remove rtti.hxx
    
        replaced use of PTR_CAST, IS_TYPE, ISA in
        idl, editeng, sc, sd, sw, sfx2, sot, starmath
    
    Change-Id: I4a5bba4fdc4829099618c09b690c83f876a3d653
    Reviewed-on: https://gerrit.libreoffice.org/19132
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Oliver Specht <oliver.specht at cib.de>

diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index 57080ca..01586bd 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -1106,7 +1106,7 @@ SbModule* StarBASIC::MakeModule32( const OUString& rName, const ModuleInfo& mInf
 
 void StarBASIC::Insert( SbxVariable* pVar )
 {
-    if( pVar->IsA( TYPE(SbModule) ) )
+    if( dynamic_cast<const SbModule*>(pVar) != nullptr)
     {
         pModules->Insert( pVar, pModules->Count() );
         pVar->SetParent( this );
@@ -1125,7 +1125,7 @@ void StarBASIC::Insert( SbxVariable* pVar )
 
 void StarBASIC::Remove( SbxVariable* pVar )
 {
-    if( pVar->IsA( TYPE(SbModule) ) )
+    if( dynamic_cast<const SbModule*>(pVar) != nullptr)
     {
         // #87540 Can be last reference!
         SbxVariableRef xVar = pVar;
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index 167a172..ce72ed3 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -966,14 +966,14 @@ void SbModule::SetSource32( const OUString& r )
 static void _SendHint( SbxObject* pObj, sal_uIntPtr nId, SbMethod* p )
 {
     // Self a BASIC?
-    if( pObj->IsA( TYPE(StarBASIC) ) && pObj->IsBroadcaster() )
+    if( dynamic_cast<const StarBASIC *>(pObj) != nullptr && pObj->IsBroadcaster() )
         pObj->GetBroadcaster().Broadcast( SbxHint( nId, p ) );
     // Then ask for the subobjects
     SbxArray* pObjs = pObj->GetObjects();
     for( sal_uInt16 i = 0; i < pObjs->Count(); i++ )
     {
         SbxVariable* pVar = pObjs->Get( i );
-        if( pVar->IsA( TYPE(SbxObject) ) )
+        if( dynamic_cast<const SbxObject *>(pVar) != nullptr )
             _SendHint( dynamic_cast<SbxObject*>( pVar), nId, p  );
     }
 }
diff --git a/basic/source/comp/parser.cxx b/basic/source/comp/parser.cxx
index 97592cb..c3e7a89 100644
--- a/basic/source/comp/parser.cxx
+++ b/basic/source/comp/parser.cxx
@@ -156,7 +156,7 @@ SbiSymDef* SbiParser::CheckRTLForSym(const OUString& rSym, SbxDataType eType)
     if (!pVar)
         return nullptr;
 
-    if (pVar->IsA(TYPE(SbxMethod)))
+    if (dynamic_cast<const SbxMethod *>(pVar) != nullptr)
     {
         SbiProcDef* pProc_ = aRtlSyms.AddProc( rSym );
         SbxMethod* pMethod = static_cast<SbxMethod*>(pVar);
diff --git a/basic/source/runtime/methods.cxx b/basic/source/runtime/methods.cxx
index 2c21bc3..4628686 100644
--- a/basic/source/runtime/methods.cxx
+++ b/basic/source/runtime/methods.cxx
@@ -4439,11 +4439,11 @@ RTLFUNC(Load)
     SbxBase* pObj = static_cast<SbxObject*>(rPar.Get(1)->GetObject());
     if ( pObj )
     {
-        if( pObj->IsA( TYPE( SbUserFormModule ) ) )
+        if( dynamic_cast<const SbUserFormModule *>(pObj) != nullptr )
         {
             static_cast<SbUserFormModule*>(pObj)->Load();
         }
-        else if( pObj->IsA( TYPE( SbxObject ) ) )
+        else if( dynamic_cast<const SbxObject *>(pObj) != nullptr )
         {
             SbxVariable* pVar = static_cast<SbxObject*>(pObj)->Find( OUString("Load"), SbxCLASS_METHOD );
             if( pVar )
@@ -4470,12 +4470,12 @@ RTLFUNC(Unload)
     SbxBase* pObj = static_cast<SbxObject*>(rPar.Get(1)->GetObject());
     if ( pObj )
     {
-        if( pObj->IsA( TYPE( SbUserFormModule ) ) )
+        if( dynamic_cast<const SbUserFormModule *>(pObj) != nullptr )
         {
             SbUserFormModule* pFormModule = static_cast<SbUserFormModule*>(pObj);
             pFormModule->Unload();
         }
-        else if( pObj->IsA( TYPE( SbxObject ) ) )
+        else if( dynamic_cast<const SbxObject *>(pObj) != nullptr )
         {
             SbxVariable* pVar = static_cast<SbxObject*>(pObj)->Find( OUString("Unload"), SbxCLASS_METHOD );
             if( pVar )
@@ -4524,7 +4524,7 @@ RTLFUNC(SavePicture)
     }
 
     SbxBase* pObj = static_cast<SbxObject*>(rPar.Get(1)->GetObject());
-    if( pObj->IsA( TYPE( SbStdPicture ) ) )
+    if( dynamic_cast<const SbStdPicture *>(pObj) != nullptr )
     {
         SvFileStream aOStream( rPar.Get(2)->GetOUString(), StreamMode::WRITE | StreamMode::TRUNC );
         Graphic aGraphic = static_cast<SbStdPicture*>(pObj)->GetGraphic();
diff --git a/basic/source/runtime/runtime.cxx b/basic/source/runtime/runtime.cxx
index 0441666..33ab052 100644
--- a/basic/source/runtime/runtime.cxx
+++ b/basic/source/runtime/runtime.cxx
@@ -673,7 +673,7 @@ void SbiRuntime::SetParameters( SbxArray* pParams )
 
             SbxVariable* v = pParams->Get( i );
             // methods are always byval!
-            bool bByVal = v->IsA( TYPE(SbxMethod) );
+            bool bByVal = dynamic_cast<const SbxMethod *>(v) != nullptr;
             SbxDataType t = v->GetType();
             bool bTargetTypeIsArray = false;
             if( p )
@@ -995,7 +995,7 @@ SbxVariableRef SbiRuntime::PopVar()
         SAL_INFO("basic", "PopVar: Name equals 'Cells'" );
 #endif
     // methods hold themselves in parameter 0
-    if( xVar->IsA( TYPE(SbxMethod) ) )
+    if( dynamic_cast<const SbxMethod *>(xVar.get()) != nullptr )
     {
         xVar->SetParameters(0);
     }
@@ -1725,7 +1725,7 @@ void SbiRuntime::StepPUT()
             refVar->Broadcast( SBX_HINT_DATAWANTED );
         if ( refVar->GetType() == SbxOBJECT )
         {
-            if  ( refVar->IsA( TYPE(SbxMethod) ) || ! refVar->GetParent() )
+            if  ( dynamic_cast<const SbxMethod *>(refVar.get()) != nullptr || ! refVar->GetParent() )
             {
                 SbxVariable* pDflt = getDefaultProp( refVar );
 
@@ -1735,7 +1735,7 @@ void SbiRuntime::StepPUT()
             else
                 bObjAssign = true;
         }
-        if (  refVal->GetType() == SbxOBJECT  && !bObjAssign && ( refVal->IsA( TYPE(SbxMethod) ) || ! refVal->GetParent() ) )
+        if (  refVal->GetType() == SbxOBJECT  && !bObjAssign && ( dynamic_cast<const SbxMethod *>(refVal.get()) != nullptr || ! refVal->GetParent() ) )
         {
             SbxVariable* pDflt = getDefaultProp( refVal );
             if ( pDflt )
@@ -1877,7 +1877,7 @@ void SbiRuntime::StepSET_Impl( SbxVariableRef& refVal, SbxVariableRef& refVar, b
             bool bObjAssign = false;
             if ( refVar->GetType() == SbxOBJECT )
             {
-                if ( refVar->IsA( TYPE(SbxMethod) ) || ! refVar->GetParent() )
+                if ( dynamic_cast<const SbxMethod *>(refVar.get()) != nullptr || ! refVar->GetParent() )
                 {
                     SbxVariable* pDflt = getDefaultProp( refVar );
                     if ( pDflt )
@@ -3240,19 +3240,19 @@ bool SbiRuntime::checkClass_Impl( const SbxVariableRef& refVal,
     if( t == SbxOBJECT )
     {
         SbxObject* pObj;
-        if( pVal->IsA( TYPE(SbxObject) ) )
+        if( dynamic_cast<const SbxObject *>(pVal) != nullptr )
             pObj = static_cast<SbxObject*>( pVal );
         else
         {
             pObj = static_cast<SbxObject*>( refVal->GetObject() );
-            if( pObj && !pObj->IsA( TYPE(SbxObject) ) )
+            if( pObj && dynamic_cast<const SbxObject *>(pObj) == nullptr )
                 pObj = NULL;
         }
         if( pObj )
         {
             if( !implIsClass( pObj, aClass ) )
             {
-                if ( ( bVBAEnabled || CodeCompleteOptions::IsExtendedTypeDeclaration() ) && pObj->IsA( TYPE(SbUnoObject) ) )
+                if ( ( bVBAEnabled || CodeCompleteOptions::IsExtendedTypeDeclaration() ) && dynamic_cast<const SbUnoObject *>(pObj) != nullptr )
                 {
                     SbUnoObject& rUnoObj = dynamic_cast<SbUnoObject&>(*pObj);
                     bOk = checkUnoObjectType(rUnoObj, aClass);
@@ -3540,7 +3540,7 @@ SbxVariable* SbiRuntime::FindElement( SbxObject* pObj, sal_uInt32 nOp1, sal_uInt
             SetupArgs( pElem, nOp1 );
         }
         // because a particular call-type is requested
-        if( pElem->IsA( TYPE(SbxMethod) ) )
+        if( dynamic_cast<const SbxMethod *>(pElem) != nullptr )
         {
             // shall the type be converted?
             SbxDataType t2 = pElem->GetType();
diff --git a/basic/source/sbx/sbxobj.cxx b/basic/source/sbx/sbxobj.cxx
index 4b14999..46f34f1 100644
--- a/basic/source/sbx/sbxobj.cxx
+++ b/basic/source/sbx/sbxobj.cxx
@@ -783,7 +783,7 @@ void SbxObject::Dump( SvStream& rStrm, bool bFill )
             {
                 aLine += aAttrs2;
             }
-            if( !pVar->IsA( TYPE(SbxMethod) ) )
+            if( dynamic_cast<const SbxMethod *>(pVar) == nullptr )
             {
                 aLine += "  !! Not a Method !!";
             }
@@ -822,7 +822,7 @@ void SbxObject::Dump( SvStream& rStrm, bool bFill )
                 {
                     aLine += aAttrs3;
                 }
-                if( !pVar->IsA( TYPE(SbxProperty) ) )
+                if( dynamic_cast<const SbxProperty *>(pVar) == nullptr )
                 {
                     aLine += "  !! Not a Property !!";
                 }
diff --git a/basic/source/sbx/sbxvar.cxx b/basic/source/sbx/sbxvar.cxx
index 2e35326..bb8880c 100644
--- a/basic/source/sbx/sbxvar.cxx
+++ b/basic/source/sbx/sbxvar.cxx
@@ -590,7 +590,7 @@ bool SbxVariable::StoreData( SvStream& rStrm ) const
 {
     rStrm.WriteUChar( 0xFF );      // Marker
     bool bValStore;
-    if( this->IsA( TYPE(SbxMethod) ) )
+    if( dynamic_cast<const SbxMethod *>(this) != nullptr )
     {
         // #50200 Avoid that objects , which during the runtime
         // as return-value are saved in the method as a value were saved
diff --git a/connectivity/source/drivers/dbase/DIndexIter.cxx b/connectivity/source/drivers/dbase/DIndexIter.cxx
index 1d52995..070cf54 100644
--- a/connectivity/source/drivers/dbase/DIndexIter.cxx
+++ b/connectivity/source/drivers/dbase/DIndexIter.cxx
@@ -70,13 +70,13 @@ sal_uIntPtr OIndexIterator::Find(bool bFirst)
         ONDXKey* pKey = GetNextKey();
         nRes = pKey ? pKey->GetRecord() : NODE_NOTFOUND;
     }
-    else if (m_pOperator->IsA(TYPE(OOp_ISNOTNULL)))
+    else if (dynamic_cast<const OOp_ISNOTNULL *>(m_pOperator) != nullptr)
         nRes = GetNotNull(bFirst);
-    else if (m_pOperator->IsA(TYPE(OOp_ISNULL)))
+    else if (dynamic_cast<const OOp_ISNULL *>(m_pOperator) != nullptr)
         nRes = GetNull(bFirst);
-    else if (m_pOperator->IsA(TYPE(OOp_LIKE)))
+    else if (dynamic_cast<const OOp_LIKE *>(m_pOperator) != nullptr)
         nRes = GetLike(bFirst);
-    else if (m_pOperator->IsA(TYPE(OOp_COMPARE)))
+    else if (dynamic_cast<const OOp_COMPARE *>(m_pOperator) != nullptr)
         nRes = GetCompare(bFirst);
 
     return nRes;
diff --git a/cui/source/tabpages/backgrnd.cxx b/cui/source/tabpages/backgrnd.cxx
index 0450870..b271fc2 100644
--- a/cui/source/tabpages/backgrnd.cxx
+++ b/cui/source/tabpages/backgrnd.cxx
@@ -441,10 +441,6 @@ VclPtr<SfxTabPage> SvxBackgroundTabPage::Create( vcl::Window* pParent, const Sfx
 
 void SvxBackgroundTabPage::Reset( const SfxItemSet* rSet )
 {
-// os: Such a nonsense! One will always find such an item somewhere,
-//     but it must be existing in the rSet!
-//  const SfxPoolItem* pX = GetOldItem( rSet, SID_VIEW_FLD_PIC );
-//  if( pX && pX->ISA(SfxWallpaperItem))
     if(SfxItemState::DEFAULT <= rSet->GetItemState(GetWhich(SID_VIEW_FLD_PIC), false))
     {
         ResetFromWallpaperItem( *rSet );
@@ -640,11 +636,6 @@ bool SvxBackgroundTabPage::FillItemSet( SfxItemSet* rCoreSet )
         pPageImpl->pLoadIdle->Stop();
         LoadIdleHdl_Impl( pPageImpl->pLoadIdle );
     }
-// os: Such a nonsense! One will always find such an item somewhere,
-//     but it must be existing in the rSet!
-
-//  const SfxPoolItem* pX = GetOldItem( rCoreSet, SID_VIEW_FLD_PIC );
-//  if( pX && pX->ISA(SfxWallpaperItem))
     if(SfxItemState::DEFAULT <= rCoreSet->GetItemState(GetWhich(SID_VIEW_FLD_PIC), false))
         return FillItemSetWithWallpaperItem( *rCoreSet, SID_VIEW_FLD_PIC );
 
diff --git a/dbaccess/source/ui/dlg/DbAdminImpl.cxx b/dbaccess/source/ui/dlg/DbAdminImpl.cxx
index 08bd5f0..caf4526 100644
--- a/dbaccess/source/ui/dlg/DbAdminImpl.cxx
+++ b/dbaccess/source/ui/dlg/DbAdminImpl.cxx
@@ -89,7 +89,7 @@ using namespace com::sun::star::frame;
 
 namespace
 {
-    bool implCheckItemType( SfxItemSet& _rSet, const sal_uInt16 _nId, const TypeId _nExpectedItemType )
+    bool implCheckItemType( SfxItemSet& _rSet, const sal_uInt16 _nId, std::function<bool ( const SfxPoolItem* )> isItemType )
     {
         bool bCorrectType = false;
 
@@ -98,7 +98,7 @@ namespace
         if ( pPool )
         {
             const SfxPoolItem& rDefItem = pPool->GetDefaultItem( _nId );
-            bCorrectType = rDefItem.IsA( _nExpectedItemType );
+            bCorrectType = isItemType(&rDefItem);
         }
         return bCorrectType;
     }
@@ -902,13 +902,14 @@ OString ODbDataSourceAdministrationHelper::translatePropertyId( sal_Int32 _nId )
     OString aReturn( aString.getStr(), aString.getLength(), RTL_TEXTENCODING_ASCII_US );
     return aReturn;
 }
+template<class T> bool checkItemType(const SfxPoolItem* pItem){ return dynamic_cast<const T*>(pItem) != nullptr;}
 
 void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet, sal_Int32  _nId, const Any& _rValue )
 {
     switch ( _rValue.getValueType().getTypeClass() )
     {
         case TypeClass_STRING:
-            if ( implCheckItemType( _rSet, _nId, SfxStringItem::StaticType() ) )
+            if ( implCheckItemType( _rSet, _nId, checkItemType<SfxStringItem> ) )
             {
                 OUString sValue;
                 _rValue >>= sValue;
@@ -925,13 +926,13 @@ void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet
             break;
 
         case TypeClass_BOOLEAN:
-            if ( implCheckItemType( _rSet, _nId, SfxBoolItem::StaticType() ) )
+            if ( implCheckItemType( _rSet, _nId, checkItemType<SfxBoolItem> ) )
             {
                 bool bVal = false;
                 _rValue >>= bVal;
                 _rSet.Put(SfxBoolItem(_nId, bVal));
             }
-            else if ( implCheckItemType( _rSet, _nId, OptionalBoolItem::StaticType() ) )
+            else if ( implCheckItemType( _rSet, _nId, checkItemType<OptionalBoolItem> ) )
             {
                 OptionalBoolItem aItem( _nId );
                 if ( _rValue.hasValue() )
@@ -955,7 +956,7 @@ void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet
             break;
 
         case TypeClass_LONG:
-            if ( implCheckItemType( _rSet, _nId, SfxInt32Item::StaticType() ) )
+            if ( implCheckItemType( _rSet, _nId, checkItemType<SfxInt32Item> ) )
             {
                 sal_Int32 nValue = 0;
                 _rValue >>= nValue;
@@ -972,7 +973,7 @@ void ODbDataSourceAdministrationHelper::implTranslateProperty( SfxItemSet& _rSet
             break;
 
         case TypeClass_SEQUENCE:
-            if ( implCheckItemType( _rSet, _nId, OStringListItem::StaticType() ) )
+            if ( implCheckItemType( _rSet, _nId, checkItemType<OStringListItem> ) )
             {
                 // determine the element type
                 TypeDescription aTD(_rValue.getValueType());
diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx
index 5e7fdb5..610e754 100644
--- a/editeng/source/editeng/editdoc.cxx
+++ b/editeng/source/editeng/editdoc.cxx
@@ -876,7 +876,7 @@ void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit
     {
         case EE_PARA_LRSPACE:
         {
-            DBG_ASSERT( rPoolItem.IsA( TYPE( SvxLRSpaceItem ) ), "ConvertItem: invalid Item!" );
+            DBG_ASSERT( dynamic_cast<const SvxLRSpaceItem *>(&rPoolItem) != nullptr, "ConvertItem: invalid Item!" );
             SvxLRSpaceItem& rItem = static_cast<SvxLRSpaceItem&>(rPoolItem);
             rItem.SetTextFirstLineOfst( sal::static_int_cast< short >( OutputDevice::LogicToLogic( rItem.GetTextFirstLineOfst(), eSourceUnit, eDestUnit ) ) );
             rItem.SetTextLeft( OutputDevice::LogicToLogic( rItem.GetTextLeft(), eSourceUnit, eDestUnit ) );
@@ -885,7 +885,7 @@ void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit
         break;
         case EE_PARA_ULSPACE:
         {
-            DBG_ASSERT( rPoolItem.IsA( TYPE( SvxULSpaceItem ) ), "ConvertItem: Invalid Item!" );
+            DBG_ASSERT( dynamic_cast<const SvxULSpaceItem *>(&rPoolItem) != nullptr, "ConvertItem: Invalid Item!" );
             SvxULSpaceItem& rItem = static_cast<SvxULSpaceItem&>(rPoolItem);
             rItem.SetUpper( sal::static_int_cast< sal_uInt16 >( OutputDevice::LogicToLogic( rItem.GetUpper(), eSourceUnit, eDestUnit ) ) );
             rItem.SetLower( sal::static_int_cast< sal_uInt16 >( OutputDevice::LogicToLogic( rItem.GetLower(), eSourceUnit, eDestUnit ) ) );
@@ -893,7 +893,7 @@ void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit
         break;
         case EE_PARA_SBL:
         {
-            DBG_ASSERT( rPoolItem.IsA( TYPE( SvxLineSpacingItem ) ), "ConvertItem: Invalid Item!" );
+            DBG_ASSERT( dynamic_cast<const SvxLineSpacingItem *>(&rPoolItem) != nullptr, "ConvertItem: Invalid Item!" );
             SvxLineSpacingItem& rItem = static_cast<SvxLineSpacingItem&>(rPoolItem);
             // SetLineHeight changes also eLineSpace!
             if ( rItem.GetLineSpaceRule() == SVX_LINE_SPACE_MIN )
@@ -902,7 +902,7 @@ void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit
         break;
         case EE_PARA_TABS:
         {
-            DBG_ASSERT( rPoolItem.IsA( TYPE( SvxTabStopItem ) ), "ConvertItem: Invalid Item!" );
+            DBG_ASSERT( dynamic_cast<const SvxTabStopItem *>(&rPoolItem) != nullptr, "ConvertItem: Invalid Item!" );
             SvxTabStopItem& rItem = static_cast<SvxTabStopItem&>(rPoolItem);
             SvxTabStopItem aNewItem( EE_PARA_TABS );
             for ( sal_uInt16 i = 0; i < rItem.Count(); i++ )
@@ -918,7 +918,7 @@ void ConvertItem( SfxPoolItem& rPoolItem, MapUnit eSourceUnit, MapUnit eDestUnit
         case EE_CHAR_FONTHEIGHT_CJK:
         case EE_CHAR_FONTHEIGHT_CTL:
         {
-            DBG_ASSERT( rPoolItem.IsA( TYPE( SvxFontHeightItem ) ), "ConvertItem: Invalid Item!" );
+            DBG_ASSERT( dynamic_cast<const SvxFontHeightItem *>(&rPoolItem) != nullptr, "ConvertItem: Invalid Item!" );
             SvxFontHeightItem& rItem = static_cast<SvxFontHeightItem&>(rPoolItem);
             rItem.SetHeight( OutputDevice::LogicToLogic( rItem.GetHeight(), eSourceUnit, eDestUnit ) );
         }
diff --git a/editeng/source/editeng/editeng.cxx b/editeng/source/editeng/editeng.cxx
index 64c5738..f137bb4 100644
--- a/editeng/source/editeng/editeng.cxx
+++ b/editeng/source/editeng/editeng.cxx
@@ -2284,7 +2284,7 @@ bool EditEngine::UpdateFieldsOnly()
     return pImpEditEngine->UpdateFields();
 }
 
-void EditEngine::RemoveFields( bool bKeepFieldText, TypeId aType )
+void EditEngine::RemoveFields( bool bKeepFieldText, std::function<bool ( const SvxFieldData* )> isFieldData )
 {
 
     if ( bKeepFieldText )
@@ -2301,7 +2301,7 @@ void EditEngine::RemoveFields( bool bKeepFieldText, TypeId aType )
             if (rAttr.Which() == EE_FEATURE_FIELD)
             {
                 const SvxFieldData* pFldData = static_cast<const SvxFieldItem*>(rAttr.GetItem())->GetField();
-                if ( pFldData && ( !aType || ( pFldData->IsA( aType ) ) ) )
+                if ( pFldData && ( isFieldData( pFldData )  ) )
                 {
                     DBG_ASSERT( dynamic_cast<const SvxFieldItem*>(rAttr.GetItem()), "no field item..." );
                     EditSelection aSel( EditPaM(pNode, rAttr.GetStart()), EditPaM(pNode, rAttr.GetEnd()) );
diff --git a/editeng/source/outliner/outlin2.cxx b/editeng/source/outliner/outlin2.cxx
index 2d16ba5..d52f755 100644
--- a/editeng/source/outliner/outlin2.cxx
+++ b/editeng/source/outliner/outlin2.cxx
@@ -153,9 +153,9 @@ bool Outliner::UpdateFields()
     return pEditEngine->UpdateFields();
 }
 
-void Outliner::RemoveFields( bool bKeepFieldText, TypeId aType )
+void Outliner::RemoveFields( bool bKeepFieldText, std::function<bool ( const SvxFieldData* )> isFieldData )
 {
-    pEditEngine->RemoveFields( bKeepFieldText, aType );
+    pEditEngine->RemoveFields( bKeepFieldText, isFieldData );
 }
 
 void Outliner::SetWordDelimiters( const OUString& rDelimiters )
diff --git a/idl/inc/basobj.hxx b/idl/inc/basobj.hxx
index 71dc136..f63e158 100644
--- a/idl/inc/basobj.hxx
+++ b/idl/inc/basobj.hxx
@@ -23,7 +23,7 @@
 #include <tools/ref.hxx>
 #include <bastype.hxx>
 #include <tools/pstm.hxx>
-
+#include <functional>
 class SvTokenStream;
 class SvMetaObject;
 class SvIdlDataBase;
@@ -67,6 +67,10 @@ public:
     virtual bool        Test( SvIdlDataBase &, SvTokenStream & rInStm );
     virtual bool        ReadSvIdl( SvIdlDataBase &, SvTokenStream & rInStm );
 };
+template<class T> bool checkSvMetaObject(const SvMetaObject* pObject)
+{
+    return dynamic_cast<const T*>(pObject) != nullptr;
+}
 
 class SvMetaObjectMemberStack
 {
@@ -77,10 +81,10 @@ public:
     void            Push( SvMetaObject * pObj )
                     { aList.push_back( pObj ); }
     SvMetaObject *  Pop() { return aList.pop_back(); }
-    SvMetaObject *  Get( TypeId nType )
+    SvMetaObject *  Get( std::function<bool ( const SvMetaObject* )> isSvMetaObject )
                     {
                         for( SvMetaObjectMemberList::reverse_iterator it = aList.rbegin(); it != aList.rend(); ++it )
-                            if( (*it)->IsA( nType ) )
+                            if( isSvMetaObject(*it) )
                                 return *it;
                         return NULL;
                     }
diff --git a/idl/source/objects/basobj.cxx b/idl/source/objects/basobj.cxx
index 59a832e..a9a9062 100644
--- a/idl/source/objects/basobj.cxx
+++ b/idl/source/objects/basobj.cxx
@@ -188,7 +188,7 @@ const SvGlobalName & SvMetaExtern::GetUUId() const
 
 void SvMetaExtern::SetModule( SvIdlDataBase & rBase )
 {
-    pModule = static_cast<SvMetaModule *>(rBase.GetStack().Get( TYPE( SvMetaModule ) ));
+    pModule = static_cast<SvMetaModule *>(rBase.GetStack().Get( checkSvMetaObject<SvMetaModule> ));
 }
 
 void SvMetaExtern::ReadAttributesSvIdl( SvIdlDataBase & rBase,
diff --git a/idl/source/objects/object.cxx b/idl/source/objects/object.cxx
index 3310770..218504f 100644
--- a/idl/source/objects/object.cxx
+++ b/idl/source/objects/object.cxx
@@ -176,7 +176,7 @@ bool SvMetaClass::ReadSvIdl( SvIdlDataBase & rBase, SvTokenStream & rInStm )
 bool SvMetaClass::TestAttribute( SvIdlDataBase & rBase, SvTokenStream & rInStm,
                                  SvMetaAttribute & rAttr ) const
 {
-    if ( !rAttr.GetRef() && rAttr.IsA( TYPE( SvMetaSlot ) ) )
+    if ( !rAttr.GetRef() && dynamic_cast<const SvMetaSlot *>(&rAttr) != nullptr )
     {
         OSL_FAIL( "Neuer Slot : " );
         OSL_FAIL( rAttr.GetSlotId().getString().getStr() );
diff --git a/include/editeng/editeng.hxx b/include/editeng/editeng.hxx
index d9aee4b..a35a342 100644
--- a/include/editeng/editeng.hxx
+++ b/include/editeng/editeng.hxx
@@ -39,6 +39,7 @@
 #include <editeng/eedata.hxx>
 #include <o3tl/typed_flags_set.hxx>
 #include <svl/languageoptions.hxx>
+#include <functional>
 
 namespace com { namespace sun { namespace star {
   namespace linguistic2 {
@@ -136,6 +137,10 @@ namespace o3tl
 {
     template<> struct typed_flags<GetAttribsFlags> : is_typed_flags<GetAttribsFlags, 0x07> {};
 }
+template<class T> bool checkSvxFieldData(const SvxFieldData* pData)
+{
+    return dynamic_cast<const T*>(pData) != nullptr;
+}
 
 class SdrObject;
 class EDITENG_DLLPUBLIC EditEngine
@@ -452,7 +457,7 @@ public:
 
     bool UpdateFields();
     bool UpdateFieldsOnly();
-    void            RemoveFields( bool bKeepFieldText, TypeId aType = NULL );
+    void            RemoveFields( bool bKeepFieldText, std::function<bool ( const SvxFieldData* )> isFieldData = [] (const SvxFieldData* ){return true;} );
 
     sal_uInt16      GetFieldCount( sal_Int32 nPara ) const;
     EFieldInfo      GetFieldInfo( sal_Int32 nPara, sal_uInt16 nField ) const;
diff --git a/include/editeng/outliner.hxx b/include/editeng/outliner.hxx
index 77ae2e0..69ccb52 100644
--- a/include/editeng/outliner.hxx
+++ b/include/editeng/outliner.hxx
@@ -908,7 +908,7 @@ public:
     void            QuickFormatDoc( bool bFull = false );
 
     bool            UpdateFields();
-    void            RemoveFields( bool bKeepFieldText, TypeId aType = NULL );
+    void            RemoveFields( bool bKeepFieldText, std::function<bool ( const SvxFieldData* )> isFieldData = [] (const SvxFieldData* ){return true;} );
 
     void            FieldClicked( const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos );
     virtual OUString CalcFieldValue( const SvxFieldItem& rField, sal_Int32 nPara, sal_Int32 nPos, Color*& rTxtColor, Color*& rFldColor );
diff --git a/include/sfx2/objsh.hxx b/include/sfx2/objsh.hxx
index bf88c0f..f30c068 100644
--- a/include/sfx2/objsh.hxx
+++ b/include/sfx2/objsh.hxx
@@ -52,6 +52,7 @@
 #include <memory>
 #include <set>
 #include <o3tl/typed_flags_set.hxx>
+#include <functional>
 
 #define LOK_USE_UNSTABLE_API
 #include <LibreOfficeKit/LibreOfficeKitTypes.h>
@@ -193,6 +194,10 @@ enum class SfxObjectCreateMode
 
 class SfxToolBoxConfig;
 struct TransferableObjectDescriptor;
+template<class T> bool checkSfxObjectShell(const SfxObjectShell* pShell)
+{
+    return dynamic_cast<const T*>(pShell) != nullptr;
+}
 
 class SFX2_DLLPUBLIC SfxObjectShell :
     public SfxShell, virtual public SotObject,
@@ -255,10 +260,10 @@ public:
     static OUString CreateShellID( const SfxObjectShell* pShell );
 
     // Document-Shell Iterator
-    static SfxObjectShell*      GetFirst( const TypeId* pType = 0,
+    static SfxObjectShell*      GetFirst( std::function<bool ( const SfxObjectShell* )> isObjectShell = nullptr,
                                           bool bOnlyVisible = true );
     static SfxObjectShell*      GetNext( const SfxObjectShell& rPrev,
-                                         const TypeId* pType = 0,
+                                         std::function<bool ( const SfxObjectShell* )> isObjectShell = nullptr,
                                          bool bOnlyVisible = true );
     static SfxObjectShell*      Current();
     static ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
diff --git a/include/sfx2/request.hxx b/include/sfx2/request.hxx
old mode 100644
new mode 100755
index 5aafc55..c796d0c
--- a/include/sfx2/request.hxx
+++ b/include/sfx2/request.hxx
@@ -24,6 +24,7 @@
 #include <sal/types.h>
 #include <svl/itemset.hxx>
 #include <svl/hint.hxx>
+#include <functional>
 
 #include <com/sun/star/uno/Sequence.hxx>
 #include <com/sun/star/beans/PropertyValue.hpp>
@@ -39,8 +40,6 @@ class SfxViewFrame;
 struct SfxRequest_Impl;
 enum class SfxCallMode : sal_uInt16;
 
-
-
 class SFX2_DLLPUBLIC SfxRequest: public SfxHint
 {
 friend struct SfxRequest_Impl;
@@ -49,7 +48,6 @@ friend struct SfxRequest_Impl;
     SfxAllItemSet*      pArgs;
     SfxRequest_Impl*    pImp;
 
-
 public:
     SAL_DLLPRIVATE void Record_Impl( SfxShell &rSh, const SfxSlot &rSlot,
                                      com::sun::star::uno::Reference< com::sun::star::frame::XDispatchRecorder > xRecorder,
@@ -82,8 +80,9 @@ public:
 
     static const SfxPoolItem* GetItem( const SfxItemSet*, sal_uInt16 nSlotId,
                                        bool bDeep = false,
-                                       TypeId aType = 0 );
-    const SfxPoolItem*  GetArg( sal_uInt16 nSlotId, bool bDeep = false, TypeId aType = 0 ) const;
+                                       std::function<bool ( const SfxPoolItem* )> isItemType = nullptr );
+    const SfxPoolItem*  GetArg( sal_uInt16 nSlotId, bool bDeep = false, std::function<bool ( const SfxPoolItem* )> isItemType = nullptr ) const;
+
     void                ReleaseArgs();
     void                SetReturnValue(const SfxPoolItem &);
     const SfxPoolItem*  GetReturnValue() const;
@@ -111,14 +110,17 @@ private:
     const SfxRequest&   operator=(const SfxRequest &) SAL_DELETED_FUNCTION;
 };
 
-
+template<class T> bool checkSfxPoolItem(const SfxPoolItem* pItem)
+{
+    return dynamic_cast<const T*>(pItem) != nullptr;
+}
 
 #define SFX_REQUEST_ARG(rReq, pItem, ItemType, nSlotId, bDeep) \
         const ItemType *pItem = static_cast<const ItemType*>( \
-                rReq.GetArg( nSlotId, bDeep, TYPE(ItemType) ) )
+                rReq.GetArg( nSlotId, bDeep, checkSfxPoolItem<ItemType> ) )
 #define SFX_ITEMSET_ARG(pArgs, pItem, ItemType, nSlotId, bDeep) \
     const ItemType *pItem = static_cast<const ItemType*>( \
-        SfxRequest::GetItem( pArgs, nSlotId, bDeep, TYPE(ItemType) ) )
+        SfxRequest::GetItem( pArgs, nSlotId, bDeep, checkSfxPoolItem<ItemType> ) )
 
 #endif
 
diff --git a/include/sfx2/viewsh.hxx b/include/sfx2/viewsh.hxx
index ca5090f..1928989 100644
--- a/include/sfx2/viewsh.hxx
+++ b/include/sfx2/viewsh.hxx
@@ -41,6 +41,7 @@
 #include <sfx2/tabdlg.hxx>
 #define LOK_USE_UNSTABLE_API
 #include <LibreOfficeKit/LibreOfficeKitTypes.h>
+#include <functional>
 
 class SfxBaseController;
 class Size;
@@ -137,6 +138,11 @@ public: \
 #define SFX_VIEW_REGISTRATION(DocClass) \
             DocClass::Factory().RegisterViewFactory( *Factory() )
 
+template<class T> bool checkSfxViewShell(const SfxViewShell* pShell)
+{
+    return dynamic_cast<const T*>(pShell) != nullptr;
+}
+
 class SFX2_DLLPUBLIC SfxViewShell: public SfxShell, public SfxListener
 {
 #ifdef INCLUDED_SFX2_VIEWSH_HXX
@@ -166,9 +172,10 @@ protected:
 
 public:
     // Iteration
-    static SfxViewShell*        GetFirst( const TypeId* pType = 0, bool bOnlyVisible = true );
+    static SfxViewShell*        GetFirst( bool bOnlyVisible = true, std::function<bool ( const SfxViewShell* )> isViewShell = nullptr );
     static SfxViewShell*        GetNext( const SfxViewShell& rPrev,
-                                         const TypeId* pType = 0, bool bOnlyVisible = true );
+                                         bool bOnlyVisible = true,
+                                         std::function<bool ( const SfxViewShell* )> isViewShell = nullptr );
     static SfxViewShell*        Current();
 
     static SfxViewShell*        Get( const ::com::sun::star::uno::Reference< ::com::sun::star::frame::XController>& i_rController );
diff --git a/include/tools/pstm.hxx b/include/tools/pstm.hxx
index 9d22c42..577c301 100644
--- a/include/tools/pstm.hxx
+++ b/include/tools/pstm.hxx
@@ -75,7 +75,7 @@ public:
                     {                                               \
                         SvPersistBase * pObj;                       \
                         rStm >> pObj;                               \
-                        rpObj = PTR_CAST( Class, pObj );            \
+                        rpObj = dynamic_cast< Class*>( pObj );      \
                         return rStm;                                \
                     }
 
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index d391733..e6d9081 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -6764,8 +6764,7 @@ void Test::testUndoDataAnchor()
 
 ScDocShell* Test::findLoadedDocShellByName(const OUString& rName)
 {
-    TypeId aType(TYPE(ScDocShell));
-    ScDocShell* pShell = static_cast<ScDocShell*>(SfxObjectShell::GetFirst(&aType, false));
+    ScDocShell* pShell = static_cast<ScDocShell*>(SfxObjectShell::GetFirst(checkSfxObjectShell<ScDocShell>, false));
     while (pShell)
     {
         SfxMedium* pMedium = pShell->GetMedium();
@@ -6775,7 +6774,7 @@ ScDocShell* Test::findLoadedDocShellByName(const OUString& rName)
             if (aName.equals(rName))
                 return pShell;
         }
-        pShell = static_cast<ScDocShell*>(SfxObjectShell::GetNext(*pShell, &aType, false));
+        pShell = static_cast<ScDocShell*>(SfxObjectShell::GetNext(*pShell, checkSfxObjectShell<ScDocShell>, false));
     }
     return NULL;
 }
diff --git a/sc/source/core/data/documen8.cxx b/sc/source/core/data/documen8.cxx
index d9e9bd3..15818a9 100644
--- a/sc/source/core/data/documen8.cxx
+++ b/sc/source/core/data/documen8.cxx
@@ -726,7 +726,7 @@ void ScDocument::SaveDdeLinks(SvStream& rStream) const
     for (i=0; i<nCount; i++)
     {
         ::sfx2::SvBaseLink* pBase = *rLinks[i];
-        if (pBase->ISA(ScDdeLink))
+        if (dynamic_cast<const ScDdeLink*>( pBase) !=  nullptr)
             if ( !bExport40 || static_cast<ScDdeLink*>(pBase)->GetMode() == SC_DDE_DEFAULT )
                 ++nDdeCount;
     }
@@ -741,7 +741,7 @@ void ScDocument::SaveDdeLinks(SvStream& rStream) const
     for (i=0; i<nCount; i++)
     {
         ::sfx2::SvBaseLink* pBase = *rLinks[i];
-        if (pBase->ISA(ScDdeLink))
+        if (dynamic_cast<const ScDdeLink*>( pBase) !=  nullptr)
         {
             ScDdeLink* pLink = static_cast<ScDdeLink*>(pBase);
             if ( !bExport40 || pLink->GetMode() == SC_DDE_DEFAULT )
@@ -893,7 +893,7 @@ void ScDocument::CopyDdeLinks( ScDocument* pDestDoc ) const
     for (size_t i = 0, n = rLinks.size(); i < n; ++i)
     {
         const sfx2::SvBaseLink* pBase = *rLinks[i];
-        if (pBase->ISA(ScDdeLink))
+        if (dynamic_cast<const ScDdeLink*>( pBase) !=  nullptr)
         {
             const ScDdeLink* p = static_cast<const ScDdeLink*>(pBase);
             ScDdeLink* pNew = new ScDdeLink(pDestDoc, *p);
@@ -922,7 +922,7 @@ ScDdeLink* lclGetDdeLink(
         for( size_t nIndex = 0; nIndex < nCount; ++nIndex )
         {
             ::sfx2::SvBaseLink* pLink = *rLinks[ nIndex ];
-            if( ScDdeLink* pDdeLink = PTR_CAST( ScDdeLink, pLink ) )
+            if( ScDdeLink* pDdeLink = dynamic_cast<ScDdeLink*>( pLink )  )
             {
                 if( (OUString(pDdeLink->GetAppl()) == rAppl) &&
                     (OUString(pDdeLink->GetTopic()) == rTopic) &&
@@ -949,7 +949,7 @@ ScDdeLink* lclGetDdeLink( const sfx2::LinkManager* pLinkManager, size_t nDdePos
         for( size_t nIndex = 0; nIndex < nCount; ++nIndex )
         {
             ::sfx2::SvBaseLink* pLink = *rLinks[ nIndex ];
-            if( ScDdeLink* pDdeLink = PTR_CAST( ScDdeLink, pLink ) )
+            if( ScDdeLink* pDdeLink = dynamic_cast<ScDdeLink*>( pLink )  )
             {
                 if( nDdeIndex == nDdePos )
                     return pDdeLink;
@@ -1046,7 +1046,7 @@ bool ScDocument::HasAreaLinks() const
     const ::sfx2::SvBaseLinks& rLinks = pMgr->GetLinks();
     sal_uInt16 nCount = rLinks.size();
     for (sal_uInt16 i=0; i<nCount; i++)
-        if ((*rLinks[i])->ISA(ScAreaLink))
+        if (0 != dynamic_cast<const ScAreaLink* >((*rLinks[i]).get()))
             return true;
 
     return false;
@@ -1062,7 +1062,7 @@ void ScDocument::UpdateAreaLinks()
     for (size_t i=0; i<rLinks.size(); i++)
     {
         ::sfx2::SvBaseLink* pBase = *rLinks[i];
-        if (pBase->ISA(ScAreaLink))
+        if (dynamic_cast<const ScAreaLink*>( pBase) !=  nullptr)
             pBase->Update();
     }
 }
@@ -1078,7 +1078,7 @@ void ScDocument::DeleteAreaLinksOnTab( SCTAB nTab )
     while ( nPos < rLinks.size() )
     {
         const ::sfx2::SvBaseLink* pBase = *rLinks[nPos];
-        if ( pBase->ISA(ScAreaLink) &&
+        if ( dynamic_cast<const ScAreaLink*>( pBase) !=  nullptr &&
              static_cast<const ScAreaLink*>(pBase)->GetDestArea().aStart.Tab() == nTab )
             pMgr->Remove(nPos);
         else
@@ -1100,7 +1100,7 @@ void ScDocument::UpdateRefAreaLinks( UpdateRefMode eUpdateRefMode,
     for (sal_uInt16 i=0; i<nCount; i++)
     {
         ::sfx2::SvBaseLink* pBase = *rLinks[i];
-        if (pBase->ISA(ScAreaLink))
+        if (dynamic_cast<const ScAreaLink*>( pBase) !=  nullptr)
         {
             ScAreaLink* pLink = static_cast<ScAreaLink*>(pBase);
             ScRange aOutRange = pLink->GetDestArea();
@@ -1136,13 +1136,13 @@ void ScDocument::UpdateRefAreaLinks( UpdateRefMode eUpdateRefMode,
         {
             bool bFound = false;
             ::sfx2::SvBaseLink* pFirst = *rLinks[nFirstIndex];
-            if ( pFirst->ISA(ScAreaLink) )
+            if ( dynamic_cast<const ScAreaLink*>( pFirst) !=  nullptr )
             {
                 ScAddress aFirstPos = static_cast<ScAreaLink*>(pFirst)->GetDestArea().aStart;
                 for ( sal_uInt16 nSecondIndex = nFirstIndex + 1; nSecondIndex < nCount && !bFound; ++nSecondIndex )
                 {
                     ::sfx2::SvBaseLink* pSecond = *rLinks[nSecondIndex];
-                    if ( pSecond->ISA(ScAreaLink) &&
+                    if ( dynamic_cast<const ScAreaLink*>( pSecond) !=  nullptr &&
                          static_cast<ScAreaLink*>(pSecond)->GetDestArea().aStart == aFirstPos )
                     {
                         // remove the first link, exit the inner loop, don't increment nFirstIndex
diff --git a/sc/source/core/data/documen9.cxx b/sc/source/core/data/documen9.cxx
index 0c9ad39..9ca2092 100644
--- a/sc/source/core/data/documen9.cxx
+++ b/sc/source/core/data/documen9.cxx
@@ -344,7 +344,7 @@ void ScDocument::StartAnimations( SCTAB nTab, vcl::Window* pWin )
     SdrObject* pObject = aIter.Next();
     while (pObject)
     {
-        if (pObject->ISA(SdrGrafObj))
+        if (dynamic_cast<const SdrGrafObj*>( pObject) !=  nullptr)
         {
             SdrGrafObj* pGrafObj = static_cast<SdrGrafObj*>(pObject);
             if ( pGrafObj->IsAnimated() )
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 68d9959..8fafa7b 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -4818,7 +4818,7 @@ bool ScDocument::IsStyleSheetUsed( const ScStyleSheet& rStyle, bool bGatherAllSt
             for ( const SfxStyleSheetBase* pStyle = aIter.First(); pStyle;
                                            pStyle = aIter.Next() )
             {
-                const ScStyleSheet* pScStyle = PTR_CAST( ScStyleSheet, pStyle );
+                const ScStyleSheet* pScStyle = dynamic_cast<const ScStyleSheet*>( pStyle  );
                 if ( pScStyle )
                     pScStyle->SetUsage( ScStyleSheet::NOTUSED );
             }
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index dc7576c..f87954f 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -552,7 +552,7 @@ void ScDrawLayer::MoveCells( SCTAB nTab, SCCOL nCol1,SCROW nRow1, SCCOL nCol2,SC
             }
             if (bChange)
             {
-                if ( pObj->ISA( SdrRectObj ) && pData->maStart.IsValid() && pData->maEnd.IsValid() )
+                if ( dynamic_cast<const SdrRectObj*>( pObj) !=  nullptr && pData->maStart.IsValid() && pData->maEnd.IsValid() )
                     pData->maStart.PutInOrder( pData->maEnd );
 
                 // Update also an untransformed anchor thats what we stored ( and still do ) to xml
@@ -2047,7 +2047,7 @@ IMapObject* ScDrawLayer::GetHitIMapObject( SdrObject* pObj,
         Graphic     aGraphic;
         bool        bObjSupported = false;
 
-        if ( pObj->ISA( SdrGrafObj )  ) // Simple Graphics object
+        if ( dynamic_cast<const SdrGrafObj*>( pObj) !=  nullptr  ) // Simple Graphics object
         {
             const SdrGrafObj*   pGrafObj = static_cast<const SdrGrafObj*>( pObj );
             const GeoStat&      rGeo = pGrafObj->GetGeoStat();
@@ -2075,7 +2075,7 @@ IMapObject* ScDrawLayer::GetHitIMapObject( SdrObject* pObj,
 
             bObjSupported = true;
         }
-        else if ( pObj->ISA( SdrOle2Obj ) ) // OLE object
+        else if ( dynamic_cast<const SdrOle2Obj*>( pObj) !=  nullptr ) // OLE object
         {
             // TODO/LEAN: working with visual area needs running state
             aGraphSize = static_cast<const SdrOle2Obj*>(pObj)->GetOrigObjSize();
diff --git a/sc/source/core/data/stlpool.cxx b/sc/source/core/data/stlpool.cxx
index d175cc7..ecc6b45 100644
--- a/sc/source/core/data/stlpool.cxx
+++ b/sc/source/core/data/stlpool.cxx
@@ -110,7 +110,7 @@ SfxStyleSheetBase* ScStyleSheetPool::Create( const OUString&   rName,
 
 SfxStyleSheetBase* ScStyleSheetPool::Create( const SfxStyleSheetBase& rStyle )
 {
-    OSL_ENSURE( rStyle.ISA(ScStyleSheet), "Invalid StyleSheet-class! :-/" );
+    OSL_ENSURE( dynamic_cast<const ScStyleSheet*>( &rStyle) !=  nullptr, "Invalid StyleSheet-class! :-/" );
     return new ScStyleSheet( static_cast<const ScStyleSheet&>(rStyle) );
 }
 
diff --git a/sc/source/core/data/table5.cxx b/sc/source/core/data/table5.cxx
index e54eaa7..fe8db91 100644
--- a/sc/source/core/data/table5.cxx
+++ b/sc/source/core/data/table5.cxx
@@ -133,7 +133,7 @@ void ScTable::UpdatePageBreaks( const ScRange* pUserArea )
     {
          if ( pStyleSet->GetItemState( ATTR_PAGE_SCALETOPAGES, false, &pItem ) == SfxItemState::SET )
          {
-              OSL_ENSURE( pItem->ISA(SfxUInt16Item), "invalid Item" );
+              OSL_ENSURE( dynamic_cast<const SfxUInt16Item*>( pItem) !=  nullptr, "invalid Item" );
               bSkipColBreaks = bSkipRowBreaks = static_cast<const SfxUInt16Item*>(pItem)->GetValue() > 0;
          }
 
diff --git a/sc/source/core/data/validat.cxx b/sc/source/core/data/validat.cxx
index e168ec6..2e77ada 100644
--- a/sc/source/core/data/validat.cxx
+++ b/sc/source/core/data/validat.cxx
@@ -289,7 +289,7 @@ bool ScValidationData::DoMacro( const ScAddress& rPos, const OUString& rInput,
 
     StarBASIC* pRoot = pDocSh->GetBasic();
     SbxVariable* pVar = pRoot->Find( aErrorTitle, SbxCLASS_METHOD );
-    if ( pVar && pVar->ISA(SbMethod) )
+    if ( pVar && dynamic_cast<const SbMethod*>( pVar) !=  nullptr )
     {
         SbMethod* pMethod = static_cast<SbMethod*>(pVar);
         SbModule* pModule = pMethod->GetModule();
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 41c526e..91bef3d 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -3064,7 +3064,7 @@ bool ScCompiler::IsMacro( const OUString& rName )
     // It really should be a BASIC function!
     if( pMeth->GetType() == SbxVOID
      || ( pMeth->IsFixed() && pMeth->GetType() == SbxEMPTY )
-     || !pMeth->ISA(SbMethod) )
+     || dynamic_cast<const SbMethod*>( pMeth) ==  nullptr )
     {
         return false;
     }
diff --git a/sc/source/core/tool/detfunc.cxx b/sc/source/core/tool/detfunc.cxx
index be0c53c..1b31801 100644
--- a/sc/source/core/tool/detfunc.cxx
+++ b/sc/source/core/tool/detfunc.cxx
@@ -1251,7 +1251,7 @@ bool ScDetectiveFunc::DeleteAll( ScDetectiveDelete eWhat )
                 bool bDoThis = true;
                 if ( eWhat != SC_DET_ALL )
                 {
-                    bool bCircle = ( pObject->ISA(SdrCircObj) );
+                    bool bCircle = ( dynamic_cast<const SdrCircObj*>( pObject) !=  nullptr );
                     bool bCaption = ScDrawLayer::IsNoteCaption( pObject );
                     if ( eWhat == SC_DET_DETECTIVE )        // detektive, from menue
                         bDoThis = !bCaption;                // also circles
@@ -1502,7 +1502,7 @@ void ScDetectiveFunc::UpdateAllArrowColors()
                     {
                         //  frame for area reference has no ObjType, always gets arrow color
 
-                        if ( pObject->ISA( SdrRectObj ) && !pObject->ISA( SdrCaptionObj ) )
+                        if ( dynamic_cast<const SdrRectObj*>( pObject) != nullptr && dynamic_cast<const SdrCaptionObj*>( pObject) ==  nullptr )
                         {
                             bArrow = true;
                         }
@@ -1544,7 +1544,7 @@ bool ScDetectiveFunc::FindFrameForObject( SdrObject* pObject, ScRange& rRange )
         {
             SdrObject* pPrevObj = pPage->GetObj(nOrdNum - 1);
 
-            if ( pPrevObj && pPrevObj->GetLayer() == SC_LAYER_INTERN && pPrevObj->ISA(SdrRectObj) )
+            if ( pPrevObj && pPrevObj->GetLayer() == SC_LAYER_INTERN && dynamic_cast<const SdrRectObj*>( pPrevObj) !=  nullptr )
             {
                 ScDrawObjData* pPrevData = ScDrawLayer::GetObjDataTab( pPrevObj, rRange.aStart.Tab() );
                 if ( pPrevData && pPrevData->maStart.IsValid() && pPrevData->maEnd.IsValid() && (pPrevData->maStart == rRange.aStart) )
@@ -1596,7 +1596,7 @@ ScDetectiveObjType ScDetectiveFunc::GetDetectiveObjectType( SdrObject* pObject,
                 if ( nObjColor == GetErrorColor() && nObjColor != GetArrowColor() )
                     rRedLine = true;
             }
-            else if ( pObject->ISA(SdrCircObj) )
+            else if ( dynamic_cast<const SdrCircObj*>( pObject) !=  nullptr )
             {
                 if ( bValidStart )
                 {
diff --git a/sc/source/core/tool/editutil.cxx b/sc/source/core/tool/editutil.cxx
index 4d797cc..c2fedb2 100644
--- a/sc/source/core/tool/editutil.cxx
+++ b/sc/source/core/tool/editutil.cxx
@@ -877,7 +877,7 @@ void ScFieldEditEngine::FieldClicked( const SvxFieldItem& rField, sal_Int32, sal
 {
     const SvxFieldData* pFld = rField.GetField();
 
-    if ( pFld && pFld->ISA( SvxURLField ) && bExecuteURL )
+    if ( pFld && dynamic_cast<const SvxURLField*>( pFld) !=  nullptr && bExecuteURL )
     {
         const SvxURLField* pURLField = static_cast<const SvxURLField*>(pFld);
         ScGlobal::OpenURL( pURLField->GetURL(), pURLField->GetTargetFrame() );
diff --git a/sc/source/core/tool/interpr2.cxx b/sc/source/core/tool/interpr2.cxx
index 677f2d3..ce1fdda 100644
--- a/sc/source/core/tool/interpr2.cxx
+++ b/sc/source/core/tool/interpr2.cxx
@@ -2346,7 +2346,7 @@ static ScDdeLink* lcl_GetDdeLink( sfx2::LinkManager* pLinkMgr,
     for (size_t i=0; i<nCount; i++ )
     {
         ::sfx2::SvBaseLink* pBase = *pLinkMgr->GetLinks()[i];
-        if (pBase->ISA(ScDdeLink))
+        if (dynamic_cast<const ScDdeLink*>( pBase) !=  nullptr)
         {
             ScDdeLink* pLink = static_cast<ScDdeLink*>(pBase);
             if ( pLink->GetAppl() == rA &&
diff --git a/sc/source/core/tool/interpr4.cxx b/sc/source/core/tool/interpr4.cxx
index 68d182c..211ac7c 100644
--- a/sc/source/core/tool/interpr4.cxx
+++ b/sc/source/core/tool/interpr4.cxx
@@ -2907,7 +2907,7 @@ void ScInterpreter::ScMacro()
     }
 
     SbxVariable* pVar = pRoot ? pRoot->Find(aMacro, SbxCLASS_METHOD) : NULL;
-    if( !pVar || pVar->GetType() == SbxVOID || !pVar->ISA(SbMethod) )
+    if( !pVar || pVar->GetType() == SbxVOID || dynamic_cast<const SbMethod*>( pVar) ==  nullptr )
     {
         PushError( errNoMacro );
         return;
@@ -2919,7 +2919,7 @@ void ScInterpreter::ScMacro()
     SbModule* pModule = pMethod->GetModule();
     bool bUseVBAObjects = pModule->IsVBACompat();
     SbxObject* pObject = pModule->GetParent();
-    OSL_ENSURE(pObject->IsA(TYPE(StarBASIC)), "No Basic found!");
+    OSL_ENSURE(dynamic_cast<const StarBASIC *>(pObject) != nullptr, "No Basic found!");
     OUString aMacroStr = pObject->GetName() + "." + pModule->GetName() + "." + pMethod->GetName();
     OUString aBasicStr;
     if (pObject->GetParent())
@@ -3095,7 +3095,7 @@ void ScInterpreter::ScMacro()
         else if ( eResType & SbxARRAY )
         {
             SbxBase* pElemObj = refRes->GetObject();
-            SbxDimArray* pDimArray = PTR_CAST(SbxDimArray,pElemObj);
+            SbxDimArray* pDimArray = dynamic_cast< SbxDimArray *>( pElemObj );
             short nDim = pDimArray->GetDims();
             if ( 1 <= nDim && nDim <= 2 )
             {
diff --git a/sc/source/filter/excel/xehelper.cxx b/sc/source/filter/excel/xehelper.cxx
index ab144bb..e67cba0 100644
--- a/sc/source/filter/excel/xehelper.cxx
+++ b/sc/source/filter/excel/xehelper.cxx
@@ -465,7 +465,7 @@ XclExpStringRef lclCreateFormattedString(
                 if( aEditSet.GetItemState( EE_FEATURE_FIELD, false, &pItem ) == SfxItemState::SET )
                 {
                     const SvxFieldData* pField = static_cast< const SvxFieldItem* >( pItem )->GetField();
-                    if( const SvxURLField* pUrlField = PTR_CAST( SvxURLField, pField ) )
+                    if( const SvxURLField* pUrlField = dynamic_cast<const SvxURLField*>( pField )  )
                     {
                         // convert URL field to string representation
                         aXclPortionText = pLinkHelper ?
@@ -808,19 +808,19 @@ void XclExpHFConverter::AppendPortion( const EditTextObject* pTextObj, sal_Unico
                 {
                     if( const SvxFieldData* pFieldData = static_cast< const SvxFieldItem* >( pItem )->GetField() )
                     {
-                        if( pFieldData->ISA( SvxPageField ) )
+                        if( dynamic_cast<const SvxPageField*>( pFieldData) !=  nullptr )
                             aParaText += "&P";
-                        else if( pFieldData->ISA( SvxPagesField ) )
+                        else if( dynamic_cast<const SvxPagesField*>( pFieldData) !=  nullptr )
                             aParaText += "&N";
-                        else if( pFieldData->ISA( SvxDateField ) )
+                        else if( dynamic_cast<const SvxDateField*>( pFieldData) !=  nullptr )
                             aParaText += "&D";
-                        else if( pFieldData->ISA( SvxTimeField ) || pFieldData->ISA( SvxExtTimeField ) )
+                        else if( dynamic_cast<const SvxTimeField*>( pFieldData) != nullptr || dynamic_cast<const SvxExtTimeField*>( pFieldData) !=  nullptr )
                             aParaText += "&T";
-                        else if( pFieldData->ISA( SvxTableField ) )
+                        else if( dynamic_cast<const SvxTableField*>( pFieldData) !=  nullptr )
                             aParaText += "&A";
-                        else if( pFieldData->ISA( SvxFileField ) )  // title -> file name
+                        else if( dynamic_cast<const SvxFileField*>( pFieldData) !=  nullptr )  // title -> file name
                             aParaText += "&F";
-                        else if( const SvxExtFileField* pFileField = PTR_CAST( SvxExtFileField, pFieldData ) )
+                        else if( const SvxExtFileField* pFileField = dynamic_cast<const SvxExtFileField*>( pFieldData )  )
                         {
                             switch( pFileField->GetFormat() )
                             {
diff --git a/sc/source/filter/html/htmlexp.cxx b/sc/source/filter/html/htmlexp.cxx
index 8ddd831..c8d3622 100644
--- a/sc/source/filter/html/htmlexp.cxx
+++ b/sc/source/filter/html/htmlexp.cxx
@@ -1268,7 +1268,7 @@ bool ScHTMLExport::WriteFieldText( const EditTextObject* pData )
                     if ( aSet.GetItemState( EE_FEATURE_FIELD, false, &pItem ) == SfxItemState::SET )
                     {
                         const SvxFieldData* pField = static_cast<const SvxFieldItem*>(pItem)->GetField();
-                        if ( pField && pField->ISA(SvxURLField) )
+                        if ( pField && dynamic_cast<const SvxURLField*>( pField) !=  nullptr )
                         {
                             bUrl = true;
                             const SvxURLField*  pURLField = static_cast<const SvxURLField*>(pField);
diff --git a/sc/source/filter/xcl97/xcl97esc.cxx b/sc/source/filter/xcl97/xcl97esc.cxx
index 0191c89..6a36a78 100644
--- a/sc/source/filter/xcl97/xcl97esc.cxx
+++ b/sc/source/filter/xcl97/xcl97esc.cxx
@@ -287,7 +287,7 @@ EscherExHostAppData* XclEscherEx::StartShape( const Reference< XShape >& rxShape
                         pAnchor->SetFlags( *pObj );
                         pCurrAppData->SetClientAnchor( pAnchor );
                     }
-                    const SdrTextObj* pTextObj = PTR_CAST( SdrTextObj, pObj );
+                    const SdrTextObj* pTextObj = dynamic_cast<SdrTextObj*>( pObj  );
                     if( pTextObj && !lcl_IsFontwork( pTextObj ) && (pObj->GetObjIdentifier() != OBJ_CAPTION) )
                     {
                         const OutlinerParaObject* pParaObj = pTextObj->GetOutlinerParaObject();
diff --git a/sc/source/ui/app/client.cxx b/sc/source/ui/app/client.cxx
index 0fea634..11702c6 100644
--- a/sc/source/ui/app/client.cxx
+++ b/sc/source/ui/app/client.cxx
@@ -80,7 +80,7 @@ SdrOle2Obj* ScClient::GetDrawObj()
 void ScClient::RequestNewObjectArea( Rectangle& aLogicRect )
 {
     SfxViewShell* pSfxViewSh = GetViewShell();
-    ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, pSfxViewSh );
+    ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( pSfxViewSh  );
     if (!pViewSh)
     {
         OSL_FAIL("Wrong ViewShell");
@@ -142,7 +142,7 @@ void ScClient::RequestNewObjectArea( Rectangle& aLogicRect )
 void ScClient::ObjectAreaChanged()
 {
     SfxViewShell* pSfxViewSh = GetViewShell();
-    ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, pSfxViewSh );
+    ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( pSfxViewSh  );
     if (!pViewSh)
     {
         OSL_FAIL("Wrong ViewShell");
@@ -174,7 +174,7 @@ void ScClient::ObjectAreaChanged()
         //  set document modified (SdrModel::SetChanged is not used)
         // TODO/LATER: is there a reason that this code is not executed in Draw?
 //        SfxViewShell* pSfxViewSh = GetViewShell();
-//        ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, pSfxViewSh );
+//        ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( pSfxViewSh  );
         if (pViewSh)
             pViewSh->GetViewData().GetDocShell()->SetDrawModified();
     }
@@ -226,7 +226,7 @@ void ScClient::ViewChanged()
         //SetObjArea( aObjArea );
 
         SfxViewShell* pSfxViewSh = GetViewShell();
-        ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, pSfxViewSh );
+        ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( pSfxViewSh  );
         if ( pViewSh )
         {
             vcl::Window* pWin = pViewSh->GetActiveWin();
diff --git a/sc/source/ui/app/drwtrans.cxx b/sc/source/ui/app/drwtrans.cxx
index c218266..4cd8e87 100644
--- a/sc/source/ui/app/drwtrans.cxx
+++ b/sc/source/ui/app/drwtrans.cxx
@@ -127,7 +127,7 @@ ScDrawTransferObj::ScDrawTransferObj( SdrModel* pClipModel, ScDocShell* pContain
 
             //  URL button
 
-            SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pObject);
+            SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( pObject );
             if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor())
             {
                 uno::Reference<awt::XControlModel> xControlModel = pUnoCtrl->GetUnoControlModel();
@@ -267,7 +267,7 @@ static bool lcl_HasOnlyControls( SdrModel* pModel )
                 bOnlyControls = true;   // only set if there are any objects at all
                 while ( pObj )
                 {
-                    if (!pObj->ISA(SdrUnoObj))
+                    if (dynamic_cast<const SdrUnoObj*>( pObj) ==  nullptr)
                     {
                         bOnlyControls = false;
                         break;
@@ -746,7 +746,7 @@ void ScDrawTransferObj::InitDocShell()
             SdrObject* pObject = aIter.Next();
             while (pObject)
             {
-                if ( pObject->ISA(SdrUnoObj) )
+                if ( dynamic_cast<const SdrUnoObj*>( pObject) !=  nullptr )
                     pObject->NbcSetLayer(SC_LAYER_CONTROLS);
                 else
                     pObject->NbcSetLayer(SC_LAYER_FRONT);
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 8cabdcb..9d5567d 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -1676,7 +1676,7 @@ void ScInputHandler::ViewShellGone(ScTabViewShell* pViewSh) // Executed synchron
         UpdateAutoCorrFlag();
     }
 
-    pActiveViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
+    pActiveViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current()  );
 
     if ( pActiveViewSh && pActiveViewSh == pViewSh )
     {
@@ -2226,7 +2226,7 @@ void ScInputHandler::ShowRefFrame()
     // Modifying pActiveViewSh here would interfere with the bInEnterHandler / bRepeat
     // checks in NotifyChange, and lead to keeping the wrong value in pActiveViewSh.
     // A local variable is used instead.
-    ScTabViewShell* pVisibleSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
+    ScTabViewShell* pVisibleSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current()  );
     if ( pRefViewSh && pRefViewSh != pVisibleSh )
     {
         bool bFound = false;
@@ -3395,7 +3395,7 @@ void ScInputHandler::NotifyChange( const ScInputHdlState* pState,
     if ( pSourceSh )
         pActiveViewSh = pSourceSh;
     else
-        pActiveViewSh = PTR_CAST(ScTabViewShell, SfxViewShell::Current());
+        pActiveViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current() );
 
     ImplCreateEditEngine();
 
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index a717f00..ae05543 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -161,7 +161,7 @@ static VclPtr<ScTextWndBase> lcl_chooseRuntimeImpl( vcl::Window* pParent, SfxBin
     {
         SfxViewFrame* pViewFrm = pDisp->GetFrame();
         if ( pViewFrm )
-            pViewSh = PTR_CAST( ScTabViewShell, pViewFrm->GetViewShell() );
+            pViewSh = dynamic_cast<ScTabViewShell*>( pViewFrm->GetViewShell()  );
     }
 
     if ( !lcl_isExperimentalMode() )
@@ -196,7 +196,7 @@ ScInputWindow::ScInputWindow( vcl::Window* pParent, SfxBindings* pBind ) :
     {
         SfxViewFrame* pViewFrm = pDisp->GetFrame();
         if ( pViewFrm )
-            pViewSh = PTR_CAST( ScTabViewShell, pViewFrm->GetViewShell() );
+            pViewSh = dynamic_cast<ScTabViewShell*>( pViewFrm->GetViewShell()  );
     }
     OSL_ENSURE( pViewSh, "no view shell for input window" );
 
@@ -271,8 +271,7 @@ void ScInputWindow::dispose()
 
     if ( !bDown )
     {
-        TypeId aScType = TYPE(ScTabViewShell);
-        SfxViewShell* pSh = SfxViewShell::GetFirst( &aScType );
+        SfxViewShell* pSh = SfxViewShell::GetFirst( true, checkSfxViewShell<ScTabViewShell> );
         while ( pSh )
         {
             ScInputHandler* pHdl = static_cast<ScTabViewShell*>(pSh)->GetInputHandler();
@@ -281,7 +280,7 @@ void ScInputWindow::dispose()
                 pHdl->SetInputWindow( NULL );
                 pHdl->StopInputWinEngine( false );  // reset pTopView pointer
             }
-            pSh = SfxViewShell::GetNext( *pSh, &aScType );
+            pSh = SfxViewShell::GetNext( *pSh, true, checkSfxViewShell<ScTabViewShell> );
         }
     }
 
@@ -309,7 +308,7 @@ void ScInputWindow::SetInputHandler( ScInputHandler* pNew )
 bool ScInputWindow::UseSubTotal(ScRangeList* pRangeList)
 {
     bool bSubTotal = false;
-    ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
+    ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current()  );
     if ( pViewSh )
     {
         ScDocument* pDoc = pViewSh->GetViewData().GetDocument();
@@ -401,7 +400,7 @@ void ScInputWindow::Select()
 
         case SID_INPUT_SUM:
             {
-                ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
+                ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current()  );
                 if ( pViewSh )
                 {
                     const ScMarkData& rMark = pViewSh->GetViewData().GetMarkData();
@@ -511,7 +510,7 @@ void ScInputWindow::Select()
                 sal_Int32 nStartPos = 1;
                 sal_Int32 nEndPos = 1;
 
-                ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
+                ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current()  );
                 if ( pViewSh )
                 {
                     const OUString& rString = aTextWindow.GetTextString();
@@ -1799,7 +1798,7 @@ void ScTextWnd::StartEditEngine()
         //  as long as EditEngine and DrawText sometimes differ for CTL text,
         //  repaint now to have the EditEngine's version visible
 //        SfxObjectShell* pObjSh = SfxObjectShell::Current();
-        if ( pObjSh && pObjSh->ISA(ScDocShell) )
+        if ( pObjSh && dynamic_cast<const ScDocShell*>( pObjSh) !=  nullptr )
         {
             ScDocument& rDoc = static_cast<ScDocShell*>(pObjSh)->GetDocument();    // any document
             SvtScriptType nScript = rDoc.GetStringScriptType( aString );
@@ -1896,7 +1895,7 @@ void ScTextWnd::SetTextString( const OUString& rNewString )
                 SvtScriptType nOldScript = SvtScriptType::NONE;
                 SvtScriptType nNewScript = SvtScriptType::NONE;
                 SfxObjectShell* pObjSh = SfxObjectShell::Current();
-                if ( pObjSh && pObjSh->ISA(ScDocShell) )
+                if ( pObjSh && dynamic_cast<const ScDocShell*>( pObjSh) !=  nullptr )
                 {
                     //  any document can be used (used only for its break iterator)
                     ScDocument& rDoc = static_cast<ScDocShell*>(pObjSh)->GetDocument();
@@ -2140,7 +2139,7 @@ void ScPosWnd::FillRangeNames()
     Clear();
 
     SfxObjectShell* pObjSh = SfxObjectShell::Current();
-    if ( pObjSh && pObjSh->ISA(ScDocShell) )
+    if ( pObjSh && dynamic_cast<const ScDocShell*>( pObjSh) !=  nullptr )
     {
         ScDocument& rDoc = static_cast<ScDocShell*>(pObjSh)->GetDocument();
 
@@ -2392,7 +2391,7 @@ void ScPosWnd::DoEnter()
             }
             else
             {
-                ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
+                ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current()  );
                 ScInputHandler* pHdl = pScMod->GetInputHdl( pViewSh );
                 if (pHdl)
                     pHdl->InsertFunction( aText );
@@ -2531,7 +2530,7 @@ void ScPosWnd::ReleaseFocus_Impl()
     HideTip();
 
     SfxViewShell* pCurSh = SfxViewShell::Current();
-    ScInputHandler* pHdl = SC_MOD()->GetInputHdl( PTR_CAST( ScTabViewShell, pCurSh ) );
+    ScInputHandler* pHdl = SC_MOD()->GetInputHdl( dynamic_cast<ScTabViewShell*>( pCurSh )  );
     if ( pHdl && pHdl->IsTopMode() )
     {
         // Focus back in input row?
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 1265653..81626ab 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -246,7 +246,7 @@ void ScModule::ConfigurationChanged( utl::ConfigurationBroadcaster* p, sal_uInt3
         SfxViewShell* pViewShell = SfxViewShell::GetFirst();
         while(pViewShell)
         {
-            if ( pViewShell->ISA(ScTabViewShell) )
+            if ( dynamic_cast<const ScTabViewShell*>( pViewShell) !=  nullptr )
             {
                 ScTabViewShell* pViewSh = static_cast<ScTabViewShell*>(pViewShell);
                 pViewSh->PaintGrid();
@@ -258,7 +258,7 @@ void ScModule::ConfigurationChanged( utl::ConfigurationBroadcaster* p, sal_uInt3
                 if ( pHdl )
                     pHdl->ForgetLastPattern(); // EditEngine BackgroundColor may change
             }
-            else if ( pViewShell->ISA(ScPreviewShell) )
+            else if ( dynamic_cast<const ScPreviewShell*>( pViewShell) !=  nullptr )
             {
                 vcl::Window* pWin = pViewShell->GetWindow();
                 if (pWin)
@@ -293,7 +293,7 @@ void ScModule::ConfigurationChanged( utl::ConfigurationBroadcaster* p, sal_uInt3
         SfxViewShell* pSh = SfxViewShell::GetFirst();
         while ( pSh )
         {
-            if ( pSh->ISA( ScTabViewShell ) )
+            if ( dynamic_cast<const ScTabViewShell*>( pSh) !=  nullptr )
             {
                 ScTabViewShell* pViewSh = static_cast<ScTabViewShell*>(pSh);
 
@@ -305,7 +305,7 @@ void ScModule::ConfigurationChanged( utl::ConfigurationBroadcaster* p, sal_uInt3
                 pViewSh->DigitLanguageChanged();
                 pViewSh->PaintGrid();
             }
-            else if ( pSh->ISA( ScPreviewShell ) )
+            else if ( dynamic_cast<const ScPreviewShell*>( pSh) !=  nullptr )
             {
                 ScPreviewShell* pPreviewSh = static_cast<ScPreviewShell*>(pSh);
                 ScPreview* pPreview = pPreviewSh->GetPreview();
@@ -398,7 +398,7 @@ void ScModule::Execute( SfxRequest& rReq )
                     bSet = static_cast<const SfxBoolItem*>(pItem)->GetValue();
                 else
                 {   // Toggle
-                    ScDocShell* pDocSh = PTR_CAST(ScDocShell, SfxObjectShell::Current());
+                    ScDocShell* pDocSh = dynamic_cast<ScDocShell*>( SfxObjectShell::Current() );
                     if ( pDocSh )
                         bSet = !pDocSh->GetDocument().GetDocOptions().IsAutoSpell();
                     else
@@ -476,7 +476,7 @@ void ScModule::Execute( SfxRequest& rReq )
             if (pReqArgs)
             {
                 const SfxUInt16Item& rItem = static_cast<const SfxUInt16Item&>(pReqArgs->Get(SID_PSZ_FUNCTION));
-                OSL_ENSURE(rItem.ISA(SfxUInt16Item),"wrong Parameter");
+                OSL_ENSURE(dynamic_cast<const SfxUInt16Item*>( &rItem) !=  nullptr,"wrong Parameter");
 
                 ScAppOptions aNewOpts( GetAppOptions() );
                 aNewOpts.SetStatusFunc( rItem.GetValue() );
@@ -501,7 +501,7 @@ void ScModule::Execute( SfxRequest& rReq )
                 const SfxPoolItem* pItem;
                 if ( pReqArgs && SfxItemState::SET == pReqArgs->GetItemState( GetPool().GetWhich(nSlot), true, &pItem ) )
                 {
-                    ScDocShell* pDocSh = PTR_CAST(ScDocShell, SfxObjectShell::Current());
+                    ScDocShell* pDocSh = dynamic_cast<ScDocShell*>( SfxObjectShell::Current() );
                     if ( pDocSh )
                     {
                         ScDocument& rDoc = pDocSh->GetDocument();
@@ -524,7 +524,7 @@ void ScModule::Execute( SfxRequest& rReq )
                             ScInputHandler* pInputHandler = GetInputHdl();
                             if ( pInputHandler )
                                 pInputHandler->UpdateSpellSettings(); // EditEngine flags
-                            ScTabViewShell* pViewSh = PTR_CAST(ScTabViewShell, SfxViewShell::Current());
+                            ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current() );
                             if ( pViewSh )
                                 pViewSh->UpdateDrawTextOutliner(); // EditEngine flags
 
@@ -570,7 +570,7 @@ void ScModule::Execute( SfxRequest& rReq )
 
 void ScModule::GetState( SfxItemSet& rSet )
 {
-    ScDocShell* pDocSh = PTR_CAST(ScDocShell, SfxObjectShell::Current());
+    ScDocShell* pDocSh = dynamic_cast<ScDocShell*>( SfxObjectShell::Current() );
     bool bTabView = pDocSh && (pDocSh->GetBestViewShell() != NULL);
 
     SfxWhichIter aIter(rSet);
@@ -961,8 +961,8 @@ void ScModule::ModifyOptions( const SfxItemSet& rOptSet )
     SfxViewFrame* pViewFrm = SfxViewFrame::Current();
     SfxBindings* pBindings = pViewFrm ? &pViewFrm->GetBindings() : NULL;
 
-    ScTabViewShell*         pViewSh = PTR_CAST(ScTabViewShell, SfxViewShell::Current());
-    ScDocShell*             pDocSh  = PTR_CAST(ScDocShell, SfxObjectShell::Current());
+    ScTabViewShell*         pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current() );
+    ScDocShell*             pDocSh  = dynamic_cast<ScDocShell*>( SfxObjectShell::Current() );
     ScDocument*             pDoc    = pDocSh ? &pDocSh->GetDocument() : NULL;
     const SfxPoolItem*      pItem   = NULL;
     bool bRepaint = false;
@@ -1331,8 +1331,7 @@ void ScModule::ModifyOptions( const SfxItemSet& rOptSet )
         }
 
         // for all (tab-) views:
-        TypeId aScType = TYPE(ScTabViewShell);
-        SfxViewShell* pSh = SfxViewShell::GetFirst( &aScType );
+        SfxViewShell* pSh = SfxViewShell::GetFirst( true, checkSfxViewShell<ScTabViewShell> );
         while ( pSh )
         {
             ScTabViewShell* pOneViewSh = static_cast<ScTabViewShell*>(pSh);
@@ -1351,7 +1350,7 @@ void ScModule::ModifyOptions( const SfxItemSet& rOptSet )
             pOneViewSh->PaintTop();
             pOneViewSh->PaintLeft();
 
-            pSh = SfxViewShell::GetNext( *pSh, &aScType );
+            pSh = SfxViewShell::GetNext( *pSh, true, checkSfxViewShell<ScTabViewShell> );
         }
     }
 }
@@ -1369,7 +1368,7 @@ ScInputHandler* ScModule::GetInputHdl( ScTabViewShell* pViewSh, bool bUseRef )
     {
         // in case a UIActive embedded object has no ViewShell (UNO component)
         // the own calc view shell will be set as current, but no handling should happen
-        ScTabViewShell* pCurViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current() );
+        ScTabViewShell* pCurViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current()  );
         if ( pCurViewSh && !pCurViewSh->GetUIActiveClient() )
             pViewSh = pCurViewSh;
     }
@@ -1552,7 +1551,7 @@ void ScModule::SetRefDialog( sal_uInt16 nId, bool bVis, SfxViewFrame* pViewFrm )
         {
             //  store the dialog id also in the view shell
             SfxViewShell* pViewSh = pViewFrm->GetViewShell();
-            if ( pViewSh && pViewSh->ISA( ScTabViewShell ) )
+            if ( pViewSh && dynamic_cast<const ScTabViewShell*>( pViewSh) !=  nullptr )
                 static_cast<ScTabViewShell*>(pViewSh)->SetCurRefDlgId( nCurRefDlgId );
             else
             {
@@ -1834,7 +1833,7 @@ static void lcl_CheckNeedsRepaint( ScDocShell* pDocShell )
     while ( pFrame )
     {
         SfxViewShell* p = pFrame->GetViewShell();
-        ScTabViewShell* pViewSh = PTR_CAST(ScTabViewShell,p);
+        ScTabViewShell* pViewSh = dynamic_cast< ScTabViewShell *>( p );
         if ( pViewSh )
             pViewSh->CheckNeedsRepaint();
         pFrame = SfxViewFrame::GetNext( *pFrame, pDocShell );
@@ -1966,14 +1965,12 @@ SfxItemSet*  ScModule::CreateItemSet( sal_uInt16 nId )
 
         const ScAppOptions& rAppOpt = GetAppOptions();
 
-        ScDocShell*     pDocSh = PTR_CAST(ScDocShell,
-                                            SfxObjectShell::Current());
+        ScDocShell*     pDocSh = dynamic_cast< ScDocShell *>( SfxObjectShell::Current() );
         ScDocOptions    aCalcOpt = pDocSh
                             ? pDocSh->GetDocument().GetDocOptions()
                             : GetDocOptions();
 
-        ScTabViewShell* pViewSh = PTR_CAST(ScTabViewShell,
-                                            SfxViewShell::Current());
+        ScTabViewShell* pViewSh = dynamic_cast< ScTabViewShell *>( SfxViewShell::Current() );
         ScViewOptions   aViewOpt = pViewSh
                             ? pViewSh->GetViewData().GetOptions()
                             : GetViewOptions();
@@ -2149,7 +2146,7 @@ IMPL_LINK_TYPED( ScModule, CalcFieldValueHdl, EditFieldInfo*, pInfo, void )
     const SvxFieldItem& rField = pInfo->GetField();
     const SvxFieldData* pField = rField.GetField();
 
-    if (pField && pField->ISA(SvxURLField))
+    if (pField && dynamic_cast<const SvxURLField*>( pField) !=  nullptr)
     {
         // URLField
         const SvxURLField* pURLField = static_cast<const SvxURLField*>(pField);
diff --git a/sc/source/ui/app/seltrans.cxx b/sc/source/ui/app/seltrans.cxx
index b48acb4..0e19935 100644
--- a/sc/source/ui/app/seltrans.cxx
+++ b/sc/source/ui/app/seltrans.cxx
@@ -43,7 +43,7 @@ static bool lcl_IsURLButton( SdrObject* pObject )
 {
     bool bRet = false;
 
-    SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pObject);
+    SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( pObject );
     if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor())
        {
         uno::Reference<awt::XControlModel> xControlModel = pUnoCtrl->GetUnoControlModel();
diff --git a/sc/source/ui/cctrl/tbzoomsliderctrl.cxx b/sc/source/ui/cctrl/tbzoomsliderctrl.cxx
index 44c59c0..79d4b92 100644
--- a/sc/source/ui/cctrl/tbzoomsliderctrl.cxx
+++ b/sc/source/ui/cctrl/tbzoomsliderctrl.cxx
@@ -61,7 +61,7 @@ void ScZoomSliderControl::StateChanged( sal_uInt16 /*nSID*/, SfxItemState eState
     ScZoomSliderWnd*        pBox = static_cast<ScZoomSliderWnd*>(rTbx.GetItemWindow( nId ));
     OSL_ENSURE( pBox ,"Control not found!" );
 
-    if ( SfxItemState::DEFAULT != eState || pState->ISA( SfxVoidItem ) )
+    if ( SfxItemState::DEFAULT != eState || dynamic_cast<const SfxVoidItem*>( pState) !=  nullptr )
     {
         SvxZoomSliderItem aZoomSliderItem( 100 );
         pBox->Disable();
@@ -70,7 +70,7 @@ void ScZoomSliderControl::StateChanged( sal_uInt16 /*nSID*/, SfxItemState eState
     else
     {
         pBox->Enable();
-        OSL_ENSURE( pState->ISA( SvxZoomSliderItem ), "invalid item type" );
+        OSL_ENSURE( dynamic_cast<const SvxZoomSliderItem*>( pState) !=  nullptr, "invalid item type" );
         const SvxZoomSliderItem* pZoomSliderItem = dynamic_cast< const SvxZoomSliderItem* >( pState );
 
         OSL_ENSURE( pZoomSliderItem, "Sc::ScZoomSliderControl::StateChanged(), wrong item type!" );
diff --git a/sc/source/ui/dbgui/scuiimoptdlg.cxx b/sc/source/ui/dbgui/scuiimoptdlg.cxx
index 98c77da..5ca9b8f 100644
--- a/sc/source/ui/dbgui/scuiimoptdlg.cxx
+++ b/sc/source/ui/dbgui/scuiimoptdlg.cxx
@@ -208,7 +208,7 @@ ScImportOptionsDlg::ScImportOptionsDlg(
         m_pCbQuoteAll->Show();
         m_pCbQuoteAll->Check( false );
         m_pCbFormulas->Show();
-        ScTabViewShell* pViewSh = PTR_CAST( ScTabViewShell, SfxViewShell::Current());
+        ScTabViewShell* pViewSh = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current() );
         bool bFormulas = pViewSh &&
                 pViewSh->GetViewData().GetOptions().GetOption( VOPT_FORMULAS);
         m_pCbFormulas->Check( bFormulas );
diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx
index c982dcb..f1f2480 100644
--- a/sc/source/ui/docshell/arealink.cxx
+++ b/sc/source/ui/docshell/arealink.cxx
@@ -72,7 +72,7 @@ ScAreaLink::ScAreaLink( SfxObjectShell* pShell, const OUString& rFile,
     bInCreate       (false),
     bDoInsert       (true)
 {
-    OSL_ENSURE(pShell->ISA(ScDocShell), "ScAreaLink mit falscher ObjectShell");
+    OSL_ENSURE(dynamic_cast< const ScDocShell *>( pShell ) !=  nullptr, "ScAreaLink mit falscher ObjectShell");
     pImpl->m_pDocSh = static_cast< ScDocShell* >( pShell );
     SetRefreshHandler( LINK( this, ScAreaLink, RefreshHdl ) );
     SetRefreshControl( &pImpl->m_pDocSh->GetDocument().GetRefreshTimerControlAddress() );
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index 15fa0ec..b554dd2 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -5220,7 +5220,7 @@ bool ScDocFunc::InsertAreaLink( const OUString& rFile, const OUString& rFilter,
     while (nLinkPos<nLinkCount)
     {
         ::sfx2::SvBaseLink* pBase = *pLinkManager->GetLinks()[nLinkPos];
-        if ( pBase->ISA(ScAreaLink) &&
+        if ( dynamic_cast< const ScAreaLink *>( pBase ) !=  nullptr &&
              static_cast<ScAreaLink*>(pBase)->GetDestArea().aStart == rDestRange.aStart )
         {
             if ( bUndo )
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 9860e53..b3fd054 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -2501,7 +2501,7 @@ bool ScDocShell::PrepareClose( bool bUI )
         if( pFrame )
         {
             SfxViewShell* p = pFrame->GetViewShell();
-            ScTabViewShell* pViewSh = PTR_CAST(ScTabViewShell,p);
+            ScTabViewShell* pViewSh = dynamic_cast< ScTabViewShell *>( p );
             if(pViewSh!=NULL)
             {
                 vcl::Window *pWin=pViewSh->GetWindow();
@@ -2887,7 +2887,7 @@ VclPtr<SfxDocumentInfoDialog> ScDocShell::CreateDocumentInfoDialog(
                                          vcl::Window *pParent, const SfxItemSet &rSet )
 {
     VclPtr<SfxDocumentInfoDialog> pDlg   = VclPtr<SfxDocumentInfoDialog>::Create( pParent, rSet );
-    ScDocShell*            pDocSh = PTR_CAST(ScDocShell,SfxObjectShell::Current());
+    ScDocShell*            pDocSh = dynamic_cast< ScDocShell *>( SfxObjectShell::Current() );
 
     // Only for statistics, if this Doc is shown; not from the Doc Manager
     if( pDocSh == this )
diff --git a/sc/source/ui/docshell/docsh3.cxx b/sc/source/ui/docshell/docsh3.cxx
index 0671e75..a1135db 100644
--- a/sc/source/ui/docshell/docsh3.cxx
+++ b/sc/source/ui/docshell/docsh3.cxx
@@ -480,7 +480,7 @@ sal_uInt16 ScDocShell::SetPrinter( SfxPrinter* pNewPrinter, SfxPrinterChangeFlag
             while (pFrame)
             {
                 SfxViewShell* pSh = pFrame->GetViewShell();
-                if (pSh && pSh->ISA(ScTabViewShell))
+                if (pSh && dynamic_cast<const ScTabViewShell*>( pSh) !=  nullptr)
                 {
                     ScTabViewShell* pViewSh = static_cast<ScTabViewShell*>(pSh);
                     ScInputHandler* pInputHdl = pScMod->GetInputHdl(pViewSh);
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index 262b902..79cabb1 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -677,26 +677,26 @@ void ScDocShell::Execute( SfxRequest& rReq )
                 SfxMedium* pMed = NULL;
                 if ( pReqArgs &&
                      pReqArgs->GetItemState( SID_FILE_NAME, true, &pItem ) == SfxItemState::SET &&
-                     pItem->ISA(SfxStringItem) )
+                     dynamic_cast<const SfxStringItem*>( pItem) !=  nullptr )
                 {
                     OUString aFileName =
                         static_cast<const SfxStringItem*>(pItem)->GetValue();
 
                     OUString aFilterName;
                     if ( pReqArgs->GetItemState( SID_FILTER_NAME, true, &pItem ) == SfxItemState::SET &&
-                         pItem->ISA(SfxStringItem) )
+                         dynamic_cast<const SfxStringItem*>( pItem) !=  nullptr )
                     {
                         aFilterName = static_cast<const SfxStringItem*>(pItem)->GetValue();
                     }
                     OUString aOptions;
                     if ( pReqArgs->GetItemState( SID_FILE_FILTEROPTIONS, true, &pItem ) == SfxItemState::SET &&
-                         pItem->ISA(SfxStringItem) )
+                         dynamic_cast<const SfxStringItem*>( pItem) !=  nullptr )
                     {
                         aOptions = static_cast<const SfxStringItem*>(pItem)->GetValue();
                     }
                     short nVersion = 0;
                     if ( pReqArgs->GetItemState( SID_VERSION, true, &pItem ) == SfxItemState::SET &&
-                         pItem->ISA(SfxInt16Item) )
+                         dynamic_cast<const SfxInt16Item*>( pItem) !=  nullptr )
                     {
                         nVersion = static_cast<const SfxInt16Item*>(pItem)->GetValue();
                     }
@@ -817,7 +817,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
                 const SfxPoolItem* pItem;
                 if ( pReqArgs->GetItemState( nSlot, true, &pItem ) == SfxItemState::SET )
                 {
-                    if ( pItem->ISA(SfxStringItem) )
+                    if ( dynamic_cast<const SfxStringItem*>( pItem) !=  nullptr )
                     {
                         OUString aName = static_cast<const SfxStringItem*>(pItem)->GetValue();
                         SCTAB nTab;
@@ -845,7 +845,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
                 const SfxPoolItem* pItem;
                 if ( pReqArgs->GetItemState( nSlot, true, &pItem ) == SfxItemState::SET )
                 {
-                    if ( pItem->ISA(SfxStringItem) )
+                    if ( dynamic_cast<const SfxStringItem*>( pItem) !=  nullptr )
                     {
                         OUString aName = static_cast<const SfxStringItem*>(pItem)->GetValue();
                         SCTAB nTab;
@@ -893,7 +893,7 @@ void ScDocShell::Execute( SfxRequest& rReq )
             const SfxPoolItem* pItem;
             if ( pReqArgs->GetItemState( nSlot, true, &pItem ) == SfxItemState::SET )
             {
-                if ( pItem->ISA(SfxUInt16Item) )
+                if ( dynamic_cast<const SfxUInt16Item*>( pItem) !=  nullptr )
                 {
                     sal_uInt16 nY2k = static_cast<const SfxUInt16Item*>(pItem)->GetValue();
                     // immer an den DocOptions setzen, damit das auch fuer SO50
@@ -2205,7 +2205,7 @@ bool ScDocShell::DdeSetData( const OUString& rItem,
 ScViewData* ScDocShell::GetViewData()
 {
     SfxViewShell* pCur = SfxViewShell::Current();
-    ScTabViewShell* pViewSh = PTR_CAST(ScTabViewShell,pCur);
+    ScTabViewShell* pViewSh = dynamic_cast< ScTabViewShell *>( pCur );
     return pViewSh ? &pViewSh->GetViewData() : NULL;
 }
 
@@ -2231,7 +2231,7 @@ ScTabViewShell* ScDocShell::GetBestViewShell( bool bOnlyVisible )
         if( pFrame )
         {
             SfxViewShell* p = pFrame->GetViewShell();
-            pViewSh = PTR_CAST(ScTabViewShell,p);
+            pViewSh = dynamic_cast< ScTabViewShell *>( p );
         }
     }
     return pViewSh;
@@ -2295,7 +2295,7 @@ IMPL_LINK_TYPED( ScDocShell, DialogClosedHdl, sfx2::FileDialogHelper*, _pFileDlg
             SfxItemSet* pSet = pMed->GetItemSet();
             if ( pSet &&
                     pSet->GetItemState( SID_VERSION, true, &pItem ) == SfxItemState::SET &&
-                    pItem->ISA( SfxInt16Item ) )
+                    dynamic_cast<const SfxInt16Item*>( pItem) !=  nullptr )
             {
                 pImpl->pRequest->AppendItem( *pItem );
             }
diff --git a/sc/source/ui/docshell/docsh6.cxx b/sc/source/ui/docshell/docsh6.cxx
index 5acc3dd..7374236 100644
--- a/sc/source/ui/docshell/docsh6.cxx
+++ b/sc/source/ui/docshell/docsh6.cxx
@@ -354,7 +354,7 @@ void ScDocShell::UpdateLinks()
     {
         --k;
         ::sfx2::SvBaseLink* pBase = *pLinkManager->GetLinks()[k];
-        if (pBase->ISA(ScTableLink))
+        if (dynamic_cast<const ScTableLink*>( pBase) !=  nullptr)
         {
             ScTableLink* pTabLink = static_cast<ScTableLink*>(pBase);
             if (pTabLink->IsUsed())
@@ -418,7 +418,7 @@ bool ScDocShell::ReloadTabLinks()
     for (size_t i=0; i<nCount; i++ )
     {
         ::sfx2::SvBaseLink* pBase = *pLinkManager->GetLinks()[i];
-        if (pBase->ISA(ScTableLink))
+        if (dynamic_cast<const ScTableLink*>( pBase) !=  nullptr)
         {
             ScTableLink* pTabLink = static_cast<ScTableLink*>(pBase);
 //			pTabLink->SetAddUndo(sal_False);		//! Undo's zusammenfassen
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 1a32289..0730927 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -2257,8 +2257,7 @@ ScDocument* ScExternalRefManager::getInMemorySrcDocument(sal_uInt16 nFileId)
         return NULL;
 
     ScDocument* pSrcDoc = NULL;
-    TypeId aType(TYPE(ScDocShell));
-    ScDocShell* pShell = static_cast<ScDocShell*>(SfxObjectShell::GetFirst(&aType, false));
+    ScDocShell* pShell = static_cast<ScDocShell*>(SfxObjectShell::GetFirst(checkSfxObjectShell<ScDocShell>, false));
     while (pShell)
     {
         SfxMedium* pMedium = pShell->GetMedium();
@@ -2287,7 +2286,7 @@ ScDocument* ScExternalRefManager::getInMemorySrcDocument(sal_uInt16 nFileId)
                 break;
             }
         }
-        pShell = static_cast<ScDocShell*>(SfxObjectShell::GetNext(*pShell, &aType, false));
+        pShell = static_cast<ScDocShell*>(SfxObjectShell::GetNext(*pShell, checkSfxObjectShell<ScDocShell>, false));
     }
 
     initDocInCache(maRefCache, pSrcDoc, nFileId);
@@ -2556,14 +2555,13 @@ bool ScExternalRefManager::isOwnDocument(const OUString& rFile) const
 void ScExternalRefManager::convertToAbsName(OUString& rFile) const
 {
     // unsaved documents have no AbsName
-    TypeId aType(TYPE(ScDocShell));
-    ScDocShell* pShell = static_cast<ScDocShell*>(SfxObjectShell::GetFirst(&aType, false));
+    ScDocShell* pShell = static_cast<ScDocShell*>(SfxObjectShell::GetFirst(checkSfxObjectShell<ScDocShell>, false));
     while (pShell)
     {
         if (rFile == pShell->GetName())
             return;
 
-        pShell = static_cast<ScDocShell*>(SfxObjectShell::GetNext(*pShell, &aType, false));
+        pShell = static_cast<ScDocShell*>(SfxObjectShell::GetNext(*pShell, checkSfxObjectShell<ScDocShell>, false));
     }
 
     SfxObjectShell* pDocShell = mpDoc->GetDocumentShell();
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index 4feaccc..0e84f2d 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -80,7 +80,7 @@ enum SylkVersion
 
 // Whole document without Undo
 ScImportExport::ScImportExport( ScDocument* p )
-    : pDocSh( PTR_CAST(ScDocShell,p->GetDocumentShell()) ), pDoc( p ),
+    : pDocSh( dynamic_cast< ScDocShell* >(p->GetDocumentShell()) ), pDoc( p ),
       nSizeLimit( 0 ), cSep( '\t' ), cStr( '"' ),
       bFormulas( false ), bIncludeFiltered( true ),
       bAll( true ), bSingle( true ), bUndo( false ),
@@ -94,7 +94,7 @@ ScImportExport::ScImportExport( ScDocument* p )
 
 // Insert am current cell without range(es)
 ScImportExport::ScImportExport( ScDocument* p, const ScAddress& rPt )
-    : pDocSh( PTR_CAST(ScDocShell,p->GetDocumentShell()) ), pDoc( p ),
+    : pDocSh( dynamic_cast< ScDocShell* >(p->GetDocumentShell()) ), pDoc( p ),
       aRange( rPt ),
       nSizeLimit( 0 ), cSep( '\t' ), cStr( '"' ),
       bFormulas( false ), bIncludeFiltered( true ),
@@ -110,7 +110,7 @@ ScImportExport::ScImportExport( ScDocument* p, const ScAddress& rPt )
 //  ctor with a range is only used for export
 //! ctor with a string (and bSingle=true) is also used for DdeSetData
 ScImportExport::ScImportExport( ScDocument* p, const ScRange& r )
-    : pDocSh( PTR_CAST(ScDocShell,p->GetDocumentShell()) ), pDoc( p ),
+    : pDocSh( dynamic_cast<ScDocShell* >(p->GetDocumentShell()) ), pDoc( p ),
       aRange( r ),
       nSizeLimit( 0 ), cSep( '\t' ), cStr( '"' ),
       bFormulas( false ), bIncludeFiltered( true ),
@@ -128,7 +128,7 @@ ScImportExport::ScImportExport( ScDocument* p, const ScRange& r )
 // Evaluate input string - either range, cell or the whole document (when error)
 // If a View exists, the TabNo of the view will be used.
 ScImportExport::ScImportExport( ScDocument* p, const OUString& rPos )
-    : pDocSh( PTR_CAST(ScDocShell,p->GetDocumentShell()) ), pDoc( p ),
+    : pDocSh( dynamic_cast< ScDocShell* >(p->GetDocumentShell()) ), pDoc( p ),
       nSizeLimit( 0 ), cSep( '\t' ), cStr( '"' ),
       bFormulas( false ), bIncludeFiltered( true ),
       bAll( false ), bSingle( true ), bUndo( pDocSh != NULL ),
diff --git a/sc/source/ui/docshell/servobj.cxx b/sc/source/ui/docshell/servobj.cxx
index 8fddc9b..e090bd2 100644
--- a/sc/source/ui/docshell/servobj.cxx
+++ b/sc/source/ui/docshell/servobj.cxx
@@ -209,7 +209,7 @@ void ScServerObject::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
             //  don't access DocShell anymore for EndListening etc.
         }
     }
-    else if (rBC.ISA(SfxApplication))
+    else if (dynamic_cast<const SfxApplication*>( &rBC) !=  nullptr)
     {
         const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>( &rHint );
         if ( !aItemStr.isEmpty() && pSimpleHint &&
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index 07d5c7a..4cb613f 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -442,8 +442,7 @@ bool ScDocumentLoader::GetFilterName( const OUString& rFileName,
                                       OUString& rFilter, OUString& rOptions,
                                       bool bWithContent, bool bWithInteraction )
 {
-    TypeId aScType = TYPE(ScDocShell);
-    SfxObjectShell* pDocSh = SfxObjectShell::GetFirst( &aScType );
+    SfxObjectShell* pDocSh = SfxObjectShell::GetFirst( checkSfxObjectShell<ScDocShell> );
     while ( pDocSh )
     {
         if ( pDocSh->HasName() )
@@ -456,7 +455,7 @@ bool ScDocumentLoader::GetFilterName( const OUString& rFileName,
                 return true;
             }
         }
-        pDocSh = SfxObjectShell::GetNext( *pDocSh, &aScType );
+        pDocSh = SfxObjectShell::GetNext( *pDocSh, checkSfxObjectShell<ScDocShell> );
     }
 
     INetURLObject aUrl( rFileName );
diff --git a/sc/source/ui/docshell/tpstat.cxx b/sc/source/ui/docshell/tpstat.cxx
index 0be22a9..2675f28 100644
--- a/sc/source/ui/docshell/tpstat.cxx
+++ b/sc/source/ui/docshell/tpstat.cxx
@@ -39,7 +39,7 @@ ScDocStatPage::ScDocStatPage( vcl::Window *pParent, const SfxItemSet& rSet )
     get(m_pFtCells,"nocells");
     get(m_pFtPages,"nopages");
     get(m_pFtFormula,"noformula");
-    ScDocShell* pDocSh = PTR_CAST( ScDocShell, SfxObjectShell::Current() );
+    ScDocShell* pDocSh = dynamic_cast<ScDocShell*>( SfxObjectShell::Current()  );
     ScDocStat   aDocStat;
 
     if ( pDocSh )
diff --git a/sc/source/ui/drawfunc/chartsh.cxx b/sc/source/ui/drawfunc/chartsh.cxx
index 07752f6..1fb50a9 100644
--- a/sc/source/ui/drawfunc/chartsh.cxx
+++ b/sc/source/ui/drawfunc/chartsh.cxx
@@ -78,7 +78,7 @@ void ScChartShell::GetExportAsGraphicState( SfxItemSet& rSet )
     {
         SdrObject* pObj = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
 
-        if( pObj && pObj->ISA( SdrOle2Obj ) )
+        if( pObj && dynamic_cast<const SdrOle2Obj*>( pObj) !=  nullptr )
             bEnable = true;
     }
 
@@ -95,7 +95,7 @@ void ScChartShell::ExecuteExportAsGraphic( SfxRequest& )
     {
         SdrObject* pObject = rMarkList.GetMark( 0 )->GetMarkedSdrObj();
 
-        if( pObject && pObject->ISA( SdrOle2Obj ) )
+        if( pObject && dynamic_cast<const SdrOle2Obj*>( pObject) !=  nullptr )
         {
             Reference< drawing::XShape > xSourceDoc = Reference< drawing::XShape >( pObject->getUnoShape(), UNO_QUERY_THROW );
             GraphicHelper::SaveShapeAsGraphic( xSourceDoc );
diff --git a/sc/source/ui/drawfunc/drawsh2.cxx b/sc/source/ui/drawfunc/drawsh2.cxx
index d582b3a..24d69a1 100644
--- a/sc/source/ui/drawfunc/drawsh2.cxx
+++ b/sc/source/ui/drawfunc/drawsh2.cxx
@@ -365,7 +365,7 @@ bool ScDrawShell::AreAllObjectsOnLayer(sal_uInt16 nLayerNo,const SdrMarkList& rM
     for (size_t i=0; i<nCount; ++i)
     {
         SdrObject* pObj = rMark.GetMark(i)->GetMarkedSdrObj();
-        if ( !pObj->ISA(SdrUnoObj) )
+        if ( dynamic_cast<const SdrUnoObj*>( pObj) ==  nullptr )
         {
             if(nLayerNo!=pObj->GetLayer())
             {
diff --git a/sc/source/ui/drawfunc/drawsh5.cxx b/sc/source/ui/drawfunc/drawsh5.cxx
index cdb6999..8a94c12 100644
--- a/sc/source/ui/drawfunc/drawsh5.cxx
+++ b/sc/source/ui/drawfunc/drawsh5.cxx
@@ -80,7 +80,7 @@ void ScDrawShell::GetHLinkState( SfxItemSet& rSet )             //  Hyperlink
             aHLinkItem.SetURL( pInfo->GetHlink() );
             aHLinkItem.SetInsertMode(HLINK_FIELD);
         }
-        SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pObj);
+        SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( pObj );
         if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor())
         {
             uno::Reference<awt::XControlModel> xControlModel = pUnoCtrl->GetUnoControlModel();
@@ -166,7 +166,7 @@ void ScDrawShell::ExecuteHLink( SfxRequest& rReq )
                         if ( rMarkList.GetMarkCount() == 1 )
                         {
                             SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
-                            SdrUnoObj* pUnoCtrl = PTR_CAST(SdrUnoObj, pObj );
+                            SdrUnoObj* pUnoCtrl = dynamic_cast<SdrUnoObj*>( pObj  );
                             if (pUnoCtrl && FmFormInventor == pUnoCtrl->GetObjInventor())
                             {
                                 uno::Reference<awt::XControlModel> xControlModel =
diff --git a/sc/source/ui/drawfunc/drtxtob.cxx b/sc/source/ui/drawfunc/drtxtob.cxx
index 04b9d34..a0c2592 100644
--- a/sc/source/ui/drawfunc/drtxtob.cxx
+++ b/sc/source/ui/drawfunc/drtxtob.cxx
@@ -182,7 +182,7 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
                 const SfxPoolItem* pItem;
                 if ( pReqArgs &&
                      pReqArgs->GetItemState(nSlot, true, &pItem) == SfxItemState::SET &&
-                     pItem->ISA(SfxUInt32Item) )
+                     dynamic_cast<const SfxUInt32Item*>( pItem) !=  nullptr )
                 {
                     nFormat = static_cast<SotClipboardFormatId>(static_cast<const SfxUInt32Item*>(pItem)->GetValue());
                 }
@@ -227,7 +227,7 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
                     aString = static_cast<const SfxStringItem*>(pItem)->GetValue();
                     const SfxPoolItem* pFtItem = NULL;
                     pArgs->GetItemState( GetPool().GetWhich(SID_ATTR_SPECIALCHAR), false, &pFtItem);
-                    const SfxStringItem* pFontItem = PTR_CAST( SfxStringItem, pFtItem );
+                    const SfxStringItem* pFontItem = dynamic_cast<const SfxStringItem*>( pFtItem  );
                     if ( pFontItem )
                     {
                         OUString aFontName(pFontItem->GetValue());
@@ -274,7 +274,7 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
                         if (pFieldItem)
                         {
                             const SvxFieldData* pField = pFieldItem->GetField();
-                            if ( pField && pField->ISA(SvxURLField) )
+                            if ( pField && dynamic_cast<const SvxURLField*>( pField) !=  nullptr )
                             {
                                 //  altes Feld selektieren
 
@@ -323,7 +323,7 @@ void ScDrawTextObjectBar::Execute( SfxRequest &rReq )
                     if ( pFieldItem )
                     {
                         const SvxFieldData* pField = pFieldItem->GetField();
-                        if( pField && pField->ISA( SvxURLField ) )
+                        if( pField && dynamic_cast<const SvxURLField*>( pField) !=  nullptr )
                         {
                             const SvxURLField* pURLField = static_cast< const SvxURLField* >( pField );
                             ScGlobal::OpenURL( pURLField->GetURL(), pURLField->GetTargetFrame() );
@@ -391,7 +391,7 @@ void ScDrawTextObjectBar::GetState( SfxItemSet& rSet )
             if (pFieldItem)
             {
                 const SvxFieldData* pField = pFieldItem->GetField();
-                if ( pField && pField->ISA(SvxURLField) )
+                if ( pField && dynamic_cast<const SvxURLField*>( pField) !=  nullptr )
                 {
                     const SvxURLField* pURLField = static_cast<const SvxURLField*>(pField);
                     aHLinkItem.SetName( pURLField->GetRepresentation() );
@@ -423,7 +423,7 @@ void ScDrawTextObjectBar::GetState( SfxItemSet& rSet )
             if ( pFieldItem )
             {
                 const SvxFieldData* pField = pFieldItem->GetField();
-                bEnable = pField && pField->ISA( SvxURLField );
+                bEnable = pField && dynamic_cast<const SvxURLField*>( pField) !=  nullptr;
             }
         }
         if( !bEnable )
diff --git a/sc/source/ui/drawfunc/fuconarc.cxx b/sc/source/ui/drawfunc/fuconarc.cxx
index c916a51..dcfaa82 100644
--- a/sc/source/ui/drawfunc/fuconarc.cxx
+++ b/sc/source/ui/drawfunc/fuconarc.cxx
@@ -189,7 +189,7 @@ SdrObject* FuConstArc::CreateDefaultObject(const sal_uInt16 nID, const Rectangle
 
     if(pObj)
     {
-        if(pObj->ISA(SdrCircObj))
+        if(dynamic_cast<const SdrCircObj*>( pObj) !=  nullptr)
         {
             Rectangle aRect(rRectangle);
 
diff --git a/sc/source/ui/drawfunc/fuconpol.cxx b/sc/source/ui/drawfunc/fuconpol.cxx
index 2132b08..aa8ff4f 100644
--- a/sc/source/ui/drawfunc/fuconpol.cxx
+++ b/sc/source/ui/drawfunc/fuconpol.cxx
@@ -242,7 +242,7 @@ SdrObject* FuConstPolygon::CreateDefaultObject(const sal_uInt16 nID, const Recta
 
     if(pObj)
     {
-        if(pObj->ISA(SdrPathObj))
+        if(dynamic_cast<const SdrPathObj*>( pObj) !=  nullptr)
         {
             basegfx::B2DPolyPolygon aPoly;
 
diff --git a/sc/source/ui/drawfunc/fuconrec.cxx b/sc/source/ui/drawfunc/fuconrec.cxx
index a39f12fc..5698732 100644
--- a/sc/source/ui/drawfunc/fuconrec.cxx
+++ b/sc/source/ui/drawfunc/fuconrec.cxx
@@ -129,7 +129,7 @@ bool FuConstRectangle::MouseButtonUp(const MouseEvent& rMEvt)
             {
                 SdrObject* pObj = rMarkList.GetMark(0)->GetMarkedSdrObj();
                 //  create OutlinerParaObject now so it can be set to vertical
-                if ( pObj->ISA(SdrTextObj) )
+                if ( dynamic_cast<const SdrTextObj*>( pObj) !=  nullptr )
                     static_cast<SdrTextObj*>(pObj)->ForceOutlinerParaObject();
                 OutlinerParaObject* pOPO = pObj->GetOutlinerParaObject();
                 if( pOPO && !pOPO->IsVertical() )
@@ -232,7 +232,7 @@ SdrObject* FuConstRectangle::CreateDefaultObject(const sal_uInt16 nID, const Rec
         {
             case SID_DRAW_LINE:
             {
-                if(pObj->ISA(SdrPathObj))
+                if(dynamic_cast<const SdrPathObj*>( pObj) !=  nullptr)
                 {
                     sal_Int32 nYMiddle((aRect.Top() + aRect.Bottom()) / 2);
                     basegfx::B2DPolygon aPoly;
@@ -250,7 +250,7 @@ SdrObject* FuConstRectangle::CreateDefaultObject(const sal_uInt16 nID, const Rec
             case SID_DRAW_CAPTION:
             case SID_DRAW_CAPTION_VERTICAL:
             {
-                if(pObj->ISA(SdrCaptionObj))
+                if(dynamic_cast<const SdrCaptionObj*>( pObj) !=  nullptr)
                 {
                     bool bIsVertical(SID_DRAW_CAPTION_VERTICAL == nID);
 
diff --git a/sc/source/ui/drawfunc/fuconstr.cxx b/sc/source/ui/drawfunc/fuconstr.cxx
index 60447d9..b8cc232 100644
--- a/sc/source/ui/drawfunc/fuconstr.cxx
+++ b/sc/source/ui/drawfunc/fuconstr.cxx
@@ -230,7 +230,7 @@ bool FuConstruct::MouseButtonUp(const MouseEvent& rMEvt)
                 SdrObject* pObj = pMark->GetMarkedSdrObj();
 
                 //  bei Uno-Controls nicht in Textmodus
-                if ( pObj->ISA(SdrTextObj) && !pObj->ISA(SdrUnoObj) )
+                if ( dynamic_cast<const SdrTextObj*>( pObj) != nullptr && dynamic_cast<const SdrUnoObj*>( pObj) ==  nullptr )
                 {
                     OutlinerParaObject* pOPO = pObj->GetOutlinerParaObject();
                     bool bVertical = ( pOPO && pOPO->IsVertical() );
diff --git a/sc/source/ui/drawfunc/fudraw.cxx b/sc/source/ui/drawfunc/fudraw.cxx
index aeefe44..073508b 100644
--- a/sc/source/ui/drawfunc/fudraw.cxx
+++ b/sc/source/ui/drawfunc/fudraw.cxx
@@ -186,7 +186,7 @@ bool FuDraw::MouseButtonUp(const MouseEvent& rMEvt)
 static bool lcl_KeyEditMode( SdrObject* pObj, ScTabViewShell* pViewShell, const KeyEvent* pInitialKey )
 {
     bool bReturn = false;
-    if ( pObj && pObj->ISA(SdrTextObj) && !pObj->ISA(SdrUnoObj) )
+    if ( pObj && dynamic_cast<const SdrTextObj*>( pObj) != nullptr && dynamic_cast<const SdrUnoObj*>( pObj) ==  nullptr )
     {
         // start text edit - like FuSelection::MouseButtonUp,
         // but with bCursorToEnd instead of mouse position

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list