[Libreoffice-commits] core.git: accessibility/source basctl/source basic/source desktop/source editeng/source include/basic include/editeng include/sfx2 include/svl include/svx include/vcl reportdesign/inc reportdesign/source sc/inc scripting/source sc/source sd/source sfx2/source starmath/source svl/Library_svl.mk svl/source svtools/source svx/source sw/inc sw/source vcl/source

Noel Grandin noel at peralex.com
Sat Sep 6 13:48:19 PDT 2014


 accessibility/source/extended/textwindowaccessibility.cxx    |    6 
 basctl/source/dlged/dlged.cxx                                |    2 
 basctl/source/inc/dlged.hxx                                  |    1 
 basic/source/classes/sb.cxx                                  |    2 
 basic/source/classes/sbunoobj.cxx                            |    8 
 basic/source/classes/sbxmod.cxx                              |    4 
 basic/source/runtime/stdobj.cxx                              |    2 
 basic/source/runtime/stdobj1.cxx                             |    6 
 basic/source/sbx/sbxcoll.cxx                                 |    2 
 basic/source/sbx/sbxobj.cxx                                  |    2 
 basic/source/sbx/sbxvar.cxx                                  |    3 
 desktop/source/deployment/gui/license_dialog.cxx             |    5 
 editeng/source/editeng/impedit5.cxx                          |   14 -
 editeng/source/uno/unoedhlp.cxx                              |    5 
 include/basic/sbx.hxx                                        |    1 
 include/editeng/unoedhlp.hxx                                 |    2 
 include/sfx2/event.hxx                                       |    9 -
 include/svl/hint.hxx                                         |    5 
 include/svl/isethint.hxx                                     |    2 
 include/svl/smplhint.hxx                                     |    5 
 include/svl/style.hxx                                        |   14 -
 include/svx/fmshell.hxx                                      |    1 
 include/svx/svdmodel.hxx                                     |    2 
 include/svx/svdpntv.hxx                                      |    5 
 include/vcl/textdata.hxx                                     |    2 
 reportdesign/inc/RptObject.hxx                               |    1 
 reportdesign/source/core/sdr/RptObjectListener.cxx           |    4 
 reportdesign/source/core/sdr/UndoEnv.cxx                     |    3 
 reportdesign/source/ui/misc/ColorListener.cxx                |    5 
 reportdesign/source/ui/report/ReportController.cxx           |    5 
 reportdesign/source/ui/report/SectionView.cxx                |    7 
 reportdesign/source/ui/report/StartMarker.cxx                |    5 
 sc/inc/brdcst.hxx                                            |    3 
 sc/inc/drwlayer.hxx                                          |    2 
 sc/inc/hints.hxx                                             |    8 
 sc/inc/unoreflist.hxx                                        |    1 
 sc/source/core/data/bcaslot.cxx                              |    3 
 sc/source/core/data/documen3.cxx                             |    5 
 sc/source/core/data/drwlayer.cxx                             |    3 
 sc/source/core/data/stlsheet.cxx                             |    6 
 sc/source/core/tool/hints.cxx                                |    8 
 sc/source/core/tool/lookupcache.cxx                          |    2 
 sc/source/ui/Accessibility/AccessibilityHints.cxx            |    8 
 sc/source/ui/Accessibility/AccessibleContextBase.cxx         |    6 
 sc/source/ui/Accessibility/AccessibleDocument.cxx            |   93 +++++------
 sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx |   41 ++--
 sc/source/ui/Accessibility/AccessiblePageHeader.cxx          |    8 
 sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx      |    6 
 sc/source/ui/Accessibility/AccessiblePreviewCell.cxx         |   11 -
 sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx   |    6 
 sc/source/ui/Accessibility/AccessiblePreviewTable.cxx        |    8 
 sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx         |   14 -
 sc/source/ui/Accessibility/AccessibleText.cxx                |   35 ++--
 sc/source/ui/Accessibility/DrawModelBroadcaster.cxx          |    2 
 sc/source/ui/app/inputwin.cxx                                |    9 -
 sc/source/ui/app/scmod.cxx                                   |    5 
 sc/source/ui/app/uiitems.cxx                                 |    3 
 sc/source/ui/condformat/condformatdlgentry.cxx               |    4 
 sc/source/ui/docshell/docsh.cxx                              |   22 +-
 sc/source/ui/docshell/docsh4.cxx                             |   14 -
 sc/source/ui/docshell/externalrefmgr.cxx                     |    5 
 sc/source/ui/docshell/servobj.cxx                            |   18 +-
 sc/source/ui/inc/AccessibilityHints.hxx                      |    4 
 sc/source/ui/inc/uiitems.hxx                                 |    9 -
 sc/source/ui/navipi/navipi.cxx                               |    9 -
 sc/source/ui/unoobj/addruno.cxx                              |    4 
 sc/source/ui/unoobj/cellsuno.cxx                             |   50 ++---
 sc/source/ui/unoobj/chart2uno.cxx                            |   19 +-
 sc/source/ui/unoobj/chartuno.cxx                             |    8 
 sc/source/ui/unoobj/confuno.cxx                              |    4 
 sc/source/ui/unoobj/dapiuno.cxx                              |   12 -
 sc/source/ui/unoobj/datauno.cxx                              |   18 +-
 sc/source/ui/unoobj/defltuno.cxx                             |    4 
 sc/source/ui/unoobj/dispuno.cxx                              |    8 
 sc/source/ui/unoobj/docuno.cxx                               |   35 ++--
 sc/source/ui/unoobj/drdefuno.cxx                             |    4 
 sc/source/ui/unoobj/editsrc.cxx                              |    4 
 sc/source/ui/unoobj/eventuno.cxx                             |    4 
 sc/source/ui/unoobj/fielduno.cxx                             |    4 
 sc/source/ui/unoobj/forbiuno.cxx                             |    4 
 sc/source/ui/unoobj/funcuno.cxx                              |    4 
 sc/source/ui/unoobj/linkuno.cxx                              |   33 ++-
 sc/source/ui/unoobj/nameuno.cxx                              |   14 -
 sc/source/ui/unoobj/notesuno.cxx                             |    4 
 sc/source/ui/unoobj/styleuno.cxx                             |   12 -
 sc/source/ui/unoobj/targuno.cxx                              |    6 
 sc/source/ui/unoobj/textuno.cxx                              |    4 
 sc/source/ui/unoobj/tokenuno.cxx                             |    3 
 sc/source/ui/unoobj/unoreflist.cxx                           |    2 
 sc/source/ui/unoobj/viewuno.cxx                              |    4 
 sc/source/ui/view/drawvie3.cxx                               |    9 -
 sc/source/ui/view/prevwsh2.cxx                               |    6 
 sc/source/ui/view/tabvwsh5.cxx                               |   10 -
 scripting/source/basprov/basscript.cxx                       |    2 
 sd/source/core/stlsheet.cxx                                  |    5 
 sd/source/ui/accessibility/AccessibleSlideSorterView.cxx     |   10 -
 sd/source/ui/app/sdmod.cxx                                   |    4 
 sd/source/ui/dlg/docprev.cxx                                 |    3 
 sd/source/ui/inc/ViewShellHint.hxx                           |    2 
 sd/source/ui/sidebar/MasterPageObserver.cxx                  |    6 
 sd/source/ui/slidesorter/controller/SlsListener.cxx          |   16 -
 sd/source/ui/slidesorter/controller/SlsTransferableData.cxx  |    6 
 sd/source/ui/tools/EventMultiplexer.cxx                      |   16 -
 sd/source/ui/tools/PreviewRenderer.cxx                       |   21 --
 sd/source/ui/unoidl/unomodel.cxx                             |    6 
 sd/source/ui/unoidl/unopback.cxx                             |    2 
 sd/source/ui/view/ViewShellBase.cxx                          |    5 
 sd/source/ui/view/ViewShellHint.cxx                          |    2 
 sd/source/ui/view/drawview.cxx                               |    2 
 sfx2/source/appl/appcfg.cxx                                  |    2 
 sfx2/source/appl/sfxpicklist.cxx                             |    9 -
 sfx2/source/config/evntconf.cxx                              |    2 
 sfx2/source/control/request.cxx                              |    2 
 sfx2/source/dialog/basedlgs.cxx                              |   10 -
 sfx2/source/dialog/templdlg.cxx                              |   13 -
 sfx2/source/doc/printhelper.cxx                              |    2 
 sfx2/source/doc/sfxbasemodel.cxx                             |    6 
 sfx2/source/view/viewfrm.cxx                                 |   15 +
 sfx2/source/view/viewprn.cxx                                 |    7 
 sfx2/source/view/viewsh.cxx                                  |    5 
 starmath/source/view.cxx                                     |    5 
 svl/Library_svl.mk                                           |    1 
 svl/source/items/style.cxx                                   |    4 
 svl/source/notify/hint.cxx                                   |    2 
 svl/source/notify/isethint.cxx                               |    3 
 svl/source/notify/smplhint.cxx                               |   24 --
 svtools/source/config/accessibilityoptions.cxx               |    5 
 svx/source/accessibility/AccessibleEmptyEditSource.cxx       |    2 
 svx/source/accessibility/AccessibleTextHelper.cxx            |   24 +-
 svx/source/accessibility/GraphCtlAccessibleContext.cxx       |    4 
 svx/source/dialog/svxruler.cxx                               |    5 
 svx/source/form/filtnav.cxx                                  |   30 ---
 svx/source/form/fmexpl.cxx                                   |   19 --
 svx/source/form/fmshell.cxx                                  |    3 
 svx/source/form/fmundo.cxx                                   |   12 -
 svx/source/form/fmvwimp.cxx                                  |    5 
 svx/source/form/navigatortree.cxx                            |   22 +-
 svx/source/form/navigatortreemodel.cxx                       |   10 -
 svx/source/inc/fmexpl.hxx                                    |   11 -
 svx/source/mnuctrls/fntctl.cxx                               |    5 
 svx/source/sdr/properties/attributeproperties.cxx            |    2 
 svx/source/sdr/properties/customshapeproperties.cxx          |    4 
 svx/source/sdr/properties/textproperties.cxx                 |    4 
 svx/source/svdraw/svdedxv.cxx                                |    2 
 svx/source/svdraw/svdmodel.cxx                               |    2 
 svx/source/svdraw/svdmrkv.cxx                                |    4 
 svx/source/svdraw/svdoattr.cxx                               |    2 
 svx/source/svdraw/svdoedge.cxx                               |    5 
 svx/source/svdraw/svdpntv.cxx                                |    9 -
 svx/source/tbxctrls/colrctrl.cxx                             |    2 
 svx/source/unodraw/UnoNameItemTable.cxx                      |    2 
 svx/source/unodraw/unomtabl.cxx                              |    2 
 svx/source/unodraw/unoshape.cxx                              |    2 
 svx/source/unodraw/unoshtxt.cxx                              |    6 
 sw/inc/fmtfld.hxx                                            |    1 
 sw/inc/redline.hxx                                           |    1 
 sw/source/core/access/accmap.cxx                             |    2 
 sw/source/core/doc/docredln.cxx                              |    2 
 sw/source/core/doc/visiturl.cxx                              |    2 
 sw/source/core/layout/frmtool.cxx                            |    4 
 sw/source/core/txtnode/atrfld.cxx                            |    1 
 sw/source/core/unocore/unostyle.cxx                          |    4 
 sw/source/ui/dbui/mmaddressblockpage.cxx                     |    2 
 sw/source/uibase/app/apphdl.cxx                              |    6 
 sw/source/uibase/app/docsh2.cxx                              |    6 
 sw/source/uibase/app/docstyle.cxx                            |    7 
 sw/source/uibase/docvw/PostItMgr.cxx                         |    6 
 sw/source/uibase/docvw/srcedtw.cxx                           |    2 
 sw/source/uibase/uiview/srcview.cxx                          |    7 
 sw/source/uibase/uiview/view.cxx                             |    4 
 sw/source/uibase/uno/unoatxt.cxx                             |    7 
 sw/source/uibase/utlui/glbltree.cxx                          |    6 
 sw/source/uibase/utlui/navipi.cxx                            |    4 
 vcl/source/edit/textdata.cxx                                 |    2 
 vcl/source/edit/vclmedit.cxx                                 |   16 -
 175 files changed, 584 insertions(+), 747 deletions(-)

New commits:
commit 5bce32904091ffe28884fd5c0f4801ee82bad101
Author: Noel Grandin <noel at peralex.com>
Date:   Wed Aug 27 16:57:21 2014 +0200

    SfxHint: convert home-grown RTTI to normal C++ RTTI
    
    Also note that I fixed a bug in SvxFontMenuControl::Notify
    where the if statement had the check the wrong way around.
    
    Change-Id: I611e8929c65818191e36bd80f2b985820ada4411
    Reviewed-on: https://gerrit.libreoffice.org/11147
    Reviewed-by: Norbert Thiebaud <nthiebaud at gmail.com>
    Tested-by: Norbert Thiebaud <nthiebaud at gmail.com>

diff --git a/accessibility/source/extended/textwindowaccessibility.cxx b/accessibility/source/extended/textwindowaccessibility.cxx
index 7d80013..4a82970 100644
--- a/accessibility/source/extended/textwindowaccessibility.cxx
+++ b/accessibility/source/extended/textwindowaccessibility.cxx
@@ -1560,10 +1560,10 @@ void SAL_CALL Document::disposing()
 // virtual
 void Document::Notify(::SfxBroadcaster &, ::SfxHint const & rHint)
 {
-    if (rHint.ISA(::TextHint))
+    const TextHint* pTextHint = dynamic_cast<const TextHint*>(&rHint);
+    if (pTextHint)
     {
-        ::TextHint const & rTextHint
-              = static_cast< ::TextHint const & >(rHint);
+        ::TextHint const & rTextHint = *pTextHint;
         switch (rTextHint.GetId())
         {
         case TEXT_HINT_PARAINSERTED:
diff --git a/basctl/source/dlged/dlged.cxx b/basctl/source/dlged/dlged.cxx
index 41230f6..b43f798 100644
--- a/basctl/source/dlged/dlged.cxx
+++ b/basctl/source/dlged/dlged.cxx
@@ -66,8 +66,6 @@ static OUString aTitlePropName( "Title" );
 // DlgEdHint
 
 
-TYPEINIT1( DlgEdHint, SfxHint );
-
 DlgEdHint::DlgEdHint(Kind eHint)
     : eKind(eHint)
     , pDlgEdObj(0)
diff --git a/basctl/source/inc/dlged.hxx b/basctl/source/inc/dlged.hxx
index 8c75e5e..c0e5c95 100644
--- a/basctl/source/inc/dlged.hxx
+++ b/basctl/source/inc/dlged.hxx
@@ -69,7 +69,6 @@ private:
     DlgEdObj*  pDlgEdObj;
 
 public:
-    TYPEINFO_OVERRIDE();
     DlgEdHint (Kind);
     DlgEdHint (Kind, DlgEdObj* pObj);
     virtual ~DlgEdHint();
diff --git a/basic/source/classes/sb.cxx b/basic/source/classes/sb.cxx
index db8487d..04303b3 100644
--- a/basic/source/classes/sb.cxx
+++ b/basic/source/classes/sb.cxx
@@ -2100,7 +2100,7 @@ SbxVariable* BasicCollection::Find( const OUString& rName, SbxClassType t )
 void BasicCollection::SFX_NOTIFY( SfxBroadcaster& rCst, const TypeId& rId1,
                                 const SfxHint& rHint, const TypeId& rId2 )
 {
-    const SbxHint* p = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* p = dynamic_cast<const SbxHint*>(&rHint);
     if( p )
     {
         sal_uIntPtr nId = p->GetId();
diff --git a/basic/source/classes/sbunoobj.cxx b/basic/source/classes/sbunoobj.cxx
index 8a5e761..9a37a84 100644
--- a/basic/source/classes/sbunoobj.cxx
+++ b/basic/source/classes/sbunoobj.cxx
@@ -2030,7 +2030,7 @@ void SbUnoObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
     if( bNeedIntrospection )
         doIntrospection();
 
-    const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
     if( pHint )
     {
         SbxVariable* pVar = pHint->GetVar();
@@ -3617,7 +3617,7 @@ SbxVariable* SbUnoService::Find( const OUString& rName, SbxClassType )
 void SbUnoService::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
                            const SfxHint& rHint, const TypeId& rHintType )
 {
-    const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
     if( pHint )
     {
         SbxVariable* pVar = pHint->GetVar();
@@ -3838,7 +3838,7 @@ SbUnoSingleton::SbUnoSingleton( const OUString& aName_,
 void SbUnoSingleton::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
                            const SfxHint& rHint, const TypeId& rHintType )
 {
-    const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
     if( pHint )
     {
         SbxVariable* pVar = pHint->GetVar();
@@ -5012,7 +5012,7 @@ void SbUnoStructRefObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCTyp
 {
     if ( !mbMemberCacheInit )
         initMemberCache();
-    const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
     if( pHint )
     {
         SbxVariable* pVar = pHint->GetVar();
diff --git a/basic/source/classes/sbxmod.cxx b/basic/source/classes/sbxmod.cxx
index 6f1332f..2ae87f3 100644
--- a/basic/source/classes/sbxmod.cxx
+++ b/basic/source/classes/sbxmod.cxx
@@ -747,7 +747,7 @@ void SbModule::SetParent( SbxObject* p )
 void SbModule::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
                            const SfxHint& rHint, const TypeId& rHintType )
 {
-    const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
     if( pHint )
     {
         SbxVariable* pVar = pHint->GetVar();
@@ -1892,7 +1892,7 @@ void SbModule::handleProcedureProperties( SfxBroadcaster& rBC, const SfxHint& rH
 {
     bool bDone = false;
 
-    const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
     if( pHint )
     {
         SbxVariable* pVar = pHint->GetVar();
diff --git a/basic/source/runtime/stdobj.cxx b/basic/source/runtime/stdobj.cxx
index 9a69bea..da9edc2 100644
--- a/basic/source/runtime/stdobj.cxx
+++ b/basic/source/runtime/stdobj.cxx
@@ -821,7 +821,7 @@ void SbiStdObject::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
                              const SfxHint& rHint, const TypeId& rHintType )
 
 {
-    const SbxHint* pHint = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
     if( pHint )
     {
         SbxVariable* pVar = pHint->GetVar();
diff --git a/basic/source/runtime/stdobj1.cxx b/basic/source/runtime/stdobj1.cxx
index 061aa64..3f52a8a 100644
--- a/basic/source/runtime/stdobj1.cxx
+++ b/basic/source/runtime/stdobj1.cxx
@@ -144,7 +144,7 @@ void SbStdPicture::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
                                const SfxHint& rHint, const TypeId& rHintType )
 
 {
-    const SbxHint* pHint = PTR_CAST( SbxHint, &rHint );
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
 
     if( pHint )
     {
@@ -269,7 +269,7 @@ SbxVariable* SbStdFont::Find( const OUString& rName, SbxClassType t )
 void SbStdFont::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
                             const SfxHint& rHint, const TypeId& rHintType )
 {
-    const SbxHint* pHint = PTR_CAST( SbxHint, &rHint );
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
 
     if( pHint )
     {
@@ -438,7 +438,7 @@ SbxVariable* SbStdClipboard::Find( const OUString& rName, SbxClassType t )
 void SbStdClipboard::SFX_NOTIFY( SfxBroadcaster& rBC, const TypeId& rBCType,
                                  const SfxHint& rHint, const TypeId& rHintType )
 {
-    const SbxHint* pHint = PTR_CAST( SbxHint, &rHint );
+    const SbxHint* pHint = dynamic_cast<const SbxHint*>(&rHint);
 
     if( pHint )
     {
diff --git a/basic/source/sbx/sbxcoll.cxx b/basic/source/sbx/sbxcoll.cxx
index 3d473a3..3932587 100644
--- a/basic/source/sbx/sbxcoll.cxx
+++ b/basic/source/sbx/sbxcoll.cxx
@@ -117,7 +117,7 @@ SbxVariable* SbxCollection::Find( const OUString& rName, SbxClassType t )
 void SbxCollection::SFX_NOTIFY( SfxBroadcaster& rCst, const TypeId& rId1,
                                 const SfxHint& rHint, const TypeId& rId2 )
 {
-    const SbxHint* p = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* p = dynamic_cast<const SbxHint*>(&rHint);
     if( p )
     {
         sal_uLong nId = p->GetId();
diff --git a/basic/source/sbx/sbxobj.cxx b/basic/source/sbx/sbxobj.cxx
index 1544369..70c308d 100644
--- a/basic/source/sbx/sbxobj.cxx
+++ b/basic/source/sbx/sbxobj.cxx
@@ -138,7 +138,7 @@ void SbxObject::Clear()
 void SbxObject::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                             const SfxHint& rHint, const TypeId& )
 {
-    const SbxHint* p = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* p = dynamic_cast<const SbxHint*>(&rHint);
     if( p )
     {
         sal_uLong nId = p->GetId();
diff --git a/basic/source/sbx/sbxvar.cxx b/basic/source/sbx/sbxvar.cxx
index 89b712c..1bd8dfd 100644
--- a/basic/source/sbx/sbxvar.cxx
+++ b/basic/source/sbx/sbxvar.cxx
@@ -35,7 +35,6 @@ using namespace com::sun::star::uno;
 ///////////////////////////// SbxVariable
 
 TYPEINIT1(SbxVariable,SbxValue)
-TYPEINIT1(SbxHint,SfxSimpleHint)
 
 ///////////////////////////// SbxVariableImpl
 
@@ -685,7 +684,7 @@ void SbxAlias::Broadcast( sal_uIntPtr nHt )
 void SbxAlias::SFX_NOTIFY( SfxBroadcaster&, const TypeId&,
                            const SfxHint& rHint, const TypeId& )
 {
-    const SbxHint* p = PTR_CAST(SbxHint,&rHint);
+    const SbxHint* p = dynamic_cast<const SbxHint*>(&rHint);
     if( p && p->GetId() == SBX_HINT_DYING )
     {
         xAlias.Clear();
diff --git a/desktop/source/deployment/gui/license_dialog.cxx b/desktop/source/deployment/gui/license_dialog.cxx
index 16a7dfb..1835048 100644
--- a/desktop/source/deployment/gui/license_dialog.cxx
+++ b/desktop/source/deployment/gui/license_dialog.cxx
@@ -154,10 +154,11 @@ bool LicenseView::IsEndReached() const
 
 void LicenseView::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.IsA( TYPE(TextHint) ) )
+    const TextHint* pTextHint = dynamic_cast<const TextHint*>(&rHint);
+    if ( pTextHint )
     {
         bool    bLastVal = EndReached();
-        sal_uLong   nId = ((const TextHint&)rHint).GetId();
+        sal_uLong   nId = pTextHint->GetId();
 
         if ( nId == TEXT_HINT_PARAINSERTED )
         {
diff --git a/editeng/source/editeng/impedit5.cxx b/editeng/source/editeng/impedit5.cxx
index a884eb2..3e1a599 100644
--- a/editeng/source/editeng/impedit5.cxx
+++ b/editeng/source/editeng/impedit5.cxx
@@ -146,17 +146,17 @@ void ImpEditEngine::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
         SfxStyleSheet* pStyle = NULL;
         sal_uLong nId = 0;
 
-        if ( rHint.ISA( SfxStyleSheetHint ) )
+        const SfxStyleSheetHint* pStyleSheetHint = dynamic_cast<const SfxStyleSheetHint*>(&rHint);
+        if ( pStyleSheetHint )
         {
-            const SfxStyleSheetHint& rH = (const SfxStyleSheetHint&) rHint;
-            DBG_ASSERT( rH.GetStyleSheet()->ISA( SfxStyleSheet ), "No SfxStyleSheet!" );
-            pStyle = (SfxStyleSheet*) rH.GetStyleSheet();
-            nId = rH.GetHint();
+            DBG_ASSERT( pStyleSheetHint->GetStyleSheet()->ISA( SfxStyleSheet ), "No SfxStyleSheet!" );
+            pStyle = (SfxStyleSheet*) pStyleSheetHint->GetStyleSheet();
+            nId = pStyleSheetHint->GetHint();
         }
-        else if ( ( rHint.Type() == TYPE(SfxSimpleHint ) ) && ( rBC.ISA( SfxStyleSheet ) ) )
+        else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) && rBC.ISA( SfxStyleSheet ) )
         {
             pStyle = (SfxStyleSheet*)&rBC;
-            nId = ((SfxSimpleHint&)rHint).GetId();
+            nId = dynamic_cast<const SfxSimpleHint*>(&rHint)->GetId();
         }
 
         if ( pStyle )
diff --git a/editeng/source/uno/unoedhlp.cxx b/editeng/source/uno/unoedhlp.cxx
index eb42e67..83a6fd3 100644
--- a/editeng/source/uno/unoedhlp.cxx
+++ b/editeng/source/uno/unoedhlp.cxx
@@ -24,8 +24,6 @@
 
 
 
-TYPEINIT1( SvxEditSourceHint, TextHint );
-
 SvxEditSourceHint::SvxEditSourceHint( sal_uLong _nId ) :
     TextHint( _nId ),
     mnStart( 0 ),
@@ -46,9 +44,6 @@ sal_uLong SvxEditSourceHint::GetValue() const
 }
 
 
-TYPEINIT1( SvxEditSourceHintEndPara , SvxEditSourceHint );
-
-
 SAL_WNODEPRECATED_DECLARATIONS_PUSH
 ::std::auto_ptr<SfxHint> SvxEditSourceHelper::EENotification2Hint( EENotify* aNotify )
 {
diff --git a/include/basic/sbx.hxx b/include/basic/sbx.hxx
index c7532a1..cec5f58 100644
--- a/include/basic/sbx.hxx
+++ b/include/basic/sbx.hxx
@@ -94,7 +94,6 @@ class BASIC_DLLPUBLIC SbxHint : public SfxSimpleHint
 {
     SbxVariable* pVar;
 public:
-    TYPEINFO_OVERRIDE();
     SbxHint( sal_uIntPtr n, SbxVariable* v ) : SfxSimpleHint( n ), pVar( v ) {}
     SbxVariable* GetVar() const { return pVar; }
 };
diff --git a/include/editeng/unoedhlp.hxx b/include/editeng/unoedhlp.hxx
index c9900a8..d9cb6d8 100644
--- a/include/editeng/unoedhlp.hxx
+++ b/include/editeng/unoedhlp.hxx
@@ -45,7 +45,6 @@ private:
     sal_Int32   mnEnd;
 
 public:
-            TYPEINFO_OVERRIDE();
             SvxEditSourceHint( sal_uLong nId );
             SvxEditSourceHint( sal_uLong nId, sal_uLong nValue, sal_Int32 nStart=0, sal_Int32 nEnd=0 );
 
@@ -56,7 +55,6 @@ public:
 class SvxEditSourceHintEndPara :public SvxEditSourceHint
 {
 public:
-    TYPEINFO_OVERRIDE();
     SvxEditSourceHintEndPara( sal_uInt32 nId )
         :SvxEditSourceHint(nId) {}
     SvxEditSourceHintEndPara( sal_uInt32 nId, sal_uInt32 nValue, sal_uInt32 nStart=0, sal_uInt32 nEnd=0 )
diff --git a/include/sfx2/event.hxx b/include/sfx2/event.hxx
index be335eb..5b4970d 100644
--- a/include/sfx2/event.hxx
+++ b/include/sfx2/event.hxx
@@ -42,7 +42,6 @@ class SFX2_DLLPUBLIC SfxEventHint : public SfxHint
     sal_uInt16              nEventId;
 
 public:
-    TYPEINFO_OVERRIDE();
     SfxEventHint( sal_uInt16 nId, const OUString& aName, SfxObjectShell *pObj = 0 )
                         :   pObjShell(pObj),
                             aEventName(aName),
@@ -66,8 +65,6 @@ class SFX2_DLLPUBLIC SfxViewEventHint : public SfxEventHint
     ::com::sun::star::uno::Reference< css::frame::XController2 > xViewController;
 
 public:
-    TYPEINFO_OVERRIDE();
-
     SfxViewEventHint( sal_uInt16 nId, const OUString& aName, SfxObjectShell *pObj, const css::uno::Reference< css::frame::XController >& xController )
                         : SfxEventHint( nId, aName, pObj )
                         , xViewController( xController, css::uno::UNO_QUERY )
@@ -91,8 +88,6 @@ class SfxNamedHint : public SfxHint
     OUString            _aArgs;
 
 public:
-                        TYPEINFO_OVERRIDE();
-
                         SfxNamedHint( const OUString& rName,
                                       const OUString& rArgs,
                                       SfxObjectShell *pObj = 0  )
@@ -119,8 +114,6 @@ class SfxPrintingHint : public SfxViewEventHint
     sal_Int32 mnPrintableState;
     com::sun::star::uno::Sequence < com::sun::star::beans::PropertyValue > aOpts;
 public:
-        TYPEINFO_OVERRIDE();
-
         SfxPrintingHint(
                 sal_Int32 nEvent,
                 const css::uno::Sequence < css::beans::PropertyValue >& rOpts,
@@ -141,7 +134,7 @@ public:
         {}
 
     sal_Int32 GetWhich() const { return mnPrintableState; }
-    const css::uno::Sequence < css::beans::PropertyValue >& GetOptions() { return aOpts; }
+    const css::uno::Sequence < css::beans::PropertyValue >& GetOptions() const { return aOpts; }
 };
 
 #endif
diff --git a/include/svl/hint.hxx b/include/svl/hint.hxx
index b2c3ac1..70df074 100644
--- a/include/svl/hint.hxx
+++ b/include/svl/hint.hxx
@@ -20,13 +20,10 @@
 #define INCLUDED_SVL_HINT_HXX
 
 #include <svl/svldllapi.h>
-#include <tools/rtti.hxx>
 
 class SVL_DLLPUBLIC SfxHint
 {
 public:
-    TYPEINFO();
-
     virtual ~SfxHint();
 };
 
@@ -38,7 +35,6 @@ public:
             Type* pObj; \
         \
         public: \
-            TYPEINFO_OVERRIDE(); \
             explicit Name( Type* Object ); \
             virtual ~Name(); \
         \
@@ -46,7 +42,6 @@ public:
         }
 
 #define IMPL_PTRHINT(Name, Type) \
-        TYPEINIT1(Name, SfxHint);   \
         Name::Name( Type* pObject ) { pObj = pObject; } \
         Name::~Name() {}
 
diff --git a/include/svl/isethint.hxx b/include/svl/isethint.hxx
index edbdd41..e7541c1 100644
--- a/include/svl/isethint.hxx
+++ b/include/svl/isethint.hxx
@@ -32,8 +32,6 @@ class SVL_DLLPUBLIC SfxItemSetHint: public SfxHint
     SfxItemSet*         _pItemSet;
 
 public:
-                        TYPEINFO_OVERRIDE();
-
                         SfxItemSetHint( const SfxItemSet &rItemSet );
     virtual             ~SfxItemSetHint();
 
diff --git a/include/svl/smplhint.hxx b/include/svl/smplhint.hxx
index 8189a00..058b91c 100644
--- a/include/svl/smplhint.hxx
+++ b/include/svl/smplhint.hxx
@@ -21,7 +21,7 @@
 
 #include <svl/svldllapi.h>
 #include <svl/hint.hxx>
-#include <tools/rtti.hxx>
+#include <tools/solar.h>
 
 #define SFX_HINT_DYING              0x00000001
 #define SFX_HINT_NAMECHANGED        0x00000002
@@ -62,7 +62,6 @@ class SVL_DLLPUBLIC SfxSimpleHint: public SfxHint
 private:
     sal_uLong mnId;
 public:
-    TYPEINFO_OVERRIDE();
     SfxSimpleHint( sal_uLong nId ) { mnId = nId; }
     sal_uLong GetId() const { return mnId; }
 };
@@ -75,14 +74,12 @@ public:
             Type  aObj; \
         \
         public: \
-            TYPEINFO_OVERRIDE(); \
             Name( sal_uInt16 nId, const Type& rObject ); \
             virtual ~Name(); \
             const Type& GetObject() const { return aObj; } \
         }
 
 #define IMPL_OBJHINT(Name, Type) \
-        TYPEINIT1(Name, SfxSimpleHint); \
         Name::Name( sal_uInt16 nID, const Type& rObject ): \
             SfxSimpleHint( nID ), aObj(rObject) \
             { } \
diff --git a/include/svl/style.hxx b/include/svl/style.hxx
index 773178d..78c1bc4 100644
--- a/include/svl/style.hxx
+++ b/include/svl/style.hxx
@@ -341,10 +341,8 @@ class SVL_DLLPUBLIC SfxStyleSheetPoolHint : public SfxHint
     sal_uInt16 nHint;
 
 public:
-    TYPEINFO_OVERRIDE();
-
                         SfxStyleSheetPoolHint(sal_uInt16 nArgHint) :  nHint(nArgHint){}
-    sal_uInt16              GetHint() const
+    sal_uInt16          GetHint() const
                         { return nHint; }
 };
 
@@ -353,15 +351,13 @@ public:
 class SVL_DLLPUBLIC SfxStyleSheetHint: public SfxHint
 {
     SfxStyleSheetBase*  pStyleSh;
-    sal_uInt16              nHint;
+    sal_uInt16          nHint;
 
 public:
-                        TYPEINFO_OVERRIDE();
-
                         SfxStyleSheetHint( sal_uInt16, SfxStyleSheetBase& );
     SfxStyleSheetBase*  GetStyleSheet() const
                         { return pStyleSh; }
-    sal_uInt16              GetHint() const
+    sal_uInt16          GetHint() const
                         { return nHint; }
 };
 
@@ -370,11 +366,9 @@ class SVL_DLLPUBLIC SfxStyleSheetHintExtended: public SfxStyleSheetHint
     OUString            aName;
 
 public:
-                        TYPEINFO_OVERRIDE();
-
                         SfxStyleSheetHintExtended( sal_uInt16, const OUString& rOld,
                                                    SfxStyleSheetBase& );
-    const OUString&       GetOldName() { return aName; }
+    const OUString&     GetOldName() const { return aName; }
 };
 
 class SVL_DLLPUBLIC SfxUnoStyleSheet : public ::cppu::ImplInheritanceHelper2< SfxStyleSheet, ::com::sun::star::style::XStyle, ::com::sun::star::lang::XUnoTunnel >
diff --git a/include/svx/fmshell.hxx b/include/svx/fmshell.hxx
index 1d8831c..f8ecdcc 100644
--- a/include/svx/fmshell.hxx
+++ b/include/svx/fmshell.hxx
@@ -60,7 +60,6 @@ class SVX_DLLPUBLIC FmDesignModeChangedHint : public SfxHint
     bool m_bDesignMode;
 
 public:
-    TYPEINFO_OVERRIDE();
     FmDesignModeChangedHint( bool bDesMode );
     virtual ~FmDesignModeChangedHint();
 
diff --git a/include/svx/svdmodel.hxx b/include/svx/svdmodel.hxx
index 6f1c547..0d9b03b 100644
--- a/include/svx/svdmodel.hxx
+++ b/include/svx/svdmodel.hxx
@@ -124,8 +124,6 @@ public:
     SdrHintKind                             meHint;
 
 public:
-    TYPEINFO_OVERRIDE();
-
     explicit SdrHint(SdrHintKind eNewHint);
     explicit SdrHint(const SdrObject& rNewObj);
 
diff --git a/include/svx/svdpntv.hxx b/include/svx/svdpntv.hxx
index c31e180..c248e8c 100644
--- a/include/svx/svdpntv.hxx
+++ b/include/svx/svdpntv.hxx
@@ -101,9 +101,8 @@ class SVX_DLLPUBLIC SvxViewHint : public SfxHint
 {
 public:
     enum HintType { SVX_HINT_VIEWCHANGED };
-    TYPEINFO_OVERRIDE();
-    explicit SvxViewHint (HintType eType);
-    HintType GetHintType (void) const { return meHintType;}
+    explicit SvxViewHint(HintType eType);
+    HintType GetHintType() const { return meHintType;}
 
 private:
     HintType meHintType;
diff --git a/include/vcl/textdata.hxx b/include/vcl/textdata.hxx
index d918aec..6af42ee 100644
--- a/include/vcl/textdata.hxx
+++ b/include/vcl/textdata.hxx
@@ -128,12 +128,10 @@ private:
     sal_uLong   mnValue;
 
 public:
-            TYPEINFO_OVERRIDE();
             TextHint( sal_uLong nId );
             TextHint( sal_uLong nId, sal_uLong nValue );
 
     sal_uLong   GetValue() const        { return mnValue; }
-    void    SetValue( sal_uLong n )     { mnValue = n; }
 };
 
 struct TEIMEInfos
diff --git a/reportdesign/inc/RptObject.hxx b/reportdesign/inc/RptObject.hxx
index 5fb046a..6f2cfca 100644
--- a/reportdesign/inc/RptObject.hxx
+++ b/reportdesign/inc/RptObject.hxx
@@ -57,7 +57,6 @@ typedef ::std::multimap< sal_Int16, OUString, ::std::less< sal_Int16 > > IndexTo
         DlgEdHint(DlgEdHint&);
         void operator =(DlgEdHint&);
     public:
-        TYPEINFO_OVERRIDE();
         DlgEdHint( DlgEdHintKind eHint );
         virtual ~DlgEdHint();
 
diff --git a/reportdesign/source/core/sdr/RptObjectListener.cxx b/reportdesign/source/core/sdr/RptObjectListener.cxx
index 363b90f..b645263 100644
--- a/reportdesign/source/core/sdr/RptObjectListener.cxx
+++ b/reportdesign/source/core/sdr/RptObjectListener.cxx
@@ -59,10 +59,6 @@ void SAL_CALL OObjectListener::propertyChange( const  ::com::sun::star::beans::P
 // DlgEdHint
 
 
-TYPEINIT1( DlgEdHint, SfxHint );
-
-
-
 DlgEdHint::DlgEdHint(DlgEdHintKind eHint)
     : eHintKind(eHint)
     , pDlgEdObj(NULL)
diff --git a/reportdesign/source/core/sdr/UndoEnv.cxx b/reportdesign/source/core/sdr/UndoEnv.cxx
index 7f4217c..e1efd7a 100644
--- a/reportdesign/source/core/sdr/UndoEnv.cxx
+++ b/reportdesign/source/core/sdr/UndoEnv.cxx
@@ -193,7 +193,8 @@ void OXUndoEnvironment::ModeChanged()
 
 void OXUndoEnvironment::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint )
 {
-    if (rHint.ISA(SfxSimpleHint) && ((SfxSimpleHint&)rHint).GetId() == SFX_HINT_MODECHANGED )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint && pSimpleHint->GetId() == SFX_HINT_MODECHANGED )
         ModeChanged();
 }
 
diff --git a/reportdesign/source/ui/misc/ColorListener.cxx b/reportdesign/source/ui/misc/ColorListener.cxx
index 2702a32..75d39d6 100644
--- a/reportdesign/source/ui/misc/ColorListener.cxx
+++ b/reportdesign/source/ui/misc/ColorListener.cxx
@@ -45,9 +45,8 @@ OColorListener::~OColorListener()
 
 void OColorListener::Notify(SfxBroadcaster & /*rBc*/, SfxHint const & rHint)
 {
-    if (rHint.ISA(SfxSimpleHint)
-        && (static_cast< SfxSimpleHint const & >(rHint).GetId()
-            == SFX_HINT_COLORS_CHANGED))
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint && pSimpleHint->GetId() == SFX_HINT_COLORS_CHANGED)
     {
         m_nColor = m_aExtendedColorConfig.GetColorValue(CFG_REPORTDESIGNER,m_sColorEntry).getColor();
         m_nTextBoundaries = m_aColorConfig.GetColorValue(::svtools::DOCBOUNDARIES).nColor;
diff --git a/reportdesign/source/ui/report/ReportController.cxx b/reportdesign/source/ui/report/ReportController.cxx
index 51b031f..028a826 100644
--- a/reportdesign/source/ui/report/ReportController.cxx
+++ b/reportdesign/source/ui/report/ReportController.cxx
@@ -2567,9 +2567,8 @@ IMPL_LINK( OReportController, EventLstHdl, VclWindowEvent*, _pEvent )
 
 void OReportController::Notify(SfxBroadcaster & /* _rBc */, SfxHint const & _rHint)
 {
-    if (_rHint.ISA(DlgEdHint)
-        && (static_cast< DlgEdHint const & >(_rHint).GetKind()
-            == RPTUI_HINT_SELECTIONCHANGED))
+    const DlgEdHint* pDlgEdHint = dynamic_cast<const DlgEdHint*>(&_rHint);
+    if (pDlgEdHint && pDlgEdHint->GetKind() == RPTUI_HINT_SELECTIONCHANGED)
     {
         const sal_Int32 nSelectionCount = getDesignView()->getMarkedObjectCount();
         if ( m_nSelectionCount != nSelectionCount )
diff --git a/reportdesign/source/ui/report/SectionView.cxx b/reportdesign/source/ui/report/SectionView.cxx
index 3aa7c37..d892ef3 100644
--- a/reportdesign/source/ui/report/SectionView.cxx
+++ b/reportdesign/source/ui/report/SectionView.cxx
@@ -130,10 +130,11 @@ void OSectionView::MakeVisible( const Rectangle& rRect, Window& rWin )
 void OSectionView::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
     SdrView::Notify(rBC,rHint);
-    if ( rHint.ISA(SdrHint) )
+    const SdrHint* pSdrHint = dynamic_cast<const SdrHint*>(&rHint);
+    if ( pSdrHint )
     {
-        const SdrObject* pObj = ((SdrHint&)rHint).GetObject();
-        const SdrHintKind eKind = ((SdrHint&)rHint).GetKind();
+        const SdrObject* pObj = pSdrHint->GetObject();
+        const SdrHintKind eKind = pSdrHint->GetKind();
         // check for change of selected object
         if(HINT_OBJCHG == eKind && pObj && IsObjMarked(const_cast<SdrObject*>(pObj)))
             AdjustMarkHdl();
diff --git a/reportdesign/source/ui/report/StartMarker.cxx b/reportdesign/source/ui/report/StartMarker.cxx
index 3578599..b7e1427 100644
--- a/reportdesign/source/ui/report/StartMarker.cxx
+++ b/reportdesign/source/ui/report/StartMarker.cxx
@@ -241,9 +241,8 @@ void OStartMarker::setTitle(const OUString& _sTitle)
 void OStartMarker::Notify(SfxBroadcaster & rBc, SfxHint const & rHint)
 {
     OColorListener::Notify(rBc, rHint);
-    if (rHint.ISA(SfxSimpleHint)
-        && (static_cast< SfxSimpleHint const & >(rHint).GetId()
-            == SFX_HINT_COLORS_CHANGED))
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint && pSimpleHint->GetId() == SFX_HINT_COLORS_CHANGED)
     {
         setColor();
         Invalidate(INVALIDATE_CHILDREN);
diff --git a/sc/inc/brdcst.hxx b/sc/inc/brdcst.hxx
index d63bb2c..a11ebbd 100644
--- a/sc/inc/brdcst.hxx
+++ b/sc/inc/brdcst.hxx
@@ -22,7 +22,6 @@
 #include "global.hxx"
 #include "address.hxx"
 #include "simplehintids.hxx"
-#include <tools/rtti.hxx>
 #include <svl/hint.hxx>
 
 class SvtBroadcaster;
@@ -32,7 +31,6 @@ class ScHint : public SfxSimpleHint
     ScAddress   aAddress;
 
 public:
-    TYPEINFO_OVERRIDE();
     ScHint( sal_uLong n, const ScAddress& a );
     const ScAddress&    GetAddress() const { return aAddress; }
           ScAddress&    GetAddress()       { return aAddress; }
@@ -44,7 +42,6 @@ class ScAreaChangedHint : public SfxHint
 private:
     ScRange aNewRange;
 public:
-                    TYPEINFO_OVERRIDE();
                     ScAreaChangedHint(const ScRange& rRange) : aNewRange(rRange) {}
     const ScRange&  GetRange() const { return aNewRange; }
 };
diff --git a/sc/inc/drwlayer.hxx b/sc/inc/drwlayer.hxx
index bece16b..40096d9 100644
--- a/sc/inc/drwlayer.hxx
+++ b/sc/inc/drwlayer.hxx
@@ -40,7 +40,6 @@ class ScTabDeletedHint : public SfxHint
 private:
     SCTAB   nTab;
 public:
-            TYPEINFO_OVERRIDE();
             ScTabDeletedHint( SCTAB nTabNo = SCTAB_MAX );
     virtual ~ScTabDeletedHint();
 
@@ -52,7 +51,6 @@ class ScTabSizeChangedHint : public SfxHint
 private:
     SCTAB   nTab;
 public:
-            TYPEINFO_OVERRIDE();
             ScTabSizeChangedHint( SCTAB nTabNo = SCTAB_MAX );
     virtual ~ScTabSizeChangedHint();
 
diff --git a/sc/inc/hints.hxx b/sc/inc/hints.hxx
index 13bde4e..15a0c4d 100644
--- a/sc/inc/hints.hxx
+++ b/sc/inc/hints.hxx
@@ -33,7 +33,6 @@ class ScPaintHint : public SfxHint
     ScPaintHint(); // disabled
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScPaintHint( const ScRange& rRng, sal_uInt16 nPaint = PAINT_ALL );
                     virtual ~ScPaintHint();
 
@@ -59,8 +58,6 @@ class ScUpdateRefHint : public SfxHint
     SCsTAB          nDz;
 
 public:
-                    TYPEINFO_OVERRIDE();
-
                     ScUpdateRefHint( UpdateRefMode eMode, const ScRange& rR,
                                         SCsCOL nX, SCsROW nY, SCsTAB nZ );
                     virtual ~ScUpdateRefHint();
@@ -79,7 +76,6 @@ class ScPointerChangedHint : public SfxHint
     sal_uInt16          nFlags;
 
 public:
-                    TYPEINFO_OVERRIDE();
 
                     virtual ~ScPointerChangedHint();
 
@@ -105,7 +101,6 @@ class ScLinkRefreshedHint : public SfxHint
                             //! also use source data for area links?
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScLinkRefreshedHint();
                     virtual ~ScLinkRefreshedHint();
 
@@ -132,7 +127,6 @@ class ScAutoStyleHint : public SfxHint
     sal_uLong   nTimeout;
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScAutoStyleHint( const ScRange& rR, const OUString& rSt1,
                                         sal_uLong nT, const OUString& rSt2 );
                     virtual ~ScAutoStyleHint();
@@ -148,7 +142,6 @@ class ScDBRangeRefreshedHint : public SfxHint
     ScImportParam   aParam;
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScDBRangeRefreshedHint( const ScImportParam& rP );
                     virtual ~ScDBRangeRefreshedHint();
 
@@ -160,7 +153,6 @@ class ScDataPilotModifiedHint : public SfxHint
     OUString        maName;
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScDataPilotModifiedHint( const OUString& rName );
                     virtual ~ScDataPilotModifiedHint();
 
diff --git a/sc/inc/unoreflist.hxx b/sc/inc/unoreflist.hxx
index 7da2a77..51f4dc5 100644
--- a/sc/inc/unoreflist.hxx
+++ b/sc/inc/unoreflist.hxx
@@ -62,7 +62,6 @@ class ScUnoRefUndoHint : public SfxHint
     ScUnoRefEntry   aEntry;
 
 public:
-                TYPEINFO_OVERRIDE();
                 ScUnoRefUndoHint( const ScUnoRefEntry& rRefEntry );
                 virtual ~ScUnoRefUndoHint();
 
diff --git a/sc/source/core/data/bcaslot.cxx b/sc/source/core/data/bcaslot.cxx
index db35f20..ad340a1 100644
--- a/sc/source/core/data/bcaslot.cxx
+++ b/sc/source/core/data/bcaslot.cxx
@@ -58,9 +58,6 @@
 
 // STATIC DATA -----------------------------------------------------------
 
-TYPEINIT1( ScHint, SfxSimpleHint );
-TYPEINIT1( ScAreaChangedHint, SfxHint );
-
 struct ScSlotData
 {
     SCROW  nStartRow;   // first row of this segment
diff --git a/sc/source/core/data/documen3.cxx b/sc/source/core/data/documen3.cxx
index 5b86ed9..d439a44 100644
--- a/sc/source/core/data/documen3.cxx
+++ b/sc/source/core/data/documen3.cxx
@@ -913,8 +913,9 @@ void ScDocument::BroadcastUno( const SfxHint &rHint )
         // The listener calls must be processed after completing the broadcast,
         // because they can add or remove objects from pUnoBroadcaster.
 
-        if ( pUnoListenerCalls && rHint.ISA( SfxSimpleHint ) &&
-                ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DATACHANGED &&
+        const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+        if ( pUnoListenerCalls && pSimpleHint &&
+                pSimpleHint->GetId() == SFX_HINT_DATACHANGED &&
                 !bInUnoListenerCall )
         {
             // Listener calls may lead to BroadcastUno calls again. The listener calls
diff --git a/sc/source/core/data/drwlayer.cxx b/sc/source/core/data/drwlayer.cxx
index a6dc6e7..43354e1 100644
--- a/sc/source/core/data/drwlayer.cxx
+++ b/sc/source/core/data/drwlayer.cxx
@@ -85,9 +85,6 @@ using namespace ::com::sun::star;
 
 // STATIC DATA -----------------------------------------------------------
 
-TYPEINIT1(ScTabDeletedHint, SfxHint);
-TYPEINIT1(ScTabSizeChangedHint, SfxHint);
-
 static ScDrawObjFactory* pFac = NULL;
 static E3dObjFactory* pF3d = NULL;
 static sal_uInt16 nInst = 0;
diff --git a/sc/source/core/data/stlsheet.cxx b/sc/source/core/data/stlsheet.cxx
index 68e7095..466a43f 100644
--- a/sc/source/core/data/stlsheet.cxx
+++ b/sc/source/core/data/stlsheet.cxx
@@ -255,9 +255,9 @@ bool ScStyleSheet::IsUsed() const
 
 void ScStyleSheet::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA(SfxSimpleHint) )
-        if ( ((SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
-            GetItemSet().SetParent( NULL );
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
+        GetItemSet().SetParent( NULL );
 }
 
 //  schmutzige Tricks, um die Standard-Vorlage immer als "Standard" zu speichern,
diff --git a/sc/source/core/tool/hints.cxx b/sc/source/core/tool/hints.cxx
index 28c8873..3d7a69b 100644
--- a/sc/source/core/tool/hints.cxx
+++ b/sc/source/core/tool/hints.cxx
@@ -19,14 +19,6 @@
 
 #include "hints.hxx"
 
-TYPEINIT1(ScPaintHint, SfxHint);
-TYPEINIT1(ScUpdateRefHint, SfxHint);
-TYPEINIT1(ScPointerChangedHint, SfxHint);
-TYPEINIT1(ScLinkRefreshedHint, SfxHint);
-TYPEINIT1(ScAutoStyleHint, SfxHint);
-TYPEINIT1(ScDBRangeRefreshedHint, SfxHint);
-TYPEINIT1(ScDataPilotModifiedHint, SfxHint);
-
 // ScPaintHint - info what has to be repainted
 
 ScPaintHint::ScPaintHint( const ScRange& rRng, sal_uInt16 nPaint ) :
diff --git a/sc/source/core/tool/lookupcache.cxx b/sc/source/core/tool/lookupcache.cxx
index 15d161b..08c56e5 100644
--- a/sc/source/core/tool/lookupcache.cxx
+++ b/sc/source/core/tool/lookupcache.cxx
@@ -109,7 +109,7 @@ void ScLookupCache::Notify( const SfxHint& rHint )
 {
     if (!mpDoc->IsInDtorClear())
     {
-        const ScHint* p = PTR_CAST( ScHint, &rHint );
+        const ScHint* p = dynamic_cast<const ScHint*>(&rHint);
         if (p && (p->GetId() & SC_HINT_DATACHANGED))
         {
             mpDoc->RemoveLookupCache( *this);
diff --git a/sc/source/ui/Accessibility/AccessibilityHints.cxx b/sc/source/ui/Accessibility/AccessibilityHints.cxx
index 5dd4f22..f7309f6 100644
--- a/sc/source/ui/Accessibility/AccessibilityHints.cxx
+++ b/sc/source/ui/Accessibility/AccessibilityHints.cxx
@@ -21,8 +21,6 @@
 
 using namespace ::com::sun::star;
 
-TYPEINIT1(ScAccWinFocusLostHint, SfxHint);
-
 //      ScAccWinFocusLostHint - the current window lost its focus (to another application, view or document)
 
 ScAccWinFocusLostHint::ScAccWinFocusLostHint(
@@ -36,8 +34,6 @@ ScAccWinFocusLostHint::~ScAccWinFocusLostHint()
 {
 }
 
-TYPEINIT1(ScAccWinFocusGotHint, SfxHint);
-
 //      ScAccWinFocusGotHint - the window got the focus (from another application, view or document)
 
 ScAccWinFocusGotHint::ScAccWinFocusGotHint(
@@ -51,8 +47,6 @@ ScAccWinFocusGotHint::~ScAccWinFocusGotHint()
 {
 }
 
-TYPEINIT1(ScAccGridWinFocusLostHint, SfxHint);
-
 //      ScAccGridWinFocusLostHint - the current grid window lost its focus (to another application, view or document)
 
 ScAccGridWinFocusLostHint::ScAccGridWinFocusLostHint(ScSplitPos eOld,
@@ -67,8 +61,6 @@ ScAccGridWinFocusLostHint::~ScAccGridWinFocusLostHint()
 {
 }
 
-TYPEINIT1(ScAccGridWinFocusGotHint, SfxHint);
-
 //      ScAccGridWinFocusGotHint - the grid window got the focus (from another application, view or document)
 
 ScAccGridWinFocusGotHint::ScAccGridWinFocusGotHint(ScSplitPos eNew,
diff --git a/sc/source/ui/Accessibility/AccessibleContextBase.cxx b/sc/source/ui/Accessibility/AccessibleContextBase.cxx
index 1ad86a4..445fba0 100644
--- a/sc/source/ui/Accessibility/AccessibleContextBase.cxx
+++ b/sc/source/ui/Accessibility/AccessibleContextBase.cxx
@@ -127,10 +127,10 @@ void SAL_CALL ScAccessibleContextBase::release()
 
 void ScAccessibleContextBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
-        if (rRef.GetId() == SFX_HINT_DYING)
+        if (pSimpleHint->GetId() == SFX_HINT_DYING)
         {
             // it seems the Broadcaster is dying, since the view is dying
             dispose();
diff --git a/sc/source/ui/Accessibility/AccessibleDocument.cxx b/sc/source/ui/Accessibility/AccessibleDocument.cxx
index c38a8dc..17fee2a 100644
--- a/sc/source/ui/Accessibility/AccessibleDocument.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocument.cxx
@@ -405,48 +405,45 @@ void ScChildrenShapes::SetDrawBroadcaster()
 
 void ScChildrenShapes::Notify(SfxBroadcaster&, const SfxHint& rHint)
 {
-    if ( rHint.ISA( SdrHint ) )
+    const SdrHint* pSdrHint = dynamic_cast<const SdrHint*>(&rHint);
+    if (pSdrHint)
     {
-        const SdrHint* pSdrHint = PTR_CAST( SdrHint, &rHint );
-        if (pSdrHint)
+        SdrObject* pObj = const_cast<SdrObject*>(pSdrHint->GetObject());
+        if (pObj && /*(pObj->GetLayer() != SC_LAYER_INTERN) && */(pObj->GetPage() == GetDrawPage()) &&
+            (pObj->GetPage() == pObj->GetObjList()) ) //only do something if the object lies direct on the page
         {
-            SdrObject* pObj = const_cast<SdrObject*>(pSdrHint->GetObject());
-            if (pObj && /*(pObj->GetLayer() != SC_LAYER_INTERN) && */(pObj->GetPage() == GetDrawPage()) &&
-                (pObj->GetPage() == pObj->GetObjList()) ) //only do something if the object lies direct on the page
+            switch (pSdrHint->GetKind())
             {
-                switch (pSdrHint->GetKind())
+                case HINT_OBJCHG :         // Objekt geaendert
                 {
-                    case HINT_OBJCHG :         // Objekt geaendert
+                    uno::Reference<drawing::XShape> xShape (pObj->getUnoShape(), uno::UNO_QUERY);
+                    if (xShape.is())
                     {
-                        uno::Reference<drawing::XShape> xShape (pObj->getUnoShape(), uno::UNO_QUERY);
-                        if (xShape.is())
-                        {
-                            ScShapeDataLess aLess;
-                            std::sort(maZOrderedShapes.begin(), maZOrderedShapes.end(), aLess); // sort, because the z index or layer could be changed
-                            CheckWhetherAnchorChanged(xShape);
-                        }
-                    }
-                    break;
-                    case HINT_OBJINSERTED :    // Neues Zeichenobjekt eingefuegt
-                    {
-                        uno::Reference<drawing::XShape> xShape (pObj->getUnoShape(), uno::UNO_QUERY);
-                        if (xShape.is())
-                            AddShape(xShape, true);
-                    }
-                    break;
-                    case HINT_OBJREMOVED :     // Zeichenobjekt aus Liste entfernt
-                    {
-                        uno::Reference<drawing::XShape> xShape (pObj->getUnoShape(), uno::UNO_QUERY);
-                        if (xShape.is())
-                            RemoveShape(xShape);
-                    }
-                    break;
-                    default :
-                    {
-                        // other events are not interesting
+                        ScShapeDataLess aLess;
+                        std::sort(maZOrderedShapes.begin(), maZOrderedShapes.end(), aLess); // sort, because the z index or layer could be changed
+                        CheckWhetherAnchorChanged(xShape);
                     }
-                    break;
                 }
+                break;
+                case HINT_OBJINSERTED :    // Neues Zeichenobjekt eingefuegt
+                {
+                    uno::Reference<drawing::XShape> xShape (pObj->getUnoShape(), uno::UNO_QUERY);
+                    if (xShape.is())
+                        AddShape(xShape, true);
+                }
+                break;
+                case HINT_OBJREMOVED :     // Zeichenobjekt aus Liste entfernt
+                {
+                    uno::Reference<drawing::XShape> xShape (pObj->getUnoShape(), uno::UNO_QUERY);
+                    if (xShape.is())
+                        RemoveShape(xShape);
+                }
+                break;
+                default :
+                {
+                    // other events are not interesting
+                }
+                break;
             }
         }
     }
@@ -1516,10 +1513,10 @@ IMPL_LINK( ScAccessibleDocument, WindowChildEventListener, VclSimpleEvent*, pEve
 
 void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( ScAccGridWinFocusLostHint ) )
+    if (dynamic_cast<const ScAccGridWinFocusLostHint*>(&rHint) )
     {
-        const ScAccGridWinFocusLostHint& rRef = (const ScAccGridWinFocusLostHint&)rHint;
-        if (rRef.GetOldGridWin() == meSplitPos)
+        const ScAccGridWinFocusLostHint* pFocusLostHint = static_cast<const ScAccGridWinFocusLostHint *>(&rHint);
+        if (pFocusLostHint->GetOldGridWin() == meSplitPos)
         {
             if (mxTempAcc.is() && mpTempAccEdit)
                 mpTempAccEdit->LostFocus();
@@ -1529,10 +1526,10 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
                 CommitFocusLost();
         }
     }
-    else if (rHint.ISA( ScAccGridWinFocusGotHint ) )
+    else if (dynamic_cast<const ScAccGridWinFocusGotHint*>(&rHint) )
     {
-        const ScAccGridWinFocusGotHint& rRef = (const ScAccGridWinFocusGotHint&)rHint;
-        if (rRef.GetNewGridWin() == meSplitPos)
+        const ScAccGridWinFocusGotHint* pFocusGotHint = static_cast<const ScAccGridWinFocusGotHint*>(&rHint);
+        if (pFocusGotHint->GetNewGridWin() == meSplitPos)
         {
             uno::Reference<XAccessible> xAccessible;
             if (mpChildrenShapes)
@@ -1560,11 +1557,11 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
             }
         }
     }
-    else if (rHint.ISA( SfxSimpleHint ))
+    else if (dynamic_cast<const SfxSimpleHint*>(&rHint))
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
+        const SfxSimpleHint* pSimpleHint = static_cast<const SfxSimpleHint*>(&rHint);
         // only notify if child exist, otherwise it is not necessary
-        if ((rRef.GetId() == SC_HINT_ACC_TABLECHANGED) &&
+        if ((pSimpleHint->GetId() == SC_HINT_ACC_TABLECHANGED) &&
             mpAccessibleSpreadsheet)
         {
             FreeAccessibleSpreadsheet();
@@ -1588,12 +1585,12 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
             if (mpAccessibleSpreadsheet)
                 mpAccessibleSpreadsheet->FireFirstCellFocus();
         }
-        else if (rRef.GetId() == SC_HINT_ACC_MAKEDRAWLAYER)
+        else if (pSimpleHint->GetId() == SC_HINT_ACC_MAKEDRAWLAYER)
         {
             if (mpChildrenShapes)
                 mpChildrenShapes->SetDrawBroadcaster();
         }
-        else if ((rRef.GetId() == SC_HINT_ACC_ENTEREDITMODE)) // this event comes only on creating edit field of a cell
+        else if ((pSimpleHint->GetId() == SC_HINT_ACC_ENTEREDITMODE)) // this event comes only on creating edit field of a cell
         {
             if (mpViewShell->GetViewData().HasEditView(meSplitPos))
             {
@@ -1617,7 +1614,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
                 }
             }
         }
-        else if (rRef.GetId() == SC_HINT_ACC_LEAVEEDITMODE)
+        else if (pSimpleHint->GetId() == SC_HINT_ACC_LEAVEEDITMODE)
         {
             if (mxTempAcc.is())
             {
@@ -1632,7 +1629,7 @@ void ScAccessibleDocument::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
                     CommitFocusGained();
             }
         }
-        else if ((rRef.GetId() == SC_HINT_ACC_VISAREACHANGED) || (rRef.GetId() == SC_HINT_ACC_WINDOWRESIZED))
+        else if ((pSimpleHint->GetId() == SC_HINT_ACC_VISAREACHANGED) || (pSimpleHint->GetId() == SC_HINT_ACC_WINDOWRESIZED))
         {
             Rectangle aOldVisArea(maVisArea);
             maVisArea = GetVisibleArea_Impl();
diff --git a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
index 1afaa5b..d4d7251 100644
--- a/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
+++ b/sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx
@@ -748,26 +748,23 @@ void ScShapeChildren::SetDrawBroadcaster()
 
 void ScShapeChildren::Notify(SfxBroadcaster&, const SfxHint& rHint)
 {
-    if ( rHint.ISA( SdrHint ) )
+    const SdrHint* pSdrHint = dynamic_cast<const SdrHint*>( &rHint );
+    if (pSdrHint)
     {
-        const SdrHint* pSdrHint = PTR_CAST( SdrHint, &rHint );
-        if (pSdrHint)
+        SdrObject* pObj = const_cast<SdrObject*>(pSdrHint->GetObject());
+        if (pObj && (pObj->GetPage() == GetDrawPage()))
         {
-            SdrObject* pObj = const_cast<SdrObject*>(pSdrHint->GetObject());
-            if (pObj && (pObj->GetPage() == GetDrawPage()))
+            switch (pSdrHint->GetKind())
             {
-                switch (pSdrHint->GetKind())
+                case HINT_OBJCHG :         // Objekt geaendert
                 {
-                    case HINT_OBJCHG :         // Objekt geaendert
-                    {
-                    }
-                    break;
-                    default :
-                    {
-                        // other events are not interesting
-                    }
-                    break;
                 }
+                break;
+                default :
+                {
+                    // other events are not interesting
+                }
+                break;
             }
         }
     }
@@ -1298,11 +1295,11 @@ void SAL_CALL ScAccessibleDocumentPagePreview::disposing()
 
 void ScAccessibleDocumentPagePreview::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
         // only notify if child exist, otherwise it is not necessary
-        if ((rRef.GetId() == SC_HINT_DATACHANGED))
+        if (pSimpleHint->GetId() == SC_HINT_DATACHANGED)
         {
             if (mpTable) // if there is no table there is nothing to notify, because no one recongnizes the change
             {
@@ -1352,11 +1349,11 @@ void ScAccessibleDocumentPagePreview::Notify( SfxBroadcaster& rBC, const SfxHint
                 }
             }
         }
-        else if (rRef.GetId() == SC_HINT_ACC_MAKEDRAWLAYER)
+        else if (pSimpleHint->GetId() == SC_HINT_ACC_MAKEDRAWLAYER)
         {
             GetShapeChildren()->SetDrawBroadcaster();
         }
-        else if (rRef.GetId() == SC_HINT_ACC_VISAREACHANGED)
+        else if (pSimpleHint->GetId() == SC_HINT_ACC_VISAREACHANGED)
         {
             Size aOutputSize;
             Window* pSizeWindow = mpViewShell->GetWindow();
@@ -1374,11 +1371,11 @@ void ScAccessibleDocumentPagePreview::Notify( SfxBroadcaster& rBC, const SfxHint
             CommitChange(aEvent);
         }
     }
-    else if ( rHint.ISA(ScAccWinFocusLostHint) )
+    else if ( dynamic_cast<const ScAccWinFocusLostHint*>(&rHint) )
     {
         CommitFocusLost();
     }
-    else if ( rHint.ISA(ScAccWinFocusGotHint) )
+    else if ( dynamic_cast<const ScAccWinFocusGotHint*>(&rHint) )
     {
         CommitFocusGained();
     }
diff --git a/sc/source/ui/Accessibility/AccessiblePageHeader.cxx b/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
index cd20268..4eafb7a 100644
--- a/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePageHeader.cxx
@@ -123,11 +123,11 @@ void SAL_CALL ScAccessiblePageHeader::disposing()
 
 void ScAccessiblePageHeader::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>( &rHint );
+    if (pSimpleHint)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
         // only notify if child exist, otherwise it is not necessary
-        if ((rRef.GetId() == SC_HINT_DATACHANGED))
+        if (pSimpleHint->GetId() == SC_HINT_DATACHANGED)
         {
             ScHFAreas aOldAreas(maAreas);
             std::for_each(aOldAreas.begin(), aOldAreas.end(), Acquire());
@@ -161,7 +161,7 @@ void ScAccessiblePageHeader::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
             }
             std::for_each(aOldAreas.begin(), aOldAreas.end(), Release());
         }
-        else if (rRef.GetId() == SC_HINT_ACC_VISAREACHANGED)
+        else if (pSimpleHint->GetId() == SC_HINT_ACC_VISAREACHANGED)
         {
             AccessibleEventObject aEvent;
             aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
diff --git a/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx b/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx
index 78f8579..68682e0 100644
--- a/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePageHeaderArea.cxx
@@ -90,11 +90,11 @@ void SAL_CALL ScAccessiblePageHeaderArea::disposing()
 
 void ScAccessiblePageHeaderArea::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
         // only notify if child exist, otherwise it is not necessary
-        if (rRef.GetId() == SC_HINT_ACC_VISAREACHANGED)
+        if (pSimpleHint->GetId() == SC_HINT_ACC_VISAREACHANGED)
         {
             if (mpTextHelper)
                 mpTextHelper->UpdateChildren();
diff --git a/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx b/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx
index d2cc201..3f6b018 100644
--- a/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePreviewCell.cxx
@@ -81,14 +81,11 @@ void SAL_CALL ScAccessiblePreviewCell::disposing()
 
 void ScAccessiblePreviewCell::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ))
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint && pSimpleHint->GetId() == SC_HINT_ACC_VISAREACHANGED)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
-        if (rRef.GetId() == SC_HINT_ACC_VISAREACHANGED)
-        {
-            if (mpTextHelper)
-                mpTextHelper->UpdateChildren();
-        }
+        if (mpTextHelper)
+            mpTextHelper->UpdateChildren();
     }
 
     ScAccessibleContextBase::Notify(rBC, rHint);
diff --git a/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx b/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx
index fdfa6ee..12221e5 100644
--- a/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePreviewHeaderCell.cxx
@@ -115,10 +115,10 @@ void SAL_CALL ScAccessiblePreviewHeaderCell::disposing()
 
 void ScAccessiblePreviewHeaderCell::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ))
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
-        sal_uLong nId = rRef.GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if (nId == SC_HINT_ACC_VISAREACHANGED)
         {
             if (mpTextHelper)
diff --git a/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx b/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
index f8e0e99..79a6715 100644
--- a/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
+++ b/sc/source/ui/Accessibility/AccessiblePreviewTable.cxx
@@ -87,17 +87,17 @@ void SAL_CALL ScAccessiblePreviewTable::disposing()
 
 void ScAccessiblePreviewTable::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ))
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
-        sal_uLong nId = rRef.GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DATACHANGED )
         {
             //  column / row layout may change with any document change,
             //  so it must be invalidated
             DELETEZ( mpTableInfo );
         }
-        else if (rRef.GetId() == SC_HINT_ACC_VISAREACHANGED)
+        else if (pSimpleHint->GetId() == SC_HINT_ACC_VISAREACHANGED)
         {
             AccessibleEventObject aEvent;
             aEvent.EventId = AccessibleEventId::VISIBLE_DATA_CHANGED;
diff --git a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
index ef9b834..896d2bd 100644
--- a/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
+++ b/sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx
@@ -418,10 +418,10 @@ void ScAccessibleSpreadsheet::VisAreaChanged()
 
 void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if (rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if (pSimpleHint)
     {
-        const SfxSimpleHint& rRef = (const SfxSimpleHint&)rHint;
-        if ((rRef.GetId() == SC_HINT_ACC_CURSORCHANGED))
+        if (pSimpleHint->GetId() == SC_HINT_ACC_CURSORCHANGED)
         {
             if (mpViewShell)
             {
@@ -432,7 +432,7 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint
                 {
                     NotifyRefMode();
                     m_bFormulaLastMode = true;
-                    return ;
+                    return;
                 }
                 if (m_bFormulaLastMode)
                 {//Last Notify Mode  Is Formula Mode.
@@ -599,7 +599,7 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint
                 m_LastMarkedRanges = *mpMarkedRanges;
             }
         }
-        else if ((rRef.GetId() == SC_HINT_DATACHANGED))
+        else if (pSimpleHint->GetId() == SC_HINT_DATACHANGED)
         {
             if (!mbDelIns)
                 CommitTableModelChange(maRange.aStart.Row(), maRange.aStart.Col(), maRange.aEnd.Row(), maRange.aEnd.Col(), AccessibleTableModelChangeType::UPDATE);
@@ -657,9 +657,9 @@ void ScAccessibleSpreadsheet::Notify( SfxBroadcaster& rBC, const SfxHint& rHint
             }
         }*/
     }
-    else if (rHint.ISA( ScUpdateRefHint ))
+    else if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
-        const ScUpdateRefHint& rRef = (const ScUpdateRefHint&)rHint;
+        const ScUpdateRefHint& rRef = static_cast<const ScUpdateRefHint&>(rHint);
         if (rRef.GetMode() == URM_INSDEL && rRef.GetDz() == 0) //test whether table is inserted or deleted
         {
             if (((rRef.GetRange().aStart.Col() == maRange.aStart.Col()) &&
diff --git a/sc/source/ui/Accessibility/AccessibleText.cxx b/sc/source/ui/Accessibility/AccessibleText.cxx
index a6bf37e..3dc8ba5 100644
--- a/sc/source/ui/Accessibility/AccessibleText.cxx
+++ b/sc/source/ui/Accessibility/AccessibleText.cxx
@@ -729,9 +729,10 @@ ScAccessibleCellTextData::~ScAccessibleCellTextData()
 
 void ScAccessibleCellTextData::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             mpViewShell = NULL;                     // invalid now
@@ -991,9 +992,10 @@ ScAccessibleEditObjectTextData::~ScAccessibleEditObjectTextData()
 
 void ScAccessibleEditObjectTextData::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             mpWindow = NULL;
@@ -1254,9 +1256,10 @@ ScAccessiblePreviewCellTextData::~ScAccessiblePreviewCellTextData()
 
 void ScAccessiblePreviewCellTextData::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             mpViewShell = NULL;                     // invalid now
@@ -1331,9 +1334,10 @@ ScAccessiblePreviewHeaderCellTextData::~ScAccessiblePreviewHeaderCellTextData()
 
 void ScAccessiblePreviewHeaderCellTextData::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             mpViewShell = NULL;                     // invalid now
@@ -1453,9 +1457,10 @@ ScAccessibleTextData* ScAccessibleHeaderTextData::Clone() const
 
 void ScAccessibleHeaderTextData::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             mpViewShell = NULL;// invalid now
@@ -1567,9 +1572,10 @@ ScAccessibleTextData* ScAccessibleNoteTextData::Clone() const
 
 void ScAccessibleNoteTextData::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             mpViewShell = NULL;// invalid now
@@ -1707,9 +1713,10 @@ ScAccessibleCsvTextData::~ScAccessibleCsvTextData()
 
 void ScAccessibleCsvTextData::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if( nId == SFX_HINT_DYING )
         {
             mpWindow = NULL;
diff --git a/sc/source/ui/Accessibility/DrawModelBroadcaster.cxx b/sc/source/ui/Accessibility/DrawModelBroadcaster.cxx
index 56c028b..844bf11 100644
--- a/sc/source/ui/Accessibility/DrawModelBroadcaster.cxx
+++ b/sc/source/ui/Accessibility/DrawModelBroadcaster.cxx
@@ -54,7 +54,7 @@ void SAL_CALL ScDrawModelBroadcaster::removeEventListener( const uno::Reference<
 void ScDrawModelBroadcaster::Notify( SfxBroadcaster&,
         const SfxHint& rHint )
 {
-    const SdrHint *pSdrHint = PTR_CAST( SdrHint, &rHint );
+    const SdrHint* pSdrHint = dynamic_cast<const SdrHint*>(&rHint);
     if( !pSdrHint )
         return;
 
diff --git a/sc/source/ui/app/inputwin.cxx b/sc/source/ui/app/inputwin.cxx
index 37cf7d5..ee993c1 100644
--- a/sc/source/ui/app/inputwin.cxx
+++ b/sc/source/ui/app/inputwin.cxx
@@ -2205,15 +2205,16 @@ void ScPosWnd::Notify( SfxBroadcaster&, const SfxHint& rHint )
     if ( !bFormulaMode )
     {
         // Does the list of range names need updating?
-        if ( rHint.ISA(SfxSimpleHint) )
+        const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+        if ( pSimpleHint )
         {
-            sal_uLong nHintId = ((SfxSimpleHint&)rHint).GetId();
+            sal_uLong nHintId = pSimpleHint->GetId();
             if ( nHintId == SC_HINT_AREAS_CHANGED || nHintId == SC_HINT_NAVIGATOR_UPDATEALL)
                 FillRangeNames();
         }
-        else if ( rHint.ISA(SfxEventHint) )
+        else if ( dynamic_cast<const SfxEventHint*>(&rHint) )
         {
-            sal_uLong nEventId = ((SfxEventHint&)rHint).GetEventId();
+            sal_uLong nEventId = static_cast<const SfxEventHint*>(&rHint)->GetEventId();
             if ( nEventId == SFX_EVENT_ACTIVATEDOC )
                 FillRangeNames();
         }
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index 72ccfbd..213782e 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -321,9 +321,10 @@ void ScModule::ConfigurationChanged( utl::ConfigurationBroadcaster* p, sal_uInt3
 
 void ScModule::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA(SfxSimpleHint) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nHintId = ((SfxSimpleHint&)rHint).GetId();
+        sal_uLong nHintId = pSimpleHint->GetId();
         if ( nHintId == SFX_HINT_DEINITIALIZING )
         {
             // ConfigItems must be removed before ConfigManager
diff --git a/sc/source/ui/app/uiitems.cxx b/sc/source/ui/app/uiitems.cxx
index 9b12278..e2c3e89 100644
--- a/sc/source/ui/app/uiitems.cxx
+++ b/sc/source/ui/app/uiitems.cxx
@@ -37,9 +37,6 @@ TYPEINIT1(ScPivotItem,          SfxPoolItem);
 TYPEINIT1(ScSolveItem,          SfxPoolItem);
 TYPEINIT1(ScTabOpItem,          SfxPoolItem);
 
-TYPEINIT1(ScTablesHint,         SfxHint);
-TYPEINIT1(ScEditViewHint,       SfxHint);
-TYPEINIT1(ScIndexHint,          SfxHint);
 
 /**
  * Status update for entry field
diff --git a/sc/source/ui/condformat/condformatdlgentry.cxx b/sc/source/ui/condformat/condformatdlgentry.cxx
index d8b33a2..fa54d2a 100644
--- a/sc/source/ui/condformat/condformatdlgentry.cxx
+++ b/sc/source/ui/condformat/condformatdlgentry.cxx
@@ -459,7 +459,7 @@ void UpdateStyleList(ListBox& rLbStyle, ScDocument* pDoc)
 
 void ScConditionFrmtEntry::Notify(SfxBroadcaster&, const SfxHint& rHint)
 {
-    SfxStyleSheetHint* pHint = PTR_CAST(SfxStyleSheetHint, &rHint);
+    const SfxStyleSheetHint* pHint = dynamic_cast<const SfxStyleSheetHint*>(&rHint);
     if(!pHint)
         return;
 
@@ -1286,7 +1286,7 @@ void ScDateFrmtEntry::SetInactive()
 
 void ScDateFrmtEntry::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    SfxStyleSheetHint* pHint = PTR_CAST(SfxStyleSheetHint, &rHint);
+    const SfxStyleSheetHint* pHint = dynamic_cast<const SfxStyleSheetHint*>(&rHint);
     if(!pHint)
         return;
 
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index 7c47212..0d06c52 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -599,16 +599,16 @@ bool ScDocShell::Load( SfxMedium& rMedium )
 
 void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if (rHint.ISA(ScTablesHint) )
+    const ScTablesHint* pScHint = dynamic_cast< const ScTablesHint* >( &rHint );
+    if (pScHint)
     {
-        const ScTablesHint& rScHint = static_cast< const ScTablesHint& >( rHint );
-        if (rScHint.GetId() == SC_TAB_INSERTED)
+        if (pScHint->GetId() == SC_TAB_INSERTED)
         {
             uno::Reference< script::vba::XVBAEventProcessor > xVbaEvents = aDocument.GetVbaEventProcessor();
             if ( xVbaEvents.is() ) try
             {
                 uno::Sequence< uno::Any > aArgs( 1 );
-                aArgs[0] <<= rScHint.GetTab1();
+                aArgs[0] <<= pScHint->GetTab1();
                 xVbaEvents->processVbaEvent( script::vba::VBAEventId::WORKBOOK_NEWSHEET, aArgs );
             }
             catch( uno::Exception& )
@@ -617,9 +617,9 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
         }
     }
 
-    if (rHint.ISA(SfxSimpleHint)) // Without parameter
+    if ( dynamic_cast<const SfxSimpleHint*>(&rHint) ) // Without parameter
     {
-        sal_uLong nSlot = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nSlot = static_cast<const SfxSimpleHint&>(rHint).GetId();
         switch ( nSlot )
         {
             case SFX_HINT_TITLECHANGED:
@@ -629,9 +629,9 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
                 break;
         }
     }
-    else if (rHint.ISA(SfxStyleSheetHint)) // Template changed
-        NotifyStyle((const SfxStyleSheetHint&) rHint);
-    else if (rHint.ISA(ScAutoStyleHint))
+    else if ( dynamic_cast<const SfxStyleSheetHint*>(&rHint) ) // Template changed
+        NotifyStyle( static_cast<const SfxStyleSheetHint&>(rHint) );
+    else if ( dynamic_cast<const ScAutoStyleHint*>(&rHint) )
     {
         //! direct call for AutoStyles
 
@@ -649,9 +649,9 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
             pAutoStyleList = new ScAutoStyleList(this);
         pAutoStyleList->AddInitial( aRange, aName1, nTimeout, aName2 );
     }
-    else if ( rHint.ISA( SfxEventHint ) )
+    else if ( dynamic_cast<const SfxEventHint*>(&rHint) )
     {
-        sal_uLong nEventId = ((SfxEventHint&)rHint).GetEventId();
+        sal_uLong nEventId = static_cast<const SfxEventHint*>(&rHint)->GetEventId();
         switch ( nEventId )
         {
             case SFX_EVENT_LOADFINISHED:
diff --git a/sc/source/ui/docshell/docsh4.cxx b/sc/source/ui/docshell/docsh4.cxx
index ea14091..13aa479 100644
--- a/sc/source/ui/docshell/docsh4.cxx
+++ b/sc/source/ui/docshell/docsh4.cxx
@@ -1292,9 +1292,9 @@ void ScDocShell::NotifyStyle( const SfxStyleSheetHint& rHint )
 
             OUString aNewName = pStyle->GetName();
             OUString aOldName = aNewName;
-            bool bExtended = rHint.ISA(SfxStyleSheetHintExtended);      // Name geaendert?
-            if (bExtended)
-                aOldName = ((SfxStyleSheetHintExtended&)rHint).GetOldName();
+            const SfxStyleSheetHintExtended* pExtendedHint = dynamic_cast<const SfxStyleSheetHintExtended*>(&rHint); // Name geaendert?
+            if (pExtendedHint)
+                aOldName = pExtendedHint->GetOldName();
 
             if ( aNewName != aOldName )
                 aDocument.RenamePageStyleInUse( aOldName, aNewName );
@@ -1310,7 +1310,7 @@ void ScDocShell::NotifyStyle( const SfxStyleSheetHint& rHint )
 
             aModificator.SetDocumentModified();
 
-            if (bExtended)
+            if (pExtendedHint)
             {
                 SfxBindings* pBindings = GetViewBindings();
                 if (pBindings)
@@ -1330,9 +1330,9 @@ void ScDocShell::NotifyStyle( const SfxStyleSheetHint& rHint )
         {
             OUString aNewName = pStyle->GetName();
             OUString aOldName = aNewName;
-            bool bExtended = rHint.ISA(SfxStyleSheetHintExtended);
-            if (bExtended)
-                aOldName = ((SfxStyleSheetHintExtended&)rHint).GetOldName();
+            const SfxStyleSheetHintExtended* pExtendedHint = dynamic_cast<const SfxStyleSheetHintExtended*>(&rHint);
+            if (pExtendedHint)
+                aOldName = pExtendedHint->GetOldName();
             if ( aNewName != aOldName )
             {
                 for(SCTAB i = 0; i < aDocument.GetTableCount(); ++i)
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 6757d36..adcf1e9 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -3012,9 +3012,10 @@ void ScExternalRefManager::transformUnsavedRefToSavedRef( SfxObjectShell* pShell
 
 void ScExternalRefManager::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxEventHint ) )
+    const SfxEventHint* pEventHint = dynamic_cast<const SfxEventHint*>(&rHint);
+    if ( pEventHint )
     {
-        sal_uLong nEventId = ((SfxEventHint&)rHint).GetEventId();
+        sal_uLong nEventId = pEventHint->GetEventId();
         switch ( nEventId )
         {
             case SFX_EVENT_PREPARECLOSEDOC:
diff --git a/sc/source/ui/docshell/servobj.cxx b/sc/source/ui/docshell/servobj.cxx
index 39d3ee1..664887e 100644
--- a/sc/source/ui/docshell/servobj.cxx
+++ b/sc/source/ui/docshell/servobj.cxx
@@ -203,7 +203,8 @@ void ScServerObject::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
     if ( &rBC == pDocSh )
     {
         //  from DocShell, only SFX_HINT_DYING is interesting
-        if ( rHint.ISA(SfxSimpleHint) && ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+        const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>( &rHint );
+        if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
         {
             pDocSh = NULL;
             EndListening(*SfxGetpApp());
@@ -212,8 +213,9 @@ void ScServerObject::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
     }
     else if (rBC.ISA(SfxApplication))
     {
-        if ( !aItemStr.isEmpty() && rHint.ISA(SfxSimpleHint) &&
-                ((const SfxSimpleHint&)rHint).GetId() == SC_HINT_AREAS_CHANGED )
+        const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>( &rHint );
+        if ( !aItemStr.isEmpty() && pSimpleHint &&
+                pSimpleHint->GetId() == SC_HINT_AREAS_CHANGED )
         {
             //  check if named range was modified
             ScRange aNew;
@@ -225,21 +227,21 @@ void ScServerObject::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
     {
         //  must be from Area broadcasters
 
-        const ScHint* pScHint = PTR_CAST( ScHint, &rHint );
+        const ScHint* pScHint = dynamic_cast<const ScHint*>( &rHint );
         if (pScHint && (pScHint->GetId() & SC_HINT_DATACHANGED))
             bDataChanged = true;
-        else if (rHint.ISA(ScAreaChangedHint))      // position of broadcaster changed
+        else if ( dynamic_cast<const ScAreaChangedHint*>(&rHint) )      // position of broadcaster changed
         {
-            ScRange aNewRange = ((const ScAreaChangedHint&)rHint).GetRange();
+            ScRange aNewRange = static_cast<const ScAreaChangedHint&>(rHint).GetRange();
             if ( aRange != aNewRange )
             {
                 bRefreshListener = true;
                 bDataChanged = true;
             }
         }
-        else if (rHint.ISA(SfxSimpleHint))
+        else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) )
         {
-            sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+            sal_uLong nId = static_cast<const SfxSimpleHint&>(rHint).GetId();
             if (nId == SFX_HINT_DYING)
             {
                 //  If the range is being deleted, listening must be restarted
diff --git a/sc/source/ui/inc/AccessibilityHints.hxx b/sc/source/ui/inc/AccessibilityHints.hxx
index 4161442..dcba897 100644
--- a/sc/source/ui/inc/AccessibilityHints.hxx
+++ b/sc/source/ui/inc/AccessibilityHints.hxx
@@ -39,7 +39,6 @@ class ScAccWinFocusLostHint : public SfxHint
     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
                 xOldAccessible;
 public:
-                TYPEINFO_OVERRIDE();
                 ScAccWinFocusLostHint(
                     const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xOld );
                 virtual ~ScAccWinFocusLostHint();
@@ -53,7 +52,6 @@ class ScAccWinFocusGotHint : public SfxHint
     ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
                 xNewAccessible;
 public:
-                TYPEINFO_OVERRIDE();
                 ScAccWinFocusGotHint(
                     const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xNew );
                 virtual ~ScAccWinFocusGotHint();
@@ -66,7 +64,6 @@ class ScAccGridWinFocusLostHint : public ScAccWinFocusLostHint
 {
     ScSplitPos  eOldGridWin;
 public:
-                TYPEINFO_OVERRIDE();
                 ScAccGridWinFocusLostHint( ScSplitPos eOldGridWin,
                     const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xOld );
                 virtual ~ScAccGridWinFocusLostHint();
@@ -78,7 +75,6 @@ class ScAccGridWinFocusGotHint : public ScAccWinFocusGotHint
 {
     ScSplitPos  eNewGridWin;
 public:
-                TYPEINFO_OVERRIDE();
                 ScAccGridWinFocusGotHint( ScSplitPos eNewGridWin,
                     const ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >& xNew );
                 virtual ~ScAccGridWinFocusGotHint();
diff --git a/sc/source/ui/inc/uiitems.hxx b/sc/source/ui/inc/uiitems.hxx
index 0cbbbb2..ae988e6 100644
--- a/sc/source/ui/inc/uiitems.hxx
+++ b/sc/source/ui/inc/uiitems.hxx
@@ -101,11 +101,10 @@ class ScTablesHint : public SfxHint
     SCTAB nTab2;
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScTablesHint(sal_uInt16 nNewId, SCTAB nTable1, SCTAB nTable2=0);
                     virtual ~ScTablesHint();
 
-    sal_uInt16          GetId() const           { return nId; }
+    sal_uInt16      GetId() const           { return nId; }
     SCTAB           GetTab1() const         { return nTab1; }
     SCTAB           GetTab2() const         { return nTab2; }
 };
@@ -116,7 +115,6 @@ class ScEditViewHint : public SfxHint
     ScAddress                   aCursorPos;
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScEditViewHint( ScEditEngineDefaulter* pEngine, const ScAddress& rCurPos );
                     virtual ~ScEditViewHint();
 
@@ -135,12 +133,11 @@ class ScIndexHint : public SfxHint
     sal_uInt16 nIndex;
 
 public:
-                    TYPEINFO_OVERRIDE();
                     ScIndexHint(sal_uInt16 nNewId, sal_uInt16 nIdx);
                     virtual ~ScIndexHint();
 
-    sal_uInt16          GetId() const           { return nId; }
-    sal_uInt16          GetIndex() const        { return nIndex; }
+    sal_uInt16      GetId() const           { return nId; }
+    sal_uInt16      GetIndex() const        { return nIndex; }
 };
 
 // Parameter item for the sort dialog:
diff --git a/sc/source/ui/navipi/navipi.cxx b/sc/source/ui/navipi/navipi.cxx
index a219184..f60f4b2 100644
--- a/sc/source/ui/navipi/navipi.cxx
+++ b/sc/source/ui/navipi/navipi.cxx
@@ -810,9 +810,10 @@ void ScNavigatorDlg::DoResize()
 
 void ScNavigatorDlg::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA(SfxSimpleHint) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>( &rHint );
+    if ( pSimpleHint )
     {
-        sal_uLong nHintId = ((SfxSimpleHint&)rHint).GetId();
+        sal_uLong nHintId = pSimpleHint->GetId();
 
         if ( nHintId == SC_HINT_DOCNAME_CHANGED )
         {
@@ -868,9 +869,9 @@ void ScNavigatorDlg::Notify( SfxBroadcaster&, const SfxHint& rHint )
             }
         }
     }
-    else if ( rHint.ISA(SfxEventHint) )
+    else if ( dynamic_cast<const SfxEventHint*>(&rHint) )
     {
-        sal_uLong nEventId = ((SfxEventHint&)rHint).GetEventId();
+        sal_uLong nEventId = static_cast<const SfxEventHint&>(rHint).GetEventId();
         if ( nEventId == SFX_EVENT_ACTIVATEDOC )
         {
             aLbEntries.ActiveDocChanged();
diff --git a/sc/source/ui/unoobj/addruno.cxx b/sc/source/ui/unoobj/addruno.cxx
index d7a273c2..a9dd77d 100644
--- a/sc/source/ui/unoobj/addruno.cxx
+++ b/sc/source/ui/unoobj/addruno.cxx
@@ -48,8 +48,8 @@ ScAddressConversionObj::~ScAddressConversionObj()
 
 void ScAddressConversionObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>( &rHint );
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // invalid
     }
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 5e859a8..1089af3 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -1527,7 +1527,7 @@ const ScMarkData* ScCellRangesBase::GetMarkData()
 
 void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         const ScUpdateRefHint& rRef = (const ScUpdateRefHint&)rHint;
 
@@ -1567,7 +1567,7 @@ void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
                 rDoc.AddUnoRefChange( nObjectId, *pUndoRanges );
         }
     }
-    else if ( rHint.ISA( SfxSimpleHint ) )
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) )
     {
         sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
         if ( nId == SFX_HINT_DYING )
@@ -1626,7 +1626,7 @@ void ScCellRangesBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
                 bGotDataChangedHint = true;
         }
     }
-    else if ( rHint.ISA( ScUnoRefUndoHint ) )
+    else if ( dynamic_cast<const ScUnoRefUndoHint*>(&rHint) )
     {
         const ScUnoRefUndoHint& rUndoHint = static_cast<const ScUnoRefUndoHint&>(rHint);
         if ( rUndoHint.GetObjectId() == nObjectId )
@@ -2747,7 +2747,7 @@ void SAL_CALL ScCellRangesBase::firePropertiesChangeEvent( const uno::Sequence<
 
 IMPL_LINK( ScCellRangesBase, ValueListenerHdl, SfxHint*, pHint )
 {
-    if ( pDocShell && pHint && pHint->ISA( SfxSimpleHint ) &&
+    if ( pDocShell && pHint && dynamic_cast<const SfxSimpleHint*>(pHint) &&
             (((const SfxSimpleHint*)pHint)->GetId() & SC_HINT_DATACHANGED))
     {
         //  This may be called several times for a single change, if several formulas
@@ -9002,13 +9002,13 @@ ScCellsObj::~ScCellsObj()
 
 void ScCellsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         const ScUpdateRefHint& rRef = (const ScUpdateRefHint&)rHint;
         aRanges.UpdateReference( rRef.GetMode(), &pDocShell->GetDocument(), rRef.GetRange(),
                                         rRef.GetDx(), rRef.GetDy(), rRef.GetDz() );
     }
-    else if ( rHint.ISA( SfxSimpleHint ) &&
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) &&
             ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
@@ -9120,13 +9120,13 @@ void ScCellsEnumeration::Advance_Impl()
 
 void ScCellsEnumeration::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    const ScUpdateRefHint* pRefHint = dynamic_cast<const ScUpdateRefHint*>(&rHint);
+    if ( pRefHint )
     {
         if (pDocShell)
         {
-            const ScUpdateRefHint& rRef = (const ScUpdateRefHint&)rHint;
-            aRanges.UpdateReference( rRef.GetMode(), &pDocShell->GetDocument(), rRef.GetRange(),
-                                            rRef.GetDx(), rRef.GetDy(), rRef.GetDz() );
+            aRanges.UpdateReference( pRefHint->GetMode(), &pDocShell->GetDocument(), pRefHint->GetRange(),
+                                     pRefHint->GetDx(), pRefHint->GetDy(), pRefHint->GetDz() );
 
             delete pMark;       // aus verschobenen Bereichen neu erzeugen
             pMark = NULL;
@@ -9135,8 +9135,8 @@ void ScCellsEnumeration::Notify( SfxBroadcaster&, const SfxHint& rHint )
             {
                 ScRangeList aNew;
                 aNew.Append(ScRange(aPos));
-                aNew.UpdateReference( rRef.GetMode(), &pDocShell->GetDocument(), rRef.GetRange(),
-                                        rRef.GetDx(), rRef.GetDy(), rRef.GetDz() );
+                aNew.UpdateReference( pRefHint->GetMode(), &pDocShell->GetDocument(), pRefHint->GetRange(),
+                                      pRefHint->GetDx(), pRefHint->GetDy(), pRefHint->GetDz() );
                 if (aNew.size()==1)
                 {
                     aPos = aNew[ 0 ]->aStart;
@@ -9145,8 +9145,8 @@ void ScCellsEnumeration::Notify( SfxBroadcaster&, const SfxHint& rHint )
             }
         }
     }
-    else if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) &&
+              static_cast<const SfxSimpleHint&>(rHint).GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -9194,12 +9194,12 @@ ScCellFormatsObj::~ScCellFormatsObj()
 
 void ScCellFormatsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! aTotalRange...
     }
-    else if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) &&
+              static_cast<const SfxSimpleHint&>(rHint).GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -9361,13 +9361,13 @@ ScCellRangeObj* ScCellFormatsEnumeration::NextObject_Impl()
 
 void ScCellFormatsEnumeration::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! und nun ???
     }
-    else if ( rHint.ISA( SfxSimpleHint ) )
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = static_cast<const SfxSimpleHint&>(rHint).GetId();
         if ( nId == SFX_HINT_DYING )
         {
             pDocShell = NULL;                       // ungueltig geworden
@@ -9422,13 +9422,13 @@ ScUniqueCellFormatsObj::~ScUniqueCellFormatsObj()
 
 void ScUniqueCellFormatsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! aTotalRange...
     }
-    else if ( rHint.ISA( SfxSimpleHint ) )
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = static_cast<const SfxSimpleHint&>(rHint).GetId();
         if ( nId == SFX_HINT_DYING )
             pDocShell = NULL;                       // ungueltig geworden
     }
@@ -9678,11 +9678,11 @@ ScUniqueCellFormatsEnumeration::~ScUniqueCellFormatsEnumeration()
 
 void ScUniqueCellFormatsEnumeration::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! und nun ???
     }
-    else if ( rHint.ISA( SfxSimpleHint ) )
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) )
     {
         sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
         if ( nId == SFX_HINT_DYING )
diff --git a/sc/source/ui/unoobj/chart2uno.cxx b/sc/source/ui/unoobj/chart2uno.cxx
index 55d4c54..7ba85d1 100644
--- a/sc/source/ui/unoobj/chart2uno.cxx
+++ b/sc/source/ui/unoobj/chart2uno.cxx
@@ -1017,8 +1017,8 @@ ScChart2DataProvider::~ScChart2DataProvider()
 
 void ScChart2DataProvider::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
 {
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         m_pDocument = NULL;
     }
@@ -2417,8 +2417,8 @@ ScChart2DataSource::~ScChart2DataSource()
 
 void ScChart2DataSource::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
 {
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         m_pDocument = NULL;
     }
@@ -2839,9 +2839,10 @@ void ScChart2DataSequence::CopyData(const ScChart2DataSequence& r)
 
 void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint)
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = static_cast<const SfxSimpleHint&>(rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId ==SFX_HINT_DYING )
         {
             m_pDocument = NULL;
@@ -2874,7 +2875,7 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
                 m_bGotDataChangedHint = true;
         }
     }
-    else if ( rHint.ISA( ScUpdateRefHint ) )
+    else if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         // Create a range list from the token list, have the range list
         // updated, and bring the change back to the token list.
@@ -2919,7 +2920,7 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
                 m_pDocument->AddUnoRefChange(m_nObjectId, *pUndoRanges);
         }
     }
-    else if ( rHint.ISA( ScUnoRefUndoHint ) )
+    else if ( dynamic_cast<const ScUnoRefUndoHint*>(&rHint) )
     {
         const ScUnoRefUndoHint& rUndoHint = static_cast<const ScUnoRefUndoHint&>(rHint);
 
@@ -2954,7 +2955,7 @@ void ScChart2DataSequence::Notify( SfxBroadcaster& /*rBC*/, const SfxHint& rHint
 
 IMPL_LINK( ScChart2DataSequence, ValueListenerHdl, SfxHint*, pHint )
 {
-    if ( m_pDocument && pHint && pHint->ISA( SfxSimpleHint ) &&
+    if ( m_pDocument && pHint && dynamic_cast<const SfxSimpleHint*>(pHint) &&
             ((const SfxSimpleHint*)pHint)->GetId() & SC_HINT_DATACHANGED)
     {
         //  This may be called several times for a single change, if several formulas
diff --git a/sc/source/ui/unoobj/chartuno.cxx b/sc/source/ui/unoobj/chartuno.cxx
index 155f146..9750e70 100644
--- a/sc/source/ui/unoobj/chartuno.cxx
+++ b/sc/source/ui/unoobj/chartuno.cxx
@@ -104,8 +104,8 @@ void ScChartsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //! Referenz-Update
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -463,8 +463,8 @@ void ScChartObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //! Referenz-Update
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx
index 9b838fe..5891036 100644
--- a/sc/source/ui/unoobj/confuno.cxx
+++ b/sc/source/ui/unoobj/confuno.cxx
@@ -97,8 +97,8 @@ void ScDocumentConfiguration::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //  Referenz-Update interessiert hier nicht
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
diff --git a/sc/source/ui/unoobj/dapiuno.cxx b/sc/source/ui/unoobj/dapiuno.cxx
index cd4e0a2..59c5c5a 100644
--- a/sc/source/ui/unoobj/dapiuno.cxx
+++ b/sc/source/ui/unoobj/dapiuno.cxx
@@ -296,8 +296,8 @@ void ScDataPilotTablesObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //! Referenz-Update
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -639,8 +639,8 @@ void ScDataPilotDescriptorBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //! Referenz-Update?
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -1338,12 +1338,12 @@ void SAL_CALL ScDataPilotTableObj::removeModifyListener( const uno::Reference<ut
 
 void ScDataPilotTableObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
-    if ( rHint.ISA(ScDataPilotModifiedHint) &&
+    if ( dynamic_cast<const ScDataPilotModifiedHint*>(&rHint) &&
          static_cast<const ScDataPilotModifiedHint&>(rHint).GetName() == aName )
     {
         Refreshed_Impl();
     }
-    else if ( rHint.ISA( ScUpdateRefHint ) )
+    else if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         ScRange aRange( 0, 0, nTab );
         ScRangeList aRanges;
diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx
index 0dc0bcf..bcf8c77 100644
--- a/sc/source/ui/unoobj/datauno.cxx
+++ b/sc/source/ui/unoobj/datauno.cxx
@@ -1004,9 +1004,10 @@ ScFilterDescriptorBase::~ScFilterDescriptorBase()
 
 void ScFilterDescriptorBase::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             pDocSh = NULL;          // invalid
@@ -1659,9 +1660,10 @@ ScDatabaseRangeObj::~ScDatabaseRangeObj()
 void ScDatabaseRangeObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
 
-    if ( rHint.ISA( SfxSimpleHint ) && ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
         pDocShell = NULL;       // ungueltig geworden
-    else if ( rHint.ISA (ScDBRangeRefreshedHint) )
+    else if ( dynamic_cast<const ScDBRangeRefreshedHint*>(&rHint) )
     {
         ScDBData* pDBData = GetDBData_Impl();
         const ScDBRangeRefreshedHint& rRef = (const ScDBRangeRefreshedHint&)rHint;
@@ -2216,8 +2218,8 @@ void ScDatabaseRangesObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //  Referenz-Update interessiert hier nicht
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -2411,8 +2413,8 @@ void ScUnnamedDatabaseRangesObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //  Referenz-Update interessiert hier nicht
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
diff --git a/sc/source/ui/unoobj/defltuno.cxx b/sc/source/ui/unoobj/defltuno.cxx
index a091677..8c098af 100644
--- a/sc/source/ui/unoobj/defltuno.cxx
+++ b/sc/source/ui/unoobj/defltuno.cxx
@@ -88,8 +88,8 @@ ScDocDefaultsObj::~ScDocDefaultsObj()
 
 void ScDocDefaultsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // document gone
     }
diff --git a/sc/source/ui/unoobj/dispuno.cxx b/sc/source/ui/unoobj/dispuno.cxx
index c1c178a..ff084b9 100644
--- a/sc/source/ui/unoobj/dispuno.cxx
+++ b/sc/source/ui/unoobj/dispuno.cxx
@@ -83,8 +83,8 @@ ScDispatchProviderInterceptor::~ScDispatchProviderInterceptor()
 
 void ScDispatchProviderInterceptor::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
         pViewShell = NULL;
 }
 
@@ -210,8 +210,8 @@ ScDispatch::~ScDispatch()
 
 void ScDispatch::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
         pViewShell = NULL;
 }
 
diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx
index 2893974..c4c5b0a 100644
--- a/sc/source/ui/unoobj/docuno.cxx
+++ b/sc/source/ui/unoobj/docuno.cxx
@@ -598,9 +598,10 @@ void ScModelObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
 {
     //  Not interested in reference update hints here
 
-    if ( rHint.ISA( SfxSimpleHint ) )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint )
     {
-        sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
+        sal_uLong nId = pSimpleHint->GetId();
         if ( nId == SFX_HINT_DYING )
         {
             pDocShell = NULL;       // has become invalid
@@ -640,7 +641,7 @@ void ScModelObj::Notify( SfxBroadcaster& rBC, const SfxHint& rHint )
             }
         }
     }
-    else if ( rHint.ISA( ScPointerChangedHint ) )
+    else if ( dynamic_cast<const ScPointerChangedHint*>(&rHint) )
     {
         sal_uInt16 nFlags = ((const ScPointerChangedHint&)rHint).GetFlags();
         if (nFlags & SC_POINTERCHANGED_NUMFMT)
@@ -2432,8 +2433,8 @@ void ScDrawPagesObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //  Referenz-Update interessiert hier nicht
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -2542,8 +2543,8 @@ void ScTableSheetsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //  Referenz-Update interessiert hier nicht
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -2948,11 +2949,11 @@ ScTableColumnsObj::~ScTableColumnsObj()
 
 void ScTableColumnsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! Referenz-Update fuer Tab und Start/Ende
     }
-    else if ( rHint.ISA( SfxSimpleHint ) &&
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) &&
             ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
@@ -3214,11 +3215,11 @@ ScTableRowsObj::~ScTableRowsObj()
 
 void ScTableRowsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! Referenz-Update fuer Tab und Start/Ende
     }
-    else if ( rHint.ISA( SfxSimpleHint ) &&
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) &&
             ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
@@ -3491,8 +3492,8 @@ void ScSpreadsheetSettingsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //  Referenz-Update interessiert hier nicht
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -3543,8 +3544,8 @@ void ScAnnotationsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
     //! nTab bei Referenz-Update anpassen!!!
 
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
     }
@@ -3671,11 +3672,11 @@ ScScenariosObj::~ScScenariosObj()
 
 void ScScenariosObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! Referenz-Update fuer Tab und Start/Ende
     }
-    else if ( rHint.ISA( SfxSimpleHint ) &&
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) &&
             ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // ungueltig geworden
diff --git a/sc/source/ui/unoobj/drdefuno.cxx b/sc/source/ui/unoobj/drdefuno.cxx
index 1604dc4..d27a293 100644
--- a/sc/source/ui/unoobj/drdefuno.cxx
+++ b/sc/source/ui/unoobj/drdefuno.cxx
@@ -41,8 +41,8 @@ ScDrawDefaultsObj::~ScDrawDefaultsObj() throw ()
 
 void ScDrawDefaultsObj::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( SfxSimpleHint ) &&
-            ((const SfxSimpleHint&)rHint).GetId() == SFX_HINT_DYING )
+    const SfxSimpleHint* pSimpleHint = dynamic_cast<const SfxSimpleHint*>(&rHint);
+    if ( pSimpleHint && pSimpleHint->GetId() == SFX_HINT_DYING )
     {
         pDocShell = NULL;       // document gone
     }
diff --git a/sc/source/ui/unoobj/editsrc.cxx b/sc/source/ui/unoobj/editsrc.cxx
index 2f6e9a9..d642c8a 100644
--- a/sc/source/ui/unoobj/editsrc.cxx
+++ b/sc/source/ui/unoobj/editsrc.cxx
@@ -192,11 +192,11 @@ void ScAnnotationEditSource::UpdateData()
 
 void ScAnnotationEditSource::Notify( SfxBroadcaster&, const SfxHint& rHint )
 {
-    if ( rHint.ISA( ScUpdateRefHint ) )
+    if ( dynamic_cast<const ScUpdateRefHint*>(&rHint) )
     {
         //! Ref-Update
     }
-    else if ( rHint.ISA( SfxSimpleHint ) )
+    else if ( dynamic_cast<const SfxSimpleHint*>(&rHint) )
     {
         sal_uLong nId = ((const SfxSimpleHint&)rHint).GetId();
         if ( nId == SFX_HINT_DYING )
diff --git a/sc/source/ui/unoobj/eventuno.cxx b/sc/source/ui/unoobj/eventuno.cxx
index ab62b53..79e2971 100644
--- a/sc/source/ui/unoobj/eventuno.cxx
+++ b/sc/source/ui/unoobj/eventuno.cxx
@@ -44,8 +44,8 @@ ScSheetEventsObj::~ScSheetEventsObj()

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list