[Libreoffice-commits] core.git: 2 commits - avmedia/source basctl/source chart2/inc chart2/source cui/source dbaccess/source desktop/inc desktop/source editeng/source extensions/source forms/source fpicker/source framework/inc framework/source include/sfx2 include/svtools include/svx include/vcl reportdesign/source sc/inc sc/source sd/inc sd/source sfx2/source starmath/inc starmath/source svtools/source svx/source sw/inc sw/source vbahelper/source vcl/generic vcl/inc vcl/source vcl/unx

Stephan Bergmann sbergman at redhat.com
Tue May 5 01:22:37 PDT 2015


 avmedia/source/opengl/oglplayer.cxx                                |    4 -
 avmedia/source/opengl/oglplayer.hxx                                |    2 
 basctl/source/dlged/dlgedfunc.cxx                                  |    3 -
 basctl/source/inc/dlgedfunc.hxx                                    |    2 
 chart2/inc/ChartView.hxx                                           |    2 
 chart2/source/controller/dialogs/TimerTriggeredControllerLock.cxx  |    3 -
 chart2/source/controller/inc/TimerTriggeredControllerLock.hxx      |    2 
 chart2/source/controller/main/ChartController.hxx                  |    2 
 chart2/source/controller/main/ChartController_Window.cxx           |    4 -
 chart2/source/view/main/ChartView.cxx                              |    4 -
 cui/source/customize/cfgutil.cxx                                   |    3 -
 cui/source/customize/selector.cxx                                  |    3 -
 cui/source/dialogs/cuifmsearch.cxx                                 |    3 -
 cui/source/dialogs/cuigaldlg.cxx                                   |    3 -
 cui/source/dialogs/cuigrfflt.cxx                                   |    4 -
 cui/source/dialogs/hldoctp.cxx                                     |    4 -
 cui/source/dialogs/hlinettp.cxx                                    |    3 -
 cui/source/inc/cfgutil.hxx                                         |    2 
 cui/source/inc/cuifmsearch.hxx                                     |    2 
 cui/source/inc/cuigaldlg.hxx                                       |    2 
 cui/source/inc/cuigrfflt.hxx                                       |    2 
 cui/source/inc/grfpage.hxx                                         |    2 
 cui/source/inc/hldoctp.hxx                                         |    2 
 cui/source/inc/hlinettp.hxx                                        |    2 
 cui/source/inc/numfmt.hxx                                          |    2 
 cui/source/inc/numpages.hxx                                        |    2 
 cui/source/inc/selector.hxx                                        |    2 
 cui/source/tabpages/grfpage.cxx                                    |    3 -
 cui/source/tabpages/numfmt.cxx                                     |    3 -
 cui/source/tabpages/numpages.cxx                                   |    3 -
 dbaccess/source/ui/browser/brwctrlr.cxx                            |    7 +-
 dbaccess/source/ui/control/dbtreelistbox.cxx                       |    3 -
 dbaccess/source/ui/control/sqledit.cxx                             |    7 --
 dbaccess/source/ui/dlg/paramdialog.cxx                             |    4 -
 dbaccess/source/ui/inc/TableWindowListBox.hxx                      |    4 -
 dbaccess/source/ui/inc/brwctrlr.hxx                                |    2 
 dbaccess/source/ui/inc/dbtreelistbox.hxx                           |    2 
 dbaccess/source/ui/inc/paramdialog.hxx                             |    2 
 dbaccess/source/ui/inc/sqledit.hxx                                 |    4 -
 dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx              |    3 -
 dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx              |    2 
 dbaccess/source/ui/querydesign/TableWindowListBox.cxx              |   16 ++---
 dbaccess/source/ui/tabledesign/TEditControl.cxx                    |    3 -
 dbaccess/source/ui/tabledesign/TEditControl.hxx                    |    2 
 desktop/inc/app.hxx                                                |    2 
 desktop/source/app/app.cxx                                         |    3 -
 editeng/source/editeng/impedit.hxx                                 |    4 -
 editeng/source/editeng/impedit3.cxx                                |    7 --
 extensions/source/update/ui/updatecheckui.cxx                      |    6 --
 forms/source/component/DatabaseForm.cxx                            |    3 -
 forms/source/component/DatabaseForm.hxx                            |    2 
 fpicker/source/office/iodlg.cxx                                    |   21 ++-----
 fpicker/source/office/iodlg.hxx                                    |    1 
 framework/inc/services/layoutmanager.hxx                           |    2 
 framework/inc/uielement/menubarmanager.hxx                         |    2 
 framework/inc/uielement/toolbarmanager.hxx                         |    2 
 framework/source/layoutmanager/layoutmanager.cxx                   |    8 +-
 framework/source/services/autorecovery.cxx                         |   12 +---
 framework/source/uielement/menubarmanager.cxx                      |    4 -
 framework/source/uielement/toolbarmanager.cxx                      |    6 --
 include/sfx2/bindings.hxx                                          |    3 -
 include/svtools/calendar.hxx                                       |    2 
 include/svtools/grfmgr.hxx                                         |    2 
 include/svtools/prnsetup.hxx                                       |    2 
 include/svtools/valueset.hxx                                       |    2 
 include/svx/formatpaintbrushctrl.hxx                               |    2 
 include/svx/itemwin.hxx                                            |    2 
 include/svx/srchdlg.hxx                                            |    2 
 include/svx/svdetc.hxx                                             |    2 
 include/vcl/animate.hxx                                            |    2 
 include/vcl/cursor.hxx                                             |    3 -
 include/vcl/edit.hxx                                               |    2 
 include/vcl/menubtn.hxx                                            |    2 
 include/vcl/scrbar.hxx                                             |    2 
 include/vcl/seleng.hxx                                             |    2 
 include/vcl/spin.hxx                                               |    2 
 include/vcl/spinfld.hxx                                            |    2 
 include/vcl/throbber.hxx                                           |    2 
 include/vcl/timer.hxx                                              |    6 +-
 include/vcl/toolbox.hxx                                            |    2 
 include/vcl/vclmedit.hxx                                           |    2 
 include/vcl/window.hxx                                             |    2 
 reportdesign/source/ui/dlg/Navigator.cxx                           |    8 +-
 reportdesign/source/ui/inc/dlgedfunc.hxx                           |    2 
 reportdesign/source/ui/report/dlgedfunc.cxx                        |    3 -
 sc/inc/arealink.hxx                                                |    2 
 sc/inc/chartlock.hxx                                               |    2 
 sc/inc/dbdata.hxx                                                  |    6 +-
 sc/inc/externalrefmgr.hxx                                          |    2 
 sc/inc/refreshtimer.hxx                                            |    2 
 sc/inc/scmod.hxx                                                   |    2 
 sc/inc/tablink.hxx                                                 |    2 
 sc/source/core/tool/chartlock.cxx                                  |    3 -
 sc/source/core/tool/refreshtimer.cxx                               |    2 
 sc/source/ui/app/inputhdl.cxx                                      |    3 -
 sc/source/ui/app/scmod.cxx                                         |    5 -
 sc/source/ui/cctrl/checklistmenu.cxx                               |    3 -
 sc/source/ui/dbgui/filtdlg.cxx                                     |    4 -
 sc/source/ui/docshell/arealink.cxx                                 |    5 -
 sc/source/ui/docshell/autostyl.cxx                                 |    4 -
 sc/source/ui/docshell/datastream.cxx                               |    4 -
 sc/source/ui/docshell/docsh5.cxx                                   |    7 --
 sc/source/ui/docshell/externalrefmgr.cxx                           |    4 -
 sc/source/ui/docshell/tablink.cxx                                  |    4 -
 sc/source/ui/drawfunc/fupoor.cxx                                   |    7 --
 sc/source/ui/inc/autostyl.hxx                                      |    2 
 sc/source/ui/inc/checklistmenu.hxx                                 |    2 
 sc/source/ui/inc/datastream.hxx                                    |    2 
 sc/source/ui/inc/docsh.hxx                                         |    2 
 sc/source/ui/inc/filtdlg.hxx                                       |    2 
 sc/source/ui/inc/fupoor.hxx                                        |    4 -
 sc/source/ui/inc/inputhdl.hxx                                      |    2 
 sc/source/ui/inc/instbdlg.hxx                                      |    2 
 sc/source/ui/inc/notemark.hxx                                      |    2 
 sc/source/ui/inc/tabview.hxx                                       |    2 
 sc/source/ui/miscdlgs/instbdlg.cxx                                 |    3 -
 sc/source/ui/view/notemark.cxx                                     |    3 -
 sc/source/ui/view/tabview.cxx                                      |    4 -
 sd/inc/CustomAnimationEffect.hxx                                   |    2 
 sd/inc/drawdoc.hxx                                                 |    2 
 sd/source/core/CustomAnimationEffect.cxx                           |    4 -
 sd/source/core/drawdoc2.cxx                                        |    3 -
 sd/source/ui/animations/CustomAnimationPane.cxx                    |    4 -
 sd/source/ui/animations/CustomAnimationPane.hxx                    |    2 
 sd/source/ui/animations/SlideTransitionPane.cxx                    |    4 -
 sd/source/ui/animations/SlideTransitionPane.hxx                    |    2 
 sd/source/ui/framework/configuration/ConfigurationUpdater.cxx      |    3 -
 sd/source/ui/framework/configuration/ConfigurationUpdater.hxx      |    2 
 sd/source/ui/func/fupoor.cxx                                       |   11 +--
 sd/source/ui/inc/ViewShellImplementation.hxx                       |    2 
 sd/source/ui/inc/fupoor.hxx                                        |    6 +-
 sd/source/ui/inc/tools/AsynchronousCall.hxx                        |    2 
 sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx                 |    2 
 sd/source/ui/sidebar/MasterPageContainerQueue.cxx                  |    6 --
 sd/source/ui/sidebar/MasterPageContainerQueue.hxx                  |    2 
 sd/source/ui/slideshow/showwin.cxx                                 |    7 --
 sd/source/ui/slideshow/showwindow.hxx                              |    4 -
 sd/source/ui/slideshow/slideshowimpl.cxx                           |   10 +--
 sd/source/ui/slideshow/slideshowimpl.hxx                           |    6 +-
 sd/source/ui/slidesorter/cache/SlsCacheCompactor.cxx               |    3 -
 sd/source/ui/slidesorter/cache/SlsCacheCompactor.hxx               |    2 
 sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx           |    3 -
 sd/source/ui/slidesorter/cache/SlsCacheConfiguration.hxx           |    2 
 sd/source/ui/slidesorter/cache/SlsQueueProcessor.cxx               |    3 -
 sd/source/ui/slidesorter/cache/SlsQueueProcessor.hxx               |    2 
 sd/source/ui/slidesorter/controller/SlsCurrentSlideManager.cxx     |    4 -
 sd/source/ui/slidesorter/controller/SlsScrollBarManager.cxx        |    4 -
 sd/source/ui/slidesorter/inc/controller/SlsCurrentSlideManager.hxx |    2 
 sd/source/ui/slidesorter/inc/controller/SlsScrollBarManager.hxx    |    2 
 sd/source/ui/slidesorter/inc/view/SlsToolTip.hxx                   |    2 
 sd/source/ui/slidesorter/view/SlsToolTip.cxx                       |    4 -
 sd/source/ui/tools/AsynchronousCall.cxx                            |    5 -
 sd/source/ui/tools/TimerBasedTaskExecution.cxx                     |    6 --
 sd/source/ui/view/ViewShellImplementation.cxx                      |    3 -
 sfx2/source/appl/newhelp.cxx                                       |    5 -
 sfx2/source/appl/newhelp.hxx                                       |    2 
 sfx2/source/control/bindings.cxx                                   |   29 +++++-----
 sfx2/source/dialog/splitwin.cxx                                    |    6 --
 sfx2/source/inc/splitwin.hxx                                       |    2 
 sfx2/source/view/ipclient.cxx                                      |    5 -
 starmath/inc/view.hxx                                              |    4 -
 starmath/source/view.cxx                                           |    7 --
 svtools/source/brwbox/datwin.cxx                                   |    3 -
 svtools/source/brwbox/datwin.hxx                                   |    2 
 svtools/source/contnr/fileview.cxx                                 |    6 --
 svtools/source/control/calendar.cxx                                |    3 -
 svtools/source/control/valueset.cxx                                |    3 -
 svtools/source/dialogs/prnsetup.cxx                                |    4 -
 svtools/source/graphic/grfcache.cxx                                |    4 -
 svtools/source/graphic/grfcache.hxx                                |    2 
 svtools/source/graphic/grfmgr.cxx                                  |    4 -
 svx/source/dialog/srchdlg.cxx                                      |    3 -
 svx/source/form/datanavi.cxx                                       |    3 -
 svx/source/form/filtnav.cxx                                        |    5 -
 svx/source/form/fmshimp.cxx                                        |    6 --
 svx/source/form/fmtextcontrolshell.cxx                             |    3 -
 svx/source/form/formcontroller.cxx                                 |    3 -
 svx/source/form/navigatortree.cxx                                  |    9 +--
 svx/source/inc/datanavi.hxx                                        |    2 
 svx/source/inc/filtnav.hxx                                         |    2 
 svx/source/inc/fmexpl.hxx                                          |    4 -
 svx/source/inc/fmshimp.hxx                                         |    2 
 svx/source/inc/fmtextcontrolshell.hxx                              |    2 
 svx/source/inc/formcontroller.hxx                                  |    2 
 svx/source/svdraw/svdetc.cxx                                       |    5 -
 svx/source/tbxctrls/formatpaintbrushctrl.cxx                       |    3 -
 svx/source/tbxctrls/itemwin.cxx                                    |    3 -
 sw/inc/htmltbl.hxx                                                 |    2 
 sw/inc/unochart.hxx                                                |    2 
 sw/source/core/doc/DocumentStatisticsManager.cxx                   |    3 -
 sw/source/core/doc/htmltbl.cxx                                     |    4 -
 sw/source/core/inc/DocumentStatisticsManager.hxx                   |    2 
 sw/source/core/inc/blink.hxx                                       |    2 
 sw/source/core/text/blink.cxx                                      |    3 -
 sw/source/core/txtnode/SwGrammarContact.cxx                        |    5 -
 sw/source/core/unocore/unochart.cxx                                |    3 -
 sw/source/uibase/docvw/HeaderFooterWin.cxx                         |    4 -
 sw/source/uibase/docvw/PageBreakWin.cxx                            |    6 --
 sw/source/uibase/docvw/edtdd.cxx                                   |    3 -
 sw/source/uibase/docvw/edtwin.cxx                                  |    9 +--
 sw/source/uibase/docvw/srcedtw.cxx                                 |    9 +--
 sw/source/uibase/fldui/fldwrap.cxx                                 |    4 -
 sw/source/uibase/inc/HeaderFooterWin.hxx                           |    2 
 sw/source/uibase/inc/PageBreakWin.hxx                              |    2 
 sw/source/uibase/inc/chldwrap.hxx                                  |    2 
 sw/source/uibase/inc/conttree.hxx                                  |    4 -
 sw/source/uibase/inc/edtwin.hxx                                    |    8 +-
 sw/source/uibase/inc/redlndlg.hxx                                  |    3 -
 sw/source/uibase/inc/srcedtw.hxx                                   |    2 
 sw/source/uibase/inc/swruler.hxx                                   |    2 
 sw/source/uibase/inc/view.hxx                                      |    2 
 sw/source/uibase/misc/redlndlg.cxx                                 |   14 ++--
 sw/source/uibase/misc/swruler.cxx                                  |    5 -
 sw/source/uibase/uiview/view.cxx                                   |    6 --
 sw/source/uibase/uno/unomailmerge.cxx                              |    5 -
 sw/source/uibase/utlui/content.cxx                                 |    5 -
 sw/source/uibase/utlui/glbltree.cxx                                |    3 -
 vbahelper/source/vbahelper/vbaapplicationbase.cxx                  |    6 --
 vcl/generic/fontmanager/fontconfig.cxx                             |    9 +--
 vcl/inc/fontmanager.hxx                                            |    2 
 vcl/inc/helpwin.hxx                                                |    2 
 vcl/inc/idlemgr.hxx                                                |    2 
 vcl/inc/unx/salframe.h                                             |    2 
 vcl/source/app/help.cxx                                            |    4 -
 vcl/source/app/idlemgr.cxx                                         |    4 -
 vcl/source/control/edit.cxx                                        |    3 -
 vcl/source/control/menubtn.cxx                                     |    4 -
 vcl/source/control/quickselectionengine.cxx                        |    5 -
 vcl/source/control/scrbar.cxx                                      |    5 -
 vcl/source/control/spinbtn.cxx                                     |    4 -
 vcl/source/control/spinfld.cxx                                     |    3 -
 vcl/source/control/throbber.cxx                                    |    6 --
 vcl/source/edit/vclmedit.cxx                                       |    3 -
 vcl/source/gdi/animate.cxx                                         |    6 --
 vcl/source/window/cursor.cxx                                       |    3 -
 vcl/source/window/menufloatingwindow.cxx                           |   12 +---
 vcl/source/window/menufloatingwindow.hxx                           |    6 +-
 vcl/source/window/scrwnd.cxx                                       |    6 --
 vcl/source/window/scrwnd.hxx                                       |    2 
 vcl/source/window/seleng.cxx                                       |    3 -
 vcl/source/window/toolbox.cxx                                      |    4 -
 vcl/source/window/window2.cxx                                      |    4 -
 vcl/unx/generic/window/salframe.cxx                                |    3 -
 243 files changed, 360 insertions(+), 554 deletions(-)

New commits:
commit c0e209bf5f418f1564d16e234251783a0857a9d4
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Tue May 5 10:16:43 2015 +0200

    Adapt SwSrcEditWindow's SyntaxTimerHdl to being used in an Idle now
    
    ...not a Timer, since d843f3de731667a298a83fc66637c7f983f3b24d "changed timers
    to idle"
    
    Change-Id: If8c6a52d6fb7b1e392e8f31bc8f0db22b2f049e1

diff --git a/sw/source/uibase/docvw/srcedtw.cxx b/sw/source/uibase/docvw/srcedtw.cxx
index cd66ace..02e1e66 100644
--- a/sw/source/uibase/docvw/srcedtw.cxx
+++ b/sw/source/uibase/docvw/srcedtw.cxx
@@ -56,7 +56,6 @@ struct SwTextPortion
 
 #define MAX_SYNTAX_HIGHLIGHT 20
 #define MAX_HIGHLIGHTTIME 200
-#define SYNTAX_HIGHLIGHT_TIMEOUT 200
 
 typedef std::deque<SwTextPortion> SwTextPortions;
 
@@ -579,7 +578,7 @@ IMPL_LINK(SwSrcEditWindow, ScrollHdl, ScrollBar*, pScroll)
     return 0;
 }
 
-IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer )
+IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Idle *, pIdle )
 {
     tools::Time aSyntaxCheckStart( tools::Time::SYSTEM );
     SAL_WARN_IF(pTextView == 0, "sw", "No View yet, but syntax highlighting?!");
@@ -605,7 +604,6 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer )
                     break;
                 if((tools::Time( tools::Time::SYSTEM ).GetTime() - aSyntaxCheckStart.GetTime()) > MAX_HIGHLIGHTTIME )
                 {
-                    pTimer->SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
                     break;
                 }
             }
@@ -620,13 +618,12 @@ IMPL_LINK( SwSrcEditWindow, SyntaxTimerHdl, Timer *, pTimer )
         nCount ++;
         if(tools::Time( tools::Time::SYSTEM ).GetTime() - aSyntaxCheckStart.GetTime() > MAX_HIGHLIGHTTIME)
         {
-            pTimer->SetTimeout( 2 * SYNTAX_HIGHLIGHT_TIMEOUT );
             break;
         }
     }
 
-    if(!aSyntaxLineTable.empty() && !pTimer->IsActive())
-        pTimer->Start();
+    if(!aSyntaxLineTable.empty() && !pIdle->IsActive())
+        pIdle->Start();
     // SyntaxTimerHdl is called when text changed
     // => good opportunity to determine text width!
     long nPrevTextWidth = nCurTextWidth;
diff --git a/sw/source/uibase/inc/srcedtw.hxx b/sw/source/uibase/inc/srcedtw.hxx
index 823e3cd..55e53f4 100644
--- a/sw/source/uibase/inc/srcedtw.hxx
+++ b/sw/source/uibase/inc/srcedtw.hxx
@@ -95,7 +95,7 @@ private:
     using OutputDevice::SetFont;
     void            SetFont();
 
-    DECL_LINK( SyntaxTimerHdl, Timer * );
+    DECL_LINK( SyntaxTimerHdl, Idle * );
     DECL_LINK( TimeoutHdl, Timer * );
 
     using Window::Notify;
commit 8cafd08278c0b925aac91ea94d8f907d98f07047
Author: Stephan Bergmann <sbergman at redhat.com>
Date:   Mon May 4 17:28:40 2015 +0200

    Use typed Timer::SetTimeoutHdl Link
    
    Change-Id: Iaaf0c93e5b28c0f7dbe4f02eda8beeae30708100

diff --git a/avmedia/source/opengl/oglplayer.cxx b/avmedia/source/opengl/oglplayer.cxx
index 8bc513b..75caec6 100644
--- a/avmedia/source/opengl/oglplayer.cxx
+++ b/avmedia/source/opengl/oglplayer.cxx
@@ -357,7 +357,7 @@ uno::Sequence< OUString > SAL_CALL OGLPlayer::getSupportedServiceNames()
     return aRet;
 }
 
-IMPL_LINK(OGLPlayer,TimerHandler,Timer*,pTimer)
+IMPL_LINK_TYPED(OGLPlayer,TimerHandler,Timer*,pTimer,void)
 {
     if (pTimer == &m_aTimer)
     {
@@ -365,8 +365,6 @@ IMPL_LINK(OGLPlayer,TimerHandler,Timer*,pTimer)
         assert(m_pOGLWindow);
         m_pOGLWindow->update();
     }
-
-    return 0;
 }
 
 } // namespace ogl
diff --git a/avmedia/source/opengl/oglplayer.hxx b/avmedia/source/opengl/oglplayer.hxx
index e7a4ecc..605233d 100644
--- a/avmedia/source/opengl/oglplayer.hxx
+++ b/avmedia/source/opengl/oglplayer.hxx
@@ -62,7 +62,7 @@ public:
     virtual com::sun::star::uno::Sequence< OUString > SAL_CALL getSupportedServiceNames() throw (com::sun::star::uno::RuntimeException, std::exception) SAL_OVERRIDE;
 
 private:
-    DECL_LINK( TimerHandler, Timer* );
+    DECL_LINK_TYPED( TimerHandler, Timer*, void );
 
     OUString m_sURL;
 
diff --git a/basctl/source/dlged/dlgedfunc.cxx b/basctl/source/dlged/dlgedfunc.cxx
index 05ca39d..3840ba9 100644
--- a/basctl/source/dlged/dlgedfunc.cxx
+++ b/basctl/source/dlged/dlgedfunc.cxx
@@ -27,14 +27,13 @@
 namespace basctl
 {
 
-IMPL_LINK( DlgEdFunc, ScrollTimeout, Timer *, pTimer )
+IMPL_LINK_TYPED( DlgEdFunc, ScrollTimeout, Timer *, pTimer, void )
 {
     (void)pTimer;
     vcl::Window& rWindow = rParent.GetWindow();
     Point aPos = rWindow.ScreenToOutputPixel( rWindow.GetPointerPosPixel() );
     aPos = rWindow.PixelToLogic( aPos );
     ForceScroll( aPos );
-    return 0;
 }
 
 void DlgEdFunc::ForceScroll( const Point& rPos )
diff --git a/basctl/source/inc/dlgedfunc.hxx b/basctl/source/inc/dlgedfunc.hxx
index d6982de..50148b3 100644
--- a/basctl/source/inc/dlgedfunc.hxx
+++ b/basctl/source/inc/dlgedfunc.hxx
@@ -35,7 +35,7 @@ protected:
     DlgEditor& rParent;
     Timer      aScrollTimer;
 
-    DECL_LINK( ScrollTimeout, Timer * );
+    DECL_LINK_TYPED( ScrollTimeout, Timer *, void );
     void    ForceScroll( const Point& rPos );
 
 public:
diff --git a/chart2/inc/ChartView.hxx b/chart2/inc/ChartView.hxx
index 9f901e7..0da480d 100644
--- a/chart2/inc/ChartView.hxx
+++ b/chart2/inc/ChartView.hxx
@@ -233,7 +233,7 @@ private: //methods
 
     css::awt::Rectangle impl_createDiagramAndContent( const CreateShapeParam2D& rParam, const css::awt::Size& rPageSize );
 
-    DECL_LINK( UpdateTimeBased, void* );
+    DECL_LINK_TYPED( UpdateTimeBased, Timer*, void );
 
 private: //member
     ::osl::Mutex m_aMutex;
diff --git a/chart2/source/controller/dialogs/TimerTriggeredControllerLock.cxx b/chart2/source/controller/dialogs/TimerTriggeredControllerLock.cxx
index 34aec55..565c0e7 100644
--- a/chart2/source/controller/dialogs/TimerTriggeredControllerLock.cxx
+++ b/chart2/source/controller/dialogs/TimerTriggeredControllerLock.cxx
@@ -45,10 +45,9 @@ void TimerTriggeredControllerLock::startTimer()
         m_apControllerLockGuard.reset( new  ControllerLockGuardUNO(m_xModel) );
     m_aTimer.Start();
 }
-IMPL_LINK_NOARG(TimerTriggeredControllerLock, TimerTimeout)
+IMPL_LINK_NOARG_TYPED(TimerTriggeredControllerLock, TimerTimeout, Timer *, void)
 {
     m_apControllerLockGuard.reset();
-    return 0;
 }
 
 } //namespace chart
diff --git a/chart2/source/controller/inc/TimerTriggeredControllerLock.hxx b/chart2/source/controller/inc/TimerTriggeredControllerLock.hxx
index 9b724e2..c325037 100644
--- a/chart2/source/controller/inc/TimerTriggeredControllerLock.hxx
+++ b/chart2/source/controller/inc/TimerTriggeredControllerLock.hxx
@@ -43,7 +43,7 @@ private:
     boost::scoped_ptr< ControllerLockGuardUNO > m_apControllerLockGuard;
     AutoTimer       m_aTimer;
 
-    DECL_LINK( TimerTimeout, void* );
+    DECL_LINK_TYPED( TimerTimeout, Timer*, void );
 };
 
 } //namespace chart
diff --git a/chart2/source/controller/main/ChartController.hxx b/chart2/source/controller/main/ChartController.hxx
index f5c73bf..9462df6 100644
--- a/chart2/source/controller/main/ChartController.hxx
+++ b/chart2/source/controller/main/ChartController.hxx
@@ -625,7 +625,7 @@ private:
     void impl_ShapeControllerDispatch( const ::com::sun::star::util::URL& rURL,
         const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rArgs );
 
-    DECL_LINK( DoubleClickWaitingHdl, void* );
+    DECL_LINK_TYPED( DoubleClickWaitingHdl, Timer*, void );
     void execute_DoubleClick( const Point* pMousePixel = NULL );
     void startDoubleClickWaiting();
     void stopDoubleClickWaiting();
diff --git a/chart2/source/controller/main/ChartController_Window.cxx b/chart2/source/controller/main/ChartController_Window.cxx
index 6855605..9d0f94a 100644
--- a/chart2/source/controller/main/ChartController_Window.cxx
+++ b/chart2/source/controller/main/ChartController_Window.cxx
@@ -533,7 +533,7 @@ void ChartController::stopDoubleClickWaiting()
     m_bWaitingForDoubleClick = false;
 }
 
-IMPL_LINK_NOARG(ChartController, DoubleClickWaitingHdl)
+IMPL_LINK_NOARG_TYPED(ChartController, DoubleClickWaitingHdl, Timer *, void)
 {
     m_bWaitingForDoubleClick = false;
 
@@ -553,8 +553,6 @@ IMPL_LINK_NOARG(ChartController, DoubleClickWaitingHdl)
             impl_SetMousePointer( aMouseEvent );
         }
     }
-
-    return 0;
 }
 
 void ChartController::execute_MouseButtonDown( const MouseEvent& rMEvt )
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx
index 1ef1030..c85da48 100644
--- a/chart2/source/view/main/ChartView.cxx
+++ b/chart2/source/view/main/ChartView.cxx
@@ -3151,12 +3151,10 @@ void ChartView::setViewDirty()
     m_bViewDirty = true;
 }
 
-IMPL_LINK_NOARG(ChartView, UpdateTimeBased)
+IMPL_LINK_NOARG_TYPED(ChartView, UpdateTimeBased, Timer *, void)
 {
     setViewDirty();
     update();
-
-    return 0;
 }
 
 void ChartView::createShapes2D( const awt::Size& rPageSize )
diff --git a/cui/source/customize/cfgutil.cxx b/cui/source/customize/cfgutil.cxx
index 875b71b..e6ca100 100644
--- a/cui/source/customize/cfgutil.cxx
+++ b/cui/source/customize/cfgutil.cxx
@@ -289,7 +289,7 @@ void SfxConfigFunctionListBox::MouseMove( const MouseEvent& )
 {
 }
 
-IMPL_LINK( SfxConfigFunctionListBox, TimerHdl, Timer*, pTimer)
+IMPL_LINK_TYPED( SfxConfigFunctionListBox, TimerHdl, Timer*, pTimer, void)
 /*  Description
     Timer-handler for showing a help-text. If the mouse pointer is
     still on the currently selected entry after the timer has run out,
@@ -297,7 +297,6 @@ IMPL_LINK( SfxConfigFunctionListBox, TimerHdl, Timer*, pTimer)
 */
 {
     (void)pTimer; // unused
-    return 0L;
 }
 
 void SfxConfigFunctionListBox::ClearAll()
diff --git a/cui/source/customize/selector.cxx b/cui/source/customize/selector.cxx
index 7477032..a3d6acf 100644
--- a/cui/source/customize/selector.cxx
+++ b/cui/source/customize/selector.cxx
@@ -135,14 +135,13 @@ void SvxConfigFunctionListBox::MouseMove( const MouseEvent& rMEvt )
 }
 
 
-IMPL_LINK_NOARG(SvxConfigFunctionListBox, TimerHdl)
+IMPL_LINK_NOARG_TYPED(SvxConfigFunctionListBox, TimerHdl, Timer *, void)
 {
     aTimer.Stop();
     Point aMousePos = GetPointerPosPixel();
     SvTreeListEntry *pEntry = GetCurEntry();
     if ( pEntry && GetEntry( aMousePos ) == pEntry && pCurEntry == pEntry )
         Help::ShowBalloon( this, OutputToScreenPixel( aMousePos ), GetHelpText( pEntry ) );
-    return 0L;
 }
 
 void SvxConfigFunctionListBox::ClearAll()
diff --git a/cui/source/dialogs/cuifmsearch.cxx b/cui/source/dialogs/cuifmsearch.cxx
index f7a0639..77d1150 100644
--- a/cui/source/dialogs/cuifmsearch.cxx
+++ b/cui/source/dialogs/cuifmsearch.cxx
@@ -690,10 +690,9 @@ void FmSearchDialog::EnableControlPaint(bool bEnable)
         }
 }
 
-IMPL_LINK_NOARG(FmSearchDialog, OnDelayedPaint)
+IMPL_LINK_NOARG_TYPED(FmSearchDialog, OnDelayedPaint, Timer *, void)
 {
     EnableControlPaint(true);
-    return 0L;
 }
 
 void FmSearchDialog::OnFound(const ::com::sun::star::uno::Any& aCursorPos, sal_Int16 nFieldPos)
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index a4e9ea5..3a2ebf3 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -1247,11 +1247,10 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, DClickFoundHdl)
 
 
 
-IMPL_LINK_NOARG(TPGalleryThemeProperties, PreviewTimerHdl)
+IMPL_LINK_NOARG_TYPED(TPGalleryThemeProperties, PreviewTimerHdl, Timer *, void)
 {
     aPreviewTimer.Stop();
     DoPreview();
-    return 0L;
 }
 
 
diff --git a/cui/source/dialogs/cuigrfflt.cxx b/cui/source/dialogs/cuigrfflt.cxx
index 42cac22..0623a45 100644
--- a/cui/source/dialogs/cuigrfflt.cxx
+++ b/cui/source/dialogs/cuigrfflt.cxx
@@ -165,13 +165,11 @@ void GraphicFilterDialog::dispose()
 }
 
 
-IMPL_LINK_NOARG(GraphicFilterDialog, ImplPreviewTimeoutHdl)
+IMPL_LINK_NOARG_TYPED(GraphicFilterDialog, ImplPreviewTimeoutHdl, Timer *, void)
 {
     maTimer.Stop();
     mpPreview->SetPreview(GetFilteredGraphic(mpPreview->GetScaledOriginal(),
         mpPreview->GetScaleX(), mpPreview->GetScaleY()));
-
-    return 0;
 }
 
 
diff --git a/cui/source/dialogs/hldoctp.cxx b/cui/source/dialogs/hldoctp.cxx
index fd9340d..936c5f8 100644
--- a/cui/source/dialogs/hldoctp.cxx
+++ b/cui/source/dialogs/hldoctp.cxx
@@ -279,7 +279,7 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, ModifiedPathHdl_Impl)
 |*
 |************************************************************************/
 
-IMPL_LINK_NOARG(SvxHyperlinkDocTp, TimeoutHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxHyperlinkDocTp, TimeoutHdl_Impl, Timer *, void)
 {
     if ( IsMarkWndVisible() && ( GetPathType( maStrURL )==Type_ExistsFile ||
                                   maStrURL.isEmpty() ||
@@ -294,8 +294,6 @@ IMPL_LINK_NOARG(SvxHyperlinkDocTp, TimeoutHdl_Impl)
 
         LeaveWait();
     }
-
-    return 0L;
 }
 
 /*************************************************************************
diff --git a/cui/source/dialogs/hlinettp.cxx b/cui/source/dialogs/hlinettp.cxx
index 860fa29..82bb138 100644
--- a/cui/source/dialogs/hlinettp.cxx
+++ b/cui/source/dialogs/hlinettp.cxx
@@ -243,10 +243,9 @@ IMPL_LINK_NOARG(SvxHyperlinkInternetTp, ModifiedTargetHdl_Impl)
 |*
 |************************************************************************/
 
-IMPL_LINK_NOARG(SvxHyperlinkInternetTp, TimeoutHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxHyperlinkInternetTp, TimeoutHdl_Impl, Timer *, void)
 {
     RefreshMarkWindow();
-    return 0L;
 }
 
 /*************************************************************************
diff --git a/cui/source/inc/cfgutil.hxx b/cui/source/inc/cfgutil.hxx
index 478559b..c6c3ad9 100644
--- a/cui/source/inc/cfgutil.hxx
+++ b/cui/source/inc/cfgutil.hxx
@@ -107,7 +107,7 @@ class SfxConfigFunctionListBox : public SvTreeListBox
     SfxGroupInfoArr_Impl aArr;
     SfxStylesInfo_Impl*  pStylesInfo;
 
-    DECL_LINK( TimerHdl, Timer* );
+    DECL_LINK_TYPED( TimerHdl, Timer*, void );
     virtual void  MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
 
 public:
diff --git a/cui/source/inc/cuifmsearch.hxx b/cui/source/inc/cuifmsearch.hxx
index f0717aa..8d32d5e 100644
--- a/cui/source/inc/cuifmsearch.hxx
+++ b/cui/source/inc/cuifmsearch.hxx
@@ -173,7 +173,7 @@ private:
 
     DECL_LINK( OnSearchProgress, FmSearchProgress* );
 
-    DECL_LINK( OnDelayedPaint, void* ); ///< see EnableSearchUI
+    DECL_LINK_TYPED( OnDelayedPaint, Timer*, void ); ///< see EnableSearchUI
 
     void initCommon( const ::com::sun::star::uno::Reference< ::com::sun::star::sdbc::XResultSet >& _rxCursor );
 };
diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx
index 134b653..644cf4a 100644
--- a/cui/source/inc/cuigaldlg.hxx
+++ b/cui/source/inc/cuigaldlg.hxx
@@ -289,7 +289,7 @@ class TPGalleryThemeProperties : public SfxTabPage
                         DECL_LINK( SelectThemeHdl, void* );
                         DECL_LINK( SelectFileTypeHdl, void* );
                         DECL_LINK( DClickFoundHdl, void* );
-                        DECL_LINK( PreviewTimerHdl, void* );
+                        DECL_LINK_TYPED( PreviewTimerHdl, Timer*, void );
                         DECL_LINK(EndSearchProgressHdl, void *);
                         DECL_LINK( DialogClosedHdl, ::com::sun::star::ui::dialogs::DialogClosedEvent* );
 
diff --git a/cui/source/inc/cuigrfflt.hxx b/cui/source/inc/cuigrfflt.hxx
index 0f20488..ca79d09 100644
--- a/cui/source/inc/cuigrfflt.hxx
+++ b/cui/source/inc/cuigrfflt.hxx
@@ -73,7 +73,7 @@ private:
     Size            maSizePixel;
     bool            bIsBitmap;
 
-    DECL_LINK(ImplPreviewTimeoutHdl, void *);
+    DECL_LINK_TYPED(ImplPreviewTimeoutHdl, Timer *, void);
     DECL_LINK( ImplModifyHdl, void* p );
 
 protected:
diff --git a/cui/source/inc/grfpage.hxx b/cui/source/inc/grfpage.hxx
index 1a79416..ae50b06 100644
--- a/cui/source/inc/grfpage.hxx
+++ b/cui/source/inc/grfpage.hxx
@@ -103,7 +103,7 @@ class SvxGrfCropPage : public SfxTabPage
     DECL_LINK( CropLoseFocusHdl, MetricField * );
     DECL_LINK( CropModifyHdl, MetricField * );
     DECL_LINK(OrigSizeHdl, void *);
-    DECL_LINK(Timeout, void *);
+    DECL_LINK_TYPED(Timeout, Timer *, void);
 
     void            CalcZoom();
     void            CalcMinMaxBorder();
diff --git a/cui/source/inc/hldoctp.hxx b/cui/source/inc/hldoctp.hxx
index 19c69ba..9214f80 100644
--- a/cui/source/inc/hldoctp.hxx
+++ b/cui/source/inc/hldoctp.hxx
@@ -49,7 +49,7 @@ private:
 
     DECL_LINK (LostFocusPathHdl_Impl,  void * ); ///< Combobox "path" lost its focus
 
-    DECL_LINK(TimeoutHdl_Impl      , void *);  ///< Handler for timer -timeout
+    DECL_LINK_TYPED(TimeoutHdl_Impl, Timer *, void); ///< Handler for timer -timeout
 
     enum EPathType { Type_Unknown, Type_Invalid,
                      Type_ExistsFile, Type_File,
diff --git a/cui/source/inc/hlinettp.hxx b/cui/source/inc/hlinettp.hxx
index 99f60cd..a9252e1 100644
--- a/cui/source/inc/hlinettp.hxx
+++ b/cui/source/inc/hlinettp.hxx
@@ -54,7 +54,7 @@ private:
     DECL_LINK (LostFocusTargetHdl_Impl   , void * ); ///< Combobox "Target" lost its focus
     DECL_LINK (ModifiedTargetHdl_Impl    , void * ); ///< Contens of editfield "Target" modified
 
-    DECL_LINK(TimeoutHdl_Impl           , void *); ///< Handler for timer -timeout
+    DECL_LINK_TYPED(TimeoutHdl_Impl, Timer *, void); ///< Handler for timer -timeout
 
 
     void    SetScheme(const OUString& rScheme);
diff --git a/cui/source/inc/numfmt.hxx b/cui/source/inc/numfmt.hxx
index dae84fe..65e9f1a 100644
--- a/cui/source/inc/numfmt.hxx
+++ b/cui/source/inc/numfmt.hxx
@@ -152,7 +152,7 @@ private:
     DECL_LINK( ClickHdl_Impl, PushButton* );
     DECL_LINK( EditHdl_Impl, Edit* );
     DECL_LINK( OptHdl_Impl, void * );
-    DECL_LINK(TimeHdl_Impl, void *);
+    DECL_LINK_TYPED(TimeHdl_Impl, Timer *, void);
 };
 
 #endif
diff --git a/cui/source/inc/numpages.hxx b/cui/source/inc/numpages.hxx
index 625da38..e5fc99d 100644
--- a/cui/source/inc/numpages.hxx
+++ b/cui/source/inc/numpages.hxx
@@ -341,7 +341,7 @@ class SvxNumOptionsTabPage : public SfxTabPage
         DECL_LINK( SameLevelHdl_Impl, CheckBox * );
         DECL_LINK( BulColorHdl_Impl, ColorListBox* );
         DECL_LINK( BulRelSizeHdl_Impl, MetricField *);
-        DECL_LINK(PreviewInvalidateHdl_Impl, void *);
+        DECL_LINK_TYPED(PreviewInvalidateHdl_Impl, Timer *, void);
 
         DECL_STATIC_LINK( SvxNumOptionsTabPage, GraphicArrivedHdl_Impl, SvxBrushItem* );
 
diff --git a/cui/source/inc/selector.hxx b/cui/source/inc/selector.hxx
index 0cfa711..898314d 100644
--- a/cui/source/inc/selector.hxx
+++ b/cui/source/inc/selector.hxx
@@ -96,7 +96,7 @@ friend class SvxConfigGroupListBox;
     SvxGroupInfoArr_Impl            aArr;
     SvTreeListEntry*                    m_pDraggingEntry;
 
-    DECL_LINK(TimerHdl, void *);
+    DECL_LINK_TYPED(TimerHdl, Timer *, void);
     virtual void                    MouseMove( const MouseEvent& rMEvt ) SAL_OVERRIDE;
 
 public:
diff --git a/cui/source/tabpages/grfpage.cxx b/cui/source/tabpages/grfpage.cxx
index 035ddab..645867a 100644
--- a/cui/source/tabpages/grfpage.cxx
+++ b/cui/source/tabpages/grfpage.cxx
@@ -736,12 +736,11 @@ void SvxGrfCropPage::GraphicHasChanged( bool bFound )
     m_pZoomConstRB->Enable(bFound);
 }
 
-IMPL_LINK_NOARG(SvxGrfCropPage, Timeout)
+IMPL_LINK_NOARG_TYPED(SvxGrfCropPage, Timeout, Timer *, void)
 {
     DBG_ASSERT(pLastCropField,"Timeout ohne Feld?");
     CropHdl(pLastCropField);
     pLastCropField = 0;
-    return 0;
 }
 
 
diff --git a/cui/source/tabpages/numfmt.cxx b/cui/source/tabpages/numfmt.cxx
index be2ab71..2663c39 100644
--- a/cui/source/tabpages/numfmt.cxx
+++ b/cui/source/tabpages/numfmt.cxx
@@ -1567,10 +1567,9 @@ IMPL_LINK( SvxNumberFormatTabPage, OptHdl_Impl, void *, pOptCtrl )
     return 0;
 }
 
-IMPL_LINK_NOARG(SvxNumberFormatTabPage, TimeHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxNumberFormatTabPage, TimeHdl_Impl, Timer *, void)
 {
     pLastActivWindow=NULL;
-    return 0;
 }
 
 
diff --git a/cui/source/tabpages/numpages.cxx b/cui/source/tabpages/numpages.cxx
index 797a37d..2af50a7 100644
--- a/cui/source/tabpages/numpages.cxx
+++ b/cui/source/tabpages/numpages.cxx
@@ -1755,10 +1755,9 @@ IMPL_LINK( SvxNumOptionsTabPage, LevelHdl_Impl, ListBox *, pBox )
     return 0;
 }
 
-IMPL_LINK_NOARG(SvxNumOptionsTabPage, PreviewInvalidateHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxNumOptionsTabPage, PreviewInvalidateHdl_Impl, Timer *, void)
 {
     m_pPreviewWIN->Invalidate();
-    return 0;
 }
 
 IMPL_LINK( SvxNumOptionsTabPage, AllLevelHdl_Impl, NumericField*, pBox )
diff --git a/dbaccess/source/ui/browser/brwctrlr.cxx b/dbaccess/source/ui/browser/brwctrlr.cxx
index d39dd44..189117d 100644
--- a/dbaccess/source/ui/browser/brwctrlr.cxx
+++ b/dbaccess/source/ui/browser/brwctrlr.cxx
@@ -2281,10 +2281,11 @@ void SbaXDataBrowserController::CellDeactivated()
 IMPL_LINK_NOARG(SbaXDataBrowserController, OnClipboardChanged)
 {
     SolarMutexGuard aGuard;
-    return OnInvalidateClipboard( NULL );
+    OnInvalidateClipboard( NULL );
+    return 0;
 }
 
-IMPL_LINK(SbaXDataBrowserController, OnInvalidateClipboard, AutoTimer*, _pTimer)
+IMPL_LINK_TYPED(SbaXDataBrowserController, OnInvalidateClipboard, Timer*, _pTimer, void)
 {
     InvalidateFeature(ID_BROWSER_CUT);
     InvalidateFeature(ID_BROWSER_COPY);
@@ -2296,8 +2297,6 @@ IMPL_LINK(SbaXDataBrowserController, OnInvalidateClipboard, AutoTimer*, _pTimer)
     // changes. This would be much better than this cycle-eating polling mechanism here ....
     if ( _pTimer != &m_aInvalidateClipboard )
         InvalidateFeature(ID_BROWSER_PASTE);
-
-    return 0L;
 }
 
 Reference< XPropertySet >  SbaXDataBrowserController::getBoundField(sal_uInt16 nViewPos) const
diff --git a/dbaccess/source/ui/control/dbtreelistbox.cxx b/dbaccess/source/ui/control/dbtreelistbox.cxx
index afd7b1b..6ecacbc 100644
--- a/dbaccess/source/ui/control/dbtreelistbox.cxx
+++ b/dbaccess/source/ui/control/dbtreelistbox.cxx
@@ -659,12 +659,11 @@ void DBTreeListBox::ExcecuteContextMenuAction( sal_uInt16 _nSelectedPopupEntry )
         m_pContextMenuProvider->getCommandController().executeChecked( _nSelectedPopupEntry, Sequence< PropertyValue >() );
 }
 
-IMPL_LINK(DBTreeListBox, OnTimeOut, void*, /*EMPTY_ARG*/)
+IMPL_LINK_NOARG_TYPED(DBTreeListBox, OnTimeOut, Timer*, void)
 {
     implStopSelectionTimer();
 
     m_aSelChangeHdl.Call( NULL );
-    return 0L;
 }
 
 void DBTreeListBox::StateChanged( StateChangedType nStateChange )
diff --git a/dbaccess/source/ui/control/sqledit.cxx b/dbaccess/source/ui/control/sqledit.cxx
index 9048294..7703635 100644
--- a/dbaccess/source/ui/control/sqledit.cxx
+++ b/dbaccess/source/ui/control/sqledit.cxx
@@ -149,7 +149,7 @@ void OSqlEdit::GetFocus()
     MultiLineEditSyntaxHighlight::GetFocus();
 }
 
-IMPL_LINK_NOARG(OSqlEdit, OnUndoActionTimer)
+IMPL_LINK_NOARG_TYPED(OSqlEdit, OnUndoActionTimer, Timer *, void)
 {
     OUString aText = GetText();
     if(aText != m_strOrigText)
@@ -166,18 +166,15 @@ IMPL_LINK_NOARG(OSqlEdit, OnUndoActionTimer)
 
         m_strOrigText  =aText;
     }
-
-    return 0L;
 }
 
-IMPL_LINK_NOARG(OSqlEdit, OnInvalidateTimer)
+IMPL_LINK_NOARG_TYPED(OSqlEdit, OnInvalidateTimer, Timer *, void)
 {
     OJoinController& rController = m_pView->getContainerWindow()->getDesignView()->getController();
     rController.InvalidateFeature(SID_CUT);
     rController.InvalidateFeature(SID_COPY);
     if(!m_bStopTimer)
         m_timerInvalidate.Start();
-    return 0L;
 }
 
 IMPL_LINK(OSqlEdit, ModifyHdl, void*, /*EMPTYTAG*/)
diff --git a/dbaccess/source/ui/dlg/paramdialog.cxx b/dbaccess/source/ui/dlg/paramdialog.cxx
index 30f8987..3b34eab 100644
--- a/dbaccess/source/ui/dlg/paramdialog.cxx
+++ b/dbaccess/source/ui/dlg/paramdialog.cxx
@@ -319,7 +319,7 @@ namespace dbaui
         return 0L;
     }
 
-    IMPL_LINK(OParameterDialog, OnVisitedTimeout, Timer*, /*pTimer*/)
+    IMPL_LINK_NOARG_TYPED(OParameterDialog, OnVisitedTimeout, Timer*, void)
     {
         OSL_ENSURE(m_nCurrentlySelected != LISTBOX_ENTRY_NOTFOUND, "OParameterDialog::OnVisitedTimeout : invalid call !");
 
@@ -363,8 +363,6 @@ namespace dbaui
                 m_pParam->SetSelection(aSel);
             }
         }
-
-        return 0L;
     }
 
     IMPL_LINK(OParameterDialog, OnValueModified, Control*, /*pBox*/)
diff --git a/dbaccess/source/ui/inc/TableWindowListBox.hxx b/dbaccess/source/ui/inc/TableWindowListBox.hxx
index dfd8f4b..c6199d3 100644
--- a/dbaccess/source/ui/inc/TableWindowListBox.hxx
+++ b/dbaccess/source/ui/inc/TableWindowListBox.hxx
@@ -48,8 +48,8 @@ namespace dbaui
             ,public IDragTransferableListener
     {
         DECL_LINK( OnDoubleClick, SvTreeListBox* );
-        DECL_LINK( ScrollUpHdl, SvTreeListBox* );
-        DECL_LINK( ScrollDownHdl, SvTreeListBox* );
+        DECL_LINK_TYPED( ScrollUpHdl, Timer*, void );
+        DECL_LINK_TYPED( ScrollDownHdl, Timer*, void );
         DECL_LINK( DropHdl, void* );
         DECL_LINK( LookForUiHdl, void* );
 
diff --git a/dbaccess/source/ui/inc/brwctrlr.hxx b/dbaccess/source/ui/inc/brwctrlr.hxx
index 5cbc936..1f30a83 100644
--- a/dbaccess/source/ui/inc/brwctrlr.hxx
+++ b/dbaccess/source/ui/inc/brwctrlr.hxx
@@ -330,7 +330,7 @@ namespace dbaui
         void        impl_checkForCannotSelectUnfiltered( const ::dbtools::SQLExceptionInfo& _rError );
 
         // time to check the CUT/COPY/PASTE-slot-states
-        DECL_LINK( OnInvalidateClipboard, AutoTimer* );
+        DECL_LINK_TYPED( OnInvalidateClipboard, Timer*, void );
         DECL_LINK( OnClipboardChanged, void* );
 
         // search callbacks
diff --git a/dbaccess/source/ui/inc/dbtreelistbox.hxx b/dbaccess/source/ui/inc/dbtreelistbox.hxx
index 4dfd3c8..a47af3e 100644
--- a/dbaccess/source/ui/inc/dbtreelistbox.hxx
+++ b/dbaccess/source/ui/inc/dbtreelistbox.hxx
@@ -74,7 +74,7 @@ namespace dbaui
 
     private:
         void init();
-        DECL_LINK( OnTimeOut, void* );
+        DECL_LINK_TYPED( OnTimeOut, Timer*, void );
         DECL_LINK( OnResetEntry, SvTreeListEntry* );
         DECL_LINK( ScrollUpHdl, SvTreeListBox* );
         DECL_LINK( ScrollDownHdl, SvTreeListBox* );
diff --git a/dbaccess/source/ui/inc/paramdialog.hxx b/dbaccess/source/ui/inc/paramdialog.hxx
index 11db980..7a52aa1 100644
--- a/dbaccess/source/ui/inc/paramdialog.hxx
+++ b/dbaccess/source/ui/inc/paramdialog.hxx
@@ -95,7 +95,7 @@ namespace dbaui
         ::connectivity::OSQLParseNode* implPredicateTree(OUString& _rErrorMessage, const OUString& _rStatement, const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > & _rxField);
 
     private:
-        DECL_LINK(OnVisitedTimeout, Timer*);
+        DECL_LINK_TYPED(OnVisitedTimeout, Timer*, void);
         DECL_LINK(OnValueModified, Control*);
         DECL_LINK(OnEntrySelected, ListBox*);
         DECL_LINK(OnButtonClicked, PushButton*);
diff --git a/dbaccess/source/ui/inc/sqledit.hxx b/dbaccess/source/ui/inc/sqledit.hxx
index 81695cc..2e8a8a2 100644
--- a/dbaccess/source/ui/inc/sqledit.hxx
+++ b/dbaccess/source/ui/inc/sqledit.hxx
@@ -53,8 +53,8 @@ namespace dbaui
         com::sun::star::uno::Reference<
             com::sun::star::beans::XMultiPropertySet > m_notifier;
 
-        DECL_LINK(OnUndoActionTimer, void*);
-        DECL_LINK(OnInvalidateTimer, void*);
+        DECL_LINK_TYPED(OnUndoActionTimer, Timer*, void);
+        DECL_LINK_TYPED(OnInvalidateTimer, Timer*, void);
 
     private:
         void            ImplSetFont();
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
index 05d3d05..65ffa8f 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.cxx
@@ -2487,14 +2487,13 @@ void OSelectionBrowseBox::appendUndoAction(const OUString& _rOldValue,const OUSt
     }
 }
 
-IMPL_LINK_NOARG(OSelectionBrowseBox, OnInvalidateTimer)
+IMPL_LINK_NOARG_TYPED(OSelectionBrowseBox, OnInvalidateTimer, Timer *, void)
 {
     static_cast<OQueryController&>(getDesignView()->getController()).InvalidateFeature(SID_CUT);
     static_cast<OQueryController&>(getDesignView()->getController()).InvalidateFeature(SID_COPY);
     static_cast<OQueryController&>(getDesignView()->getController()).InvalidateFeature(SID_PASTE);
     if(!m_bStopTimer)
         m_timerInvalidate.Start();
-    return 0L;
 }
 
 void OSelectionBrowseBox::stopTimer()
diff --git a/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx b/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
index 45dbfcb..4a12767 100644
--- a/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
+++ b/dbaccess/source/ui/querydesign/SelectionBrowseBox.hxx
@@ -77,7 +77,7 @@ namespace dbaui
         bool                            m_bDisableErrorBox;
         bool                            m_bInUndoMode;
 
-        DECL_LINK(OnInvalidateTimer, void*);
+        DECL_LINK_TYPED(OnInvalidateTimer, Timer*, void);
     public:                         OSelectionBrowseBox( vcl::Window* pParent );
                                     virtual ~OSelectionBrowseBox();
         virtual void                dispose() SAL_OVERRIDE;
diff --git a/dbaccess/source/ui/querydesign/TableWindowListBox.cxx b/dbaccess/source/ui/querydesign/TableWindowListBox.cxx
index 2453bd2..545e771 100644
--- a/dbaccess/source/ui/querydesign/TableWindowListBox.cxx
+++ b/dbaccess/source/ui/querydesign/TableWindowListBox.cxx
@@ -167,11 +167,11 @@ bool OTableWindowListBox::PreNotify(NotifyEvent& rNEvt)
     return true;
 }
 
-IMPL_LINK( OTableWindowListBox, ScrollUpHdl, SvTreeListBox*, /*pBox*/ )
+IMPL_LINK_NOARG_TYPED( OTableWindowListBox, ScrollUpHdl, Timer*, void )
 {
     SvTreeListEntry* pEntry = GetEntry( m_aMousePos );
     if( !pEntry )
-        return 0;
+        return;
 
     if( pEntry != Last() )
     {
@@ -179,15 +179,13 @@ IMPL_LINK( OTableWindowListBox, ScrollUpHdl, SvTreeListBox*, /*pBox*/ )
         pEntry = GetEntry( m_aMousePos );
         Select( pEntry, true );
     }
-
-    return 0;
 }
 
-IMPL_LINK( OTableWindowListBox, ScrollDownHdl, SvTreeListBox*, /*pBox*/ )
+IMPL_LINK_NOARG_TYPED( OTableWindowListBox, ScrollDownHdl, Timer*, void )
 {
     SvTreeListEntry* pEntry = GetEntry( m_aMousePos );
     if( !pEntry )
-        return 0;
+        return;
 
     if( pEntry != Last() )
     {
@@ -195,8 +193,6 @@ IMPL_LINK( OTableWindowListBox, ScrollDownHdl, SvTreeListBox*, /*pBox*/ )
         pEntry = GetEntry( m_aMousePos );
         Select( pEntry, true );
     }
-
-    return 0;
 }
 
 void OTableWindowListBox::StartDrag( sal_Int8 /*nAction*/, const Point& /*rPosPixel*/ )
@@ -247,7 +243,7 @@ sal_Int8 OTableWindowListBox::AcceptDrop( const AcceptDropEvent& _rEvt )
                 if( !m_aScrollTimer.IsActive() )
                 {
                     m_aScrollTimer.SetTimeoutHdl( LINK(this, OTableWindowListBox, ScrollUpHdl) );
-                    ScrollUpHdl( this );
+                    ScrollUpHdl( nullptr );
                 }
             }
 
@@ -257,7 +253,7 @@ sal_Int8 OTableWindowListBox::AcceptDrop( const AcceptDropEvent& _rEvt )
                 if( !m_aScrollTimer.IsActive() )
                 {
                     m_aScrollTimer.SetTimeoutHdl( LINK(this, OTableWindowListBox, ScrollDownHdl) );
-                    ScrollDownHdl( this );
+                    ScrollDownHdl( nullptr );
                 }
             }
             else
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.cxx b/dbaccess/source/ui/tabledesign/TEditControl.cxx
index d8321b1..c47fc25 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.cxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.cxx
@@ -88,12 +88,11 @@ OTableEditorCtrl::ClipboardInvalidator::~ClipboardInvalidator()
 
 }
 
-IMPL_LINK_NOARG(OTableEditorCtrl::ClipboardInvalidator, OnInvalidate)
+IMPL_LINK_NOARG_TYPED(OTableEditorCtrl::ClipboardInvalidator, OnInvalidate, Timer *, void)
 {
     m_pOwner->GetView()->getController().InvalidateFeature(SID_CUT);
     m_pOwner->GetView()->getController().InvalidateFeature(SID_COPY);
     m_pOwner->GetView()->getController().InvalidateFeature(SID_PASTE);
-    return 0L;
 }
 
 void OTableEditorCtrl::Init()
diff --git a/dbaccess/source/ui/tabledesign/TEditControl.hxx b/dbaccess/source/ui/tabledesign/TEditControl.hxx
index a91c883..bbd4d18 100644
--- a/dbaccess/source/ui/tabledesign/TEditControl.hxx
+++ b/dbaccess/source/ui/tabledesign/TEditControl.hxx
@@ -78,7 +78,7 @@ namespace dbaui
             ~ClipboardInvalidator();
 
         protected:
-            DECL_LINK(OnInvalidate, void*);
+            DECL_LINK_TYPED(OnInvalidate, Timer*, void);
         };
 
         friend class OTableEditorCtrl::ClipboardInvalidator;
diff --git a/desktop/inc/app.hxx b/desktop/inc/app.hxx
index d5d184d..21ab2f0 100644
--- a/desktop/inc/app.hxx
+++ b/desktop/inc/app.hxx
@@ -154,7 +154,7 @@ class Desktop : public Application
 
         static void             EnableOleAutomation();
                                 DECL_LINK( ImplInitFilterHdl, ConvertData* );
-        DECL_LINK( AsyncInitFirstRun, void* );
+        DECL_LINK_TYPED( AsyncInitFirstRun, Timer*, void );
         /** checks if the office is run the first time
             <p>If so, <method>DoFirstRunInitializations</method> is called (asynchronously and delayed) and the
             respective flag in the configuration is reset.</p>
diff --git a/desktop/source/app/app.cxx b/desktop/source/app/app.cxx
index 3893892..5be7223 100644
--- a/desktop/source/app/app.cxx
+++ b/desktop/source/app/app.cxx
@@ -1864,10 +1864,9 @@ void Desktop::OverrideSystemSettings( AllSettings& rSettings )
 }
 
 
-IMPL_LINK_NOARG(Desktop, AsyncInitFirstRun)
+IMPL_LINK_NOARG_TYPED(Desktop, AsyncInitFirstRun, Timer *, void)
 {
     DoFirstRunInitializations();
-    return 0L;
 }
 
 
diff --git a/editeng/source/editeng/impedit.hxx b/editeng/source/editeng/impedit.hxx
index 35fbc7a..ca18773 100644
--- a/editeng/source/editeng/impedit.hxx
+++ b/editeng/source/editeng/impedit.hxx
@@ -666,9 +666,9 @@ private:
     inline VirtualDevice*   GetVirtualDevice( const MapMode& rMapMode, sal_uLong nDrawMode );
     inline void             EraseVirtualDevice() { pVirtDev.disposeAndClear(); }
 
-    DECL_LINK(StatusTimerHdl, void *);
+    DECL_LINK_TYPED(StatusTimerHdl, Timer *, void);
     DECL_LINK(IdleFormatHdl, void *);
-    DECL_LINK(OnlineSpellHdl, void *);
+    DECL_LINK_TYPED(OnlineSpellHdl, Timer *, void);
     DECL_LINK( DocModified, void* );
 
     void                CheckIdleFormatter();
diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx
index 34f9f1c..1928ba0 100644
--- a/editeng/source/editeng/impedit3.cxx
+++ b/editeng/source/editeng/impedit3.cxx
@@ -308,14 +308,12 @@ void ImpEditEngine::UpdateViews( EditView* pCurView )
     CallStatusHdl();
 }
 
-IMPL_LINK_NOARG(ImpEditEngine, OnlineSpellHdl)
+IMPL_LINK_NOARG_TYPED(ImpEditEngine, OnlineSpellHdl, Timer *, void)
 {
     if ( !Application::AnyInput( VclInputFlags::KEYBOARD ) && GetUpdateMode() && IsFormatted() )
         DoOnlineSpelling();
     else
         aOnlineSpellTimer.Start();
-
-    return 0;
 }
 
 IMPL_LINK_NOARG(ImpEditEngine, IdleFormatHdl)
@@ -4016,10 +4014,9 @@ void ImpEditEngine::InvalidateFromParagraph( sal_Int32 nFirstInvPara )
     pTmpPortion->ResetHeight();
 }
 
-IMPL_LINK_NOARG(ImpEditEngine, StatusTimerHdl)
+IMPL_LINK_NOARG_TYPED(ImpEditEngine, StatusTimerHdl, Timer *, void)
 {
     CallStatusHdl();
-    return 0;
 }
 
 void ImpEditEngine::CallStatusHdl()
diff --git a/extensions/source/update/ui/updatecheckui.cxx b/extensions/source/update/ui/updatecheckui.cxx
index fcfd11a..6c666f5 100644
--- a/extensions/source/update/ui/updatecheckui.cxx
+++ b/extensions/source/update/ui/updatecheckui.cxx
@@ -146,7 +146,7 @@ private:
                     DECL_LINK(ClickHdl, void *);
                     DECL_LINK( HighlightHdl, MenuBar::MenuBarButtonCallbackArg* );
                     DECL_LINK(WaitTimeOutHdl, void *);
-                    DECL_LINK(TimeOutHdl, void *);
+                    DECL_LINK_TYPED(TimeOutHdl, Timer *, void);
                     DECL_LINK(UserEventHdl, void *);
                     DECL_LINK( WindowEventHdl, VclWindowEvent* );
                     DECL_LINK( ApplicationEventHdl, VclSimpleEvent* );
@@ -627,11 +627,9 @@ IMPL_LINK_NOARG(UpdateCheckUI, WaitTimeOutHdl)
 }
 
 
-IMPL_LINK_NOARG(UpdateCheckUI, TimeOutHdl)
+IMPL_LINK_NOARG_TYPED(UpdateCheckUI, TimeOutHdl, Timer *, void)
 {
     RemoveBubbleWindow( false );
-
-    return 0;
 }
 
 
diff --git a/forms/source/component/DatabaseForm.cxx b/forms/source/component/DatabaseForm.cxx
index f91ec08..2e32540 100644
--- a/forms/source/component/DatabaseForm.cxx
+++ b/forms/source/component/DatabaseForm.cxx
@@ -2633,10 +2633,9 @@ void SAL_CALL ODatabaseForm::reloaded(const EventObject& /*aEvent*/) throw( Runt
 }
 
 
-IMPL_LINK_NOARG(ODatabaseForm, OnTimeout)
+IMPL_LINK_NOARG_TYPED(ODatabaseForm, OnTimeout, Timer *, void)
 {
     reload_impl(true);
-    return 1;
 }
 
 
diff --git a/forms/source/component/DatabaseForm.hxx b/forms/source/component/DatabaseForm.hxx
index 4e55aef..62c9892 100644
--- a/forms/source/component/DatabaseForm.hxx
+++ b/forms/source/component/DatabaseForm.hxx
@@ -537,7 +537,7 @@ private:
 
     void    impl_construct();
 
-    DECL_LINK( OnTimeout, void* );
+    DECL_LINK_TYPED( OnTimeout, Timer*, void );
 protected:
     using OPropertySetHelper::getPropertyValues;
 };
diff --git a/fpicker/source/office/iodlg.cxx b/fpicker/source/office/iodlg.cxx
index c88e526..ae197c5 100644
--- a/fpicker/source/office/iodlg.cxx
+++ b/fpicker/source/office/iodlg.cxx
@@ -630,7 +630,7 @@ void SvtFileDialog::Init_Impl
 
     // set timer for the filterbox travel
     _pImp->_aFilterTimer.SetTimeout( TRAVELFILTER_TIMEOUT );
-    _pImp->_aFilterTimer.SetTimeoutHdl( LINK( this, SvtFileDialog, FilterSelectHdl_Impl ) );
+    _pImp->_aFilterTimer.SetTimeoutHdl( LINK( this, SvtFileDialog, FilterSelectTimerHdl_Impl ) );
 
     if ( WB_SAVEAS & nStyle )
     {
@@ -1147,18 +1147,8 @@ void SvtFileDialog::EnableAutocompletion( bool _bEnable )
 
 
 
-IMPL_STATIC_LINK( SvtFileDialog, FilterSelectHdl_Impl, void*, pInstance )
+IMPL_STATIC_LINK( SvtFileDialog, FilterSelectHdl_Impl, void*, EMPTYARG )
 {
-    DBG_ASSERT( pInstance, "SvtFileDialog:keine Instanz" );
-
-    // was the handler executed by the travel timer?
-    if ( pInstance == &pThis->_pImp->_aFilterTimer )
-    {
-        // filter the view again
-        pThis->ExecuteFilter();
-        return 0;
-    }
-
     OUString sSelectedFilterDisplayName;
     SvtFileDialogFilter_Impl* pSelectedFilter = pThis->_pImp->GetSelectedFilterEntry( sSelectedFilterDisplayName );
     if ( !pSelectedFilter )
@@ -1231,7 +1221,12 @@ IMPL_STATIC_LINK( SvtFileDialog, FilterSelectHdl_Impl, void*, pInstance )
     return 0;
 }
 
-
+IMPL_STATIC_LINK_TYPED(
+    SvtFileDialog, FilterSelectTimerHdl_Impl, Timer*, EMPTYARG, void)
+{
+    // filter the view again
+    pThis->ExecuteFilter();
+}
 
 IMPL_STATIC_LINK( SvtFileDialog, FileNameGetFocusHdl_Impl, void*, EMPTYARG )
 {
diff --git a/fpicker/source/office/iodlg.hxx b/fpicker/source/office/iodlg.hxx
index 5c67ad2..b0588c0 100644
--- a/fpicker/source/office/iodlg.hxx
+++ b/fpicker/source/office/iodlg.hxx
@@ -113,6 +113,7 @@ private:
     ::com::sun::star::uno::Reference < com::sun::star::uno::XComponentContext > m_context;
 
     DECL_STATIC_LINK( SvtFileDialog, FilterSelectHdl_Impl, void* );
+    DECL_STATIC_LINK_TYPED( SvtFileDialog, FilterSelectTimerHdl_Impl, Timer*, void );
     DECL_STATIC_LINK( SvtFileDialog, NewFolderHdl_Impl, PushButton* );
     DECL_STATIC_LINK( SvtFileDialog, OpenHdl_Impl, void* );
     DECL_LINK       (                CancelHdl_Impl, void* );
diff --git a/framework/inc/services/layoutmanager.hxx b/framework/inc/services/layoutmanager.hxx
index ae1f300..078120e 100644
--- a/framework/inc/services/layoutmanager.hxx
+++ b/framework/inc/services/layoutmanager.hxx
@@ -182,7 +182,7 @@ namespace framework
                     const css::uno::Reference< css::uno::XComponentContext > &rComponentContext );
 
         protected:
-            DECL_LINK(AsyncLayoutHdl, void *);
+            DECL_LINK_TYPED(AsyncLayoutHdl, Timer *, void);
 
         private:
 
diff --git a/framework/inc/uielement/menubarmanager.hxx b/framework/inc/uielement/menubarmanager.hxx
index f985b36..6286150 100644
--- a/framework/inc/uielement/menubarmanager.hxx
+++ b/framework/inc/uielement/menubarmanager.hxx
@@ -154,7 +154,7 @@ class MenuBarManager : public com::sun::star::frame::XStatusListener
         DECL_LINK(Highlight, void *);
         DECL_LINK( Activate, Menu * );
         DECL_LINK( Deactivate, Menu * );
-        DECL_LINK( AsyncSettingsHdl, Timer * );
+        DECL_LINK_TYPED( AsyncSettingsHdl, Timer *, void );
 
         void RemoveListener();
         void RequestImages();
diff --git a/framework/inc/uielement/toolbarmanager.hxx b/framework/inc/uielement/toolbarmanager.hxx
index 95381c3..11163fc 100644
--- a/framework/inc/uielement/toolbarmanager.hxx
+++ b/framework/inc/uielement/toolbarmanager.hxx
@@ -141,7 +141,7 @@ class ToolBarManager : public ToolbarManager_Base
         DECL_LINK( MenuButton, ToolBox * );
         DECL_LINK( MenuSelect, Menu * );
         DECL_LINK( MenuDeactivate, Menu * );
-        DECL_LINK(AsyncUpdateControllersHdl, void *);
+        DECL_LINK_TYPED(AsyncUpdateControllersHdl, Timer *, void);
         DECL_STATIC_LINK( ToolBarManager, ExecuteHdl_Impl, ExecuteInfo* );
 
         virtual bool MenuItemAllowed( sal_uInt16 ) const;
diff --git a/framework/source/layoutmanager/layoutmanager.cxx b/framework/source/layoutmanager/layoutmanager.cxx
index 753ca21..7bcbccd 100644
--- a/framework/source/layoutmanager/layoutmanager.cxx
+++ b/framework/source/layoutmanager/layoutmanager.cxx
@@ -2677,7 +2677,7 @@ throw( uno::RuntimeException, std::exception )
         m_bMustDoLayout = true;
         if ( !m_aAsyncLayoutTimer.IsActive() )
         {
-            const Link<>& aLink = m_aAsyncLayoutTimer.GetTimeoutHdl();
+            const Link<Timer *, void>& aLink = m_aAsyncLayoutTimer.GetTimeoutHdl();
             if ( aLink.IsSet() )
                 aLink.Call( &m_aAsyncLayoutTimer );
         }
@@ -2749,13 +2749,13 @@ void SAL_CALL LayoutManager::windowHidden( const lang::EventObject& aEvent ) thr
     }
 }
 
-IMPL_LINK_NOARG(LayoutManager, AsyncLayoutHdl)
+IMPL_LINK_NOARG_TYPED(LayoutManager, AsyncLayoutHdl, Timer *, void)
 {
     SolarMutexClearableGuard aReadLock;
     m_aAsyncLayoutTimer.Stop();
 
     if( !m_xContainerWindow.is() )
-        return 0;
+        return;
 
     awt::Rectangle aDockingArea( m_aDockingArea );
     ::Size         aStatusBarSize( implts_getStatusBarSize() );
@@ -2766,8 +2766,6 @@ IMPL_LINK_NOARG(LayoutManager, AsyncLayoutHdl)
 
     implts_setDockingAreaWindowSizes( aDockingArea );
     implts_doLayout( true, false );
-
-    return 0;
 }
 
 //      XFrameActionListener
diff --git a/framework/source/services/autorecovery.cxx b/framework/source/services/autorecovery.cxx
index 9367901..8b75271 100644
--- a/framework/source/services/autorecovery.cxx
+++ b/framework/source/services/autorecovery.cxx
@@ -634,7 +634,7 @@ private:
 
     /** @short  callback of our internal timer.
      */
-    DECL_LINK(implts_timerExpired, void*);
+    DECL_LINK_TYPED(implts_timerExpired, Timer*, void);
 
     /** @short  makes our dispatch() method asynchronous!
      */
@@ -2326,7 +2326,7 @@ void AutoRecovery::implts_stopTimer()
     m_aTimer.Stop();
 }
 
-IMPL_LINK_NOARG(AutoRecovery, implts_timerExpired)
+IMPL_LINK_NOARG_TYPED(AutoRecovery, implts_timerExpired, Timer *, void)
 {
     try
     {
@@ -2346,7 +2346,7 @@ IMPL_LINK_NOARG(AutoRecovery, implts_timerExpired)
         /* SAFE */ {
         osl::MutexGuard g(cppu::WeakComponentImplHelperBase::rBHelper.rMutex);
         if ((m_eJob & AutoRecovery::E_DISABLE_AUTORECOVERY) == AutoRecovery::E_DISABLE_AUTORECOVERY)
-           return 0;
+           return;
         } /* SAFE */
 
         // check some "states", where its not allowed (better: not a good idea) to
@@ -2360,7 +2360,7 @@ IMPL_LINK_NOARG(AutoRecovery, implts_timerExpired)
             m_eTimerType = AutoRecovery::E_POLL_TILL_AUTOSAVE_IS_ALLOWED;
             } /* SAFE */
             implts_updateTimer();
-            return 0;
+            return;
         }
 
         // analyze timer type.
@@ -2375,7 +2375,7 @@ IMPL_LINK_NOARG(AutoRecovery, implts_timerExpired)
             if (!bUserIdle)
             {
                 implts_updateTimer();
-                return 0;
+                return;
             }
         }
 
@@ -2418,8 +2418,6 @@ IMPL_LINK_NOARG(AutoRecovery, implts_timerExpired)
     catch(const css::uno::Exception&)
     {
     }
-
-    return 0;
 }
 
 IMPL_LINK_NOARG(AutoRecovery, implts_asyncDispatch)
diff --git a/framework/source/uielement/menubarmanager.cxx b/framework/source/uielement/menubarmanager.cxx
index c9eee85..b06fa6a 100644
--- a/framework/source/uielement/menubarmanager.cxx
+++ b/framework/source/uielement/menubarmanager.cxx
@@ -939,7 +939,7 @@ IMPL_LINK( MenuBarManager, Deactivate, Menu *, pMenu )
     return 1;
 }
 
-IMPL_LINK( MenuBarManager, AsyncSettingsHdl, Timer*,)
+IMPL_LINK_NOARG_TYPED( MenuBarManager, AsyncSettingsHdl, Timer*, void)
 {
     SolarMutexGuard g;
     Reference< XInterface > xSelfHold(
@@ -951,8 +951,6 @@ IMPL_LINK( MenuBarManager, AsyncSettingsHdl, Timer*,)
         SetItemContainer( m_xDeferedItemContainer );
         m_xDeferedItemContainer.clear();
     }
-
-    return 0;
 }
 
 IMPL_LINK( MenuBarManager, Select, Menu *, pMenu )
diff --git a/framework/source/uielement/toolbarmanager.cxx b/framework/source/uielement/toolbarmanager.cxx
index 326d55e..5a57484 100644
--- a/framework/source/uielement/toolbarmanager.cxx
+++ b/framework/source/uielement/toolbarmanager.cxx
@@ -2100,7 +2100,7 @@ IMPL_LINK_NOARG(ToolBarManager, MiscOptionsChanged)
     return 0;
 }
 
-IMPL_LINK_NOARG(ToolBarManager, AsyncUpdateControllersHdl)
+IMPL_LINK_NOARG_TYPED(ToolBarManager, AsyncUpdateControllersHdl, Timer *, void)
 {
     // The guard must be in its own context as the we can get destroyed when our
     // own xInterface reference get destroyed!
@@ -2109,13 +2109,11 @@ IMPL_LINK_NOARG(ToolBarManager, AsyncUpdateControllersHdl)
     SolarMutexGuard g;
 
     if ( m_bDisposed )
-        return 1;
+        return;
 
     // Request to update our controllers
     m_aAsyncUpdateControllersTimer.Stop();
     UpdateControllers();
-
-    return 0;
 }
 
 IMPL_STATIC_LINK_NOINSTANCE( ToolBarManager, ExecuteHdl_Impl, ExecuteInfo*, pExecuteInfo )
diff --git a/include/sfx2/bindings.hxx b/include/sfx2/bindings.hxx
index 69549ab..164c1bd 100644
--- a/include/sfx2/bindings.hxx
+++ b/include/sfx2/bindings.hxx
@@ -131,7 +131,8 @@ private:
                             const SfxPoolItem *pItem,
                             SfxItemState eItemState );
     SAL_DLLPRIVATE SfxStateCache* GetStateCache( sal_uInt16 nId, sal_uInt16 *pPos);
-    DECL_DLLPRIVATE_LINK( NextJob_Impl, Timer * );
+    DECL_DLLPRIVATE_LINK_TYPED( NextJob, Timer *, void );
+    SAL_DLLPRIVATE bool NextJob_Impl(Timer * pTimer);
 
 public:
                      SfxBindings();
diff --git a/include/svtools/calendar.hxx b/include/svtools/calendar.hxx
index cc87c68..f1245fe 100644
--- a/include/svtools/calendar.hxx
+++ b/include/svtools/calendar.hxx
@@ -254,7 +254,7 @@ private:
 
 protected:
 
-    DECL_STATIC_LINK( Calendar, ScrollHdl, Timer *);
+    DECL_STATIC_LINK_TYPED( Calendar, ScrollHdl, Timer *, void );
 
 public:
                     Calendar( vcl::Window* pParent, WinBits nWinStyle = 0 );
diff --git a/include/svtools/grfmgr.hxx b/include/svtools/grfmgr.hxx
index 0c25f90..35d63bc 100644
--- a/include/svtools/grfmgr.hxx
+++ b/include/svtools/grfmgr.hxx
@@ -315,7 +315,7 @@ private:
                                 bool                bEnlarge
                             ) const;
 
-                            DECL_LINK( ImplAutoSwapOutHdl, void* );
+                            DECL_LINK_TYPED( ImplAutoSwapOutHdl, Timer*, void );
 
     // restart SwapOut timer; this is like touching in a cache to reset to the full timeout value
     void SVT_DLLPRIVATE     restartSwapOutTimer() const;
diff --git a/include/svtools/prnsetup.hxx b/include/svtools/prnsetup.hxx
index 33ae365..34c081b 100644
--- a/include/svtools/prnsetup.hxx
+++ b/include/svtools/prnsetup.hxx
@@ -56,7 +56,7 @@ private:
                     DECL_DLLPRIVATE_LINK( ImplPropertiesHdl, void* );
                     DECL_DLLPRIVATE_LINK( ImplOptionsHdl, void* );
                     DECL_DLLPRIVATE_LINK( ImplChangePrinterHdl, void* );
-                    DECL_DLLPRIVATE_LINK( ImplStatusHdl, void* );
+                    DECL_DLLPRIVATE_LINK_TYPED( ImplStatusHdl, Timer*, void );
 
 public:
                     PrinterSetupDialog( vcl::Window* pWindow );
diff --git a/include/svtools/valueset.hxx b/include/svtools/valueset.hxx
index 330db02..b89bc18 100644
--- a/include/svtools/valueset.hxx
+++ b/include/svtools/valueset.hxx
@@ -268,7 +268,7 @@ private:
     SVT_DLLPRIVATE void         ImplTracking( const Point& rPos, bool bRepeat );
     SVT_DLLPRIVATE void         ImplEndTracking( const Point& rPos, bool bCancel );
     DECL_DLLPRIVATE_LINK( ImplScrollHdl, ScrollBar* );
-    DECL_DLLPRIVATE_LINK( ImplTimerHdl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplTimerHdl, Timer*, void );
 
     ValueSet (const ValueSet &) SAL_DELETED_FUNCTION;
     ValueSet & operator= (const ValueSet &) SAL_DELETED_FUNCTION;
diff --git a/include/svx/formatpaintbrushctrl.hxx b/include/svx/formatpaintbrushctrl.hxx
index 363f884..49f70d4d 100644
--- a/include/svx/formatpaintbrushctrl.hxx
+++ b/include/svx/formatpaintbrushctrl.hxx
@@ -46,7 +46,7 @@ public:
     virtual void    StateChanged( sal_uInt16 nSID, SfxItemState eState,
                                               const SfxPoolItem* pState ) SAL_OVERRIDE;
 private:
-    DECL_LINK( WaitDoubleClickHdl, void* );
+    DECL_LINK_TYPED( WaitDoubleClickHdl, Timer*, void );
     void impl_executePaintBrush();
 
 private:
diff --git a/include/svx/itemwin.hxx b/include/svx/itemwin.hxx
index 8d2c1bf..7c03abd 100644
--- a/include/svx/itemwin.hxx
+++ b/include/svx/itemwin.hxx
@@ -41,7 +41,7 @@ class SvxLineBox : public LineLB
     SfxObjectShell* mpSh;
     ::com::sun::star::uno::Reference< ::com::sun::star::frame::XFrame > mxFrame;
 
-                    DECL_LINK(DelayHdl_Impl, void *);
+                    DECL_LINK_TYPED(DelayHdl_Impl, Timer *, void);
 
     void            ReleaseFocus_Impl();
 
diff --git a/include/svx/srchdlg.hxx b/include/svx/srchdlg.hxx
index ec24190..0ad7edb 100644
--- a/include/svx/srchdlg.hxx
+++ b/include/svx/srchdlg.hxx
@@ -243,7 +243,7 @@ private:
     DECL_LINK(FormatHdl_Impl, void *);
     DECL_LINK(NoFormatHdl_Impl, void *);
     DECL_LINK(AttributeHdl_Impl, void *);
-    DECL_LINK( TimeoutHdl_Impl, Timer* );
+    DECL_LINK_TYPED( TimeoutHdl_Impl, Timer*, void );
 
     void            Construct_Impl();
     void            InitControls_Impl();
diff --git a/include/svx/svdetc.hxx b/include/svx/svdetc.hxx
index 16453d8..47d1dc6 100644
--- a/include/svx/svdetc.hxx
+++ b/include/svx/svdetc.hxx
@@ -202,7 +202,7 @@ class OLEObjCache
 
     void UnloadOnDemand();
     static bool UnloadObj( SdrOle2Obj* pObj );
-    DECL_LINK( UnloadCheckHdl, AutoTimer* );
+    DECL_LINK_TYPED( UnloadCheckHdl, Timer*, void );
 
 public:
     OLEObjCache();
diff --git a/include/vcl/animate.hxx b/include/vcl/animate.hxx
index 0d89bc9..74a527f 100644
--- a/include/vcl/animate.hxx
+++ b/include/vcl/animate.hxx
@@ -229,7 +229,7 @@ private:
     bool            mbIsWaiting;
 
     SAL_DLLPRIVATE void ImplRestartTimer( sal_uLong nTimeout );
-    DECL_DLLPRIVATE_LINK( ImplTimeoutHdl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplTimeoutHdl, Timer*, void );
 
 };
 
diff --git a/include/vcl/cursor.hxx b/include/vcl/cursor.hxx
index eecbd0c..c56ef3c 100644
--- a/include/vcl/cursor.hxx
+++ b/include/vcl/cursor.hxx
@@ -25,6 +25,7 @@
 #include <vcl/dllapi.h>
 #include <vcl/vclptr.hxx>
 
+class Timer;
 struct ImplCursorData;
 namespace vcl { class Window; }
 
@@ -53,7 +54,7 @@ private:
 public:
     SAL_DLLPRIVATE void         ImplDraw();
     SAL_DLLPRIVATE void         ImplRestore();
-    DECL_DLLPRIVATE_LINK(       ImplTimerHdl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplTimerHdl, Timer*, void );
     SAL_DLLPRIVATE void         ImplShow( bool bDrawDirect = true );
     SAL_DLLPRIVATE void         ImplHide( bool bStopTimer );
     SAL_DLLPRIVATE void         ImplResume( bool bRestore = false );
diff --git a/include/vcl/edit.hxx b/include/vcl/edit.hxx
index 3eb655c..8df899a 100644
--- a/include/vcl/edit.hxx
+++ b/include/vcl/edit.hxx
@@ -99,7 +99,7 @@ private:
 
     css::uno::Reference < css::i18n::XExtendedInputSequenceChecker > mxISC;
 
-    DECL_DLLPRIVATE_LINK(      ImplUpdateDataHdl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplUpdateDataHdl, Timer*, void );
 
     SAL_DLLPRIVATE bool        ImplTruncateToMaxLen( OUString&, sal_Int32 nSelectionLen ) const;
     SAL_DLLPRIVATE void        ImplInitEditData();
diff --git a/include/vcl/menubtn.hxx b/include/vcl/menubtn.hxx
index 035e1fc..b89db35 100644
--- a/include/vcl/menubtn.hxx
+++ b/include/vcl/menubtn.hxx
@@ -45,7 +45,7 @@ private:
     Link<MenuButton *, void> maSelectHdl;
 
     SAL_DLLPRIVATE void    ImplInitMenuButtonData();
-    DECL_DLLPRIVATE_LINK(  ImplMenuTimeoutHdl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplMenuTimeoutHdl, Timer*, void );
 
                            MenuButton( const MenuButton & ) SAL_DELETED_FUNCTION;
                            MenuButton& operator=( const MenuButton & ) SAL_DELETED_FUNCTION;
diff --git a/include/vcl/scrbar.hxx b/include/vcl/scrbar.hxx
index 71bda71..18efc60 100644
--- a/include/vcl/scrbar.hxx
+++ b/include/vcl/scrbar.hxx
@@ -86,7 +86,7 @@ private:
     SAL_DLLPRIVATE void         ImplDragThumb( const Point& rMousePos );
     SAL_DLLPRIVATE Size         getCurrentCalcSize() const;
     DECL_DLLPRIVATE_LINK(       ImplTimerHdl, Timer* );
-    DECL_DLLPRIVATE_LINK(       ImplAutoTimerHdl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplAutoTimerHdl, Timer*, void );
 
 public:
     explicit        ScrollBar( vcl::Window* pParent, WinBits nStyle = WB_VERT );
diff --git a/include/vcl/seleng.hxx b/include/vcl/seleng.hxx
index 7815271..d5b9ef5 100644
--- a/include/vcl/seleng.hxx
+++ b/include/vcl/seleng.hxx
@@ -91,7 +91,7 @@ private:
     sal_uLong               nUpdateInterval;
     sal_uInt16              nLockedMods;
     SelectionEngineFlags    nFlags;
-    DECL_DLLPRIVATE_LINK( ImpWatchDog, void* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImpWatchDog, Timer*, void );
 
     inline bool         ShouldDeselect( bool bModifierKey1 ) const;
                                 // determines to deselect or not when Ctrl-key is pressed on CursorPosChanging
diff --git a/include/vcl/spin.hxx b/include/vcl/spin.hxx
index 1e40c6d..48c8b4e 100644
--- a/include/vcl/spin.hxx
+++ b/include/vcl/spin.hxx
@@ -53,7 +53,7 @@ private:
     SAL_DLLPRIVATE Rectangle* ImplFindPartRect( const Point& rPt );
     using Window::ImplInit;
     SAL_DLLPRIVATE void       ImplInit( vcl::Window* pParent, WinBits nStyle );
-    DECL_DLLPRIVATE_LINK(     ImplTimeout, Timer* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplTimeout, Timer*, void );
 
 public:
     explicit        SpinButton( vcl::Window* pParent, WinBits nStyle = 0 );
diff --git a/include/vcl/spinfld.hxx b/include/vcl/spinfld.hxx
index 8060271..bf4879b 100644
--- a/include/vcl/spinfld.hxx
+++ b/include/vcl/spinfld.hxx
@@ -51,7 +51,7 @@ protected:
     SAL_DLLPRIVATE void   ImplInit( vcl::Window* pParent, WinBits nStyle );
 
 private:
-    DECL_DLLPRIVATE_LINK( ImplTimeout, Timer* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplTimeout, Timer*, void );
     SAL_DLLPRIVATE void   ImplInitSpinFieldData();
     SAL_DLLPRIVATE void   ImplCalcButtonAreas( OutputDevice* pDev, const Size& rOutSz, Rectangle& rDDArea, Rectangle& rSpinUpArea, Rectangle& rSpinDownArea );
 
diff --git a/include/vcl/throbber.hxx b/include/vcl/throbber.hxx
index f7cbbed..2c986ad 100644
--- a/include/vcl/throbber.hxx
+++ b/include/vcl/throbber.hxx
@@ -86,7 +86,7 @@ private:
     AutoTimer   maWaitTimer;
     ImageSet    meImageSet;
 
-    DECL_LINK( TimeOutHdl, void* );
+    DECL_LINK_TYPED( TimeOutHdl, Timer*, void );
 };
 
 #endif // INCLUDED_VCL_THROBBER_HXX
diff --git a/include/vcl/timer.hxx b/include/vcl/timer.hxx
index c1779ce..458ad4e 100644
--- a/include/vcl/timer.hxx
+++ b/include/vcl/timer.hxx
@@ -26,7 +26,7 @@
 class VCL_DLLPUBLIC Timer : public Scheduler
 {
 protected:
-    Link<>          maTimeoutHdl;          // Callback Link
+    Link<Timer *, void> maTimeoutHdl;          // Callback Link
     sal_uInt64      mnTimeout;
     bool            mbAuto;
 
@@ -43,8 +43,8 @@ public:
 
     /// Make it possible to associate a callback with this timer handler
     /// of course, you can also sub-class and override 'Invoke'
-    void            SetTimeoutHdl( const Link<>& rLink ) { maTimeoutHdl = rLink; }
-    const Link<>&   GetTimeoutHdl() const { return maTimeoutHdl; }
+    void            SetTimeoutHdl( const Link<Timer *, void>& rLink ) { maTimeoutHdl = rLink; }
+    const Link<Timer *, void>& GetTimeoutHdl() const { return maTimeoutHdl; }
     void            SetTimeout( sal_uInt64 nTimeoutMs );
     sal_uInt64      GetTimeout() const { return mnTimeout; }
     virtual void    Invoke() SAL_OVERRIDE;
diff --git a/include/vcl/toolbox.hxx b/include/vcl/toolbox.hxx
index 661ea91..076f434 100644
--- a/include/vcl/toolbox.hxx
+++ b/include/vcl/toolbox.hxx
@@ -239,7 +239,7 @@ private:
     DECL_DLLPRIVATE_LINK(          ImplUpdateHdl, void* );
     DECL_DLLPRIVATE_LINK(          ImplResetAutoSizeTriesHdl, void* );
     DECL_DLLPRIVATE_LINK(          ImplCustomMenuListener, VclMenuEvent* );
-    DECL_DLLPRIVATE_LINK(          ImplDropdownLongClickHdl, void* );
+    DECL_DLLPRIVATE_LINK_TYPED(    ImplDropdownLongClickHdl, Timer*, void );
 
                                    ToolBox (const ToolBox &) SAL_DELETED_FUNCTION;
                           ToolBox& operator= (const ToolBox &) SAL_DELETED_FUNCTION;
diff --git a/include/vcl/vclmedit.hxx b/include/vcl/vclmedit.hxx
index 441edcd..12d03e1 100644
--- a/include/vcl/vclmedit.hxx
+++ b/include/vcl/vclmedit.hxx
@@ -43,7 +43,7 @@ private:
 
 protected:
 
-    DECL_LINK(      ImpUpdateDataHdl, void* );
+    DECL_LINK_TYPED( ImpUpdateDataHdl, Timer*, void );
     void            StateChanged( StateChangedType nType ) SAL_OVERRIDE;
     void            DataChanged( const DataChangedEvent& rDCEvt ) SAL_OVERRIDE;
     virtual bool    PreNotify( NotifyEvent& rNEvt ) SAL_OVERRIDE;
diff --git a/include/vcl/window.hxx b/include/vcl/window.hxx
index ccee88b..a3012e7 100644
--- a/include/vcl/window.hxx
+++ b/include/vcl/window.hxx
@@ -426,7 +426,7 @@ public:
 
     DECL_DLLPRIVATE_LINK(      ImplHandlePaintHdl, void* );
     DECL_DLLPRIVATE_LINK(      ImplGenerateMouseMoveHdl, void* );
-    DECL_DLLPRIVATE_LINK(      ImplTrackTimerHdl, Timer* );
+    DECL_DLLPRIVATE_LINK_TYPED( ImplTrackTimerHdl, Timer*, void );
     DECL_DLLPRIVATE_LINK(      ImplAsyncFocusHdl, void* );
     DECL_DLLPRIVATE_LINK(      ImplHandleResizeTimerHdl, void* );
     DECL_DLLPRIVATE_LINK(      ImplHideOwnerDrawWindowsHdl, void* );
diff --git a/reportdesign/source/ui/dlg/Navigator.cxx b/reportdesign/source/ui/dlg/Navigator.cxx
index dd4185d..d14d6ab 100644
--- a/reportdesign/source/ui/dlg/Navigator.cxx
+++ b/reportdesign/source/ui/dlg/Navigator.cxx
@@ -185,7 +185,7 @@ public:
     virtual void dispose() SAL_OVERRIDE;
 
     DECL_LINK(OnEntrySelDesel, NavigatorTree*);
-    DECL_LINK( OnDropActionTimer, void* );
+    DECL_LINK_TYPED( OnDropActionTimer, Timer*, void );
 
     virtual void _selectionChanged( const lang::EventObject& aEvent ) throw (uno::RuntimeException) SAL_OVERRIDE;
 
@@ -423,10 +423,10 @@ void NavigatorTree::StartDrag( sal_Int8 /*_nAction*/, const Point& _rPosPixel )
     }
 }
 
-IMPL_LINK_NOARG(NavigatorTree, OnDropActionTimer)
+IMPL_LINK_NOARG_TYPED(NavigatorTree, OnDropActionTimer, Timer *, void)
 {
     if (--m_nTimerCounter > 0)
-        return 0L;
+        return;
 
     switch ( m_aDropActionType )
     {
@@ -450,8 +450,6 @@ IMPL_LINK_NOARG(NavigatorTree, OnDropActionTimer)
             break;
 
     }
-
-    return 0L;
 }
 
 
diff --git a/reportdesign/source/ui/inc/dlgedfunc.hxx b/reportdesign/source/ui/inc/dlgedfunc.hxx
index 8f8938b..32639c8 100644
--- a/reportdesign/source/ui/inc/dlgedfunc.hxx
+++ b/reportdesign/source/ui/inc/dlgedfunc.hxx
@@ -53,7 +53,7 @@ protected:
     bool            m_bUiActive;
     bool            m_bShowPropertyBrowser;
 
-    DECL_LINK( ScrollTimeout, Timer * );
+    DECL_LINK_TYPED( ScrollTimeout, Timer *, void );
     void    ForceScroll( const Point& rPos );
     /** checks that no other object is overlapped.
     *
diff --git a/reportdesign/source/ui/report/dlgedfunc.cxx b/reportdesign/source/ui/report/dlgedfunc.cxx
index a1d2676..6182625 100644
--- a/reportdesign/source/ui/report/dlgedfunc.cxx
+++ b/reportdesign/source/ui/report/dlgedfunc.cxx
@@ -62,10 +62,9 @@ using namespace ::com::sun::star;
 
 
 
-IMPL_LINK( DlgEdFunc, ScrollTimeout, Timer *,  )
+IMPL_LINK_NOARG_TYPED( DlgEdFunc, ScrollTimeout, Timer *, void )
 {
     ForceScroll( m_pParent->PixelToLogic( m_pParent->GetPointerPosPixel() ) );
-    return 0;
 }
 
 
diff --git a/sc/inc/arealink.hxx b/sc/inc/arealink.hxx
index 129e884e..f55dc97 100644
--- a/sc/inc/arealink.hxx
+++ b/sc/inc/arealink.hxx
@@ -74,7 +74,7 @@ public:
     const OUString& GetSource() const       { return aSourceArea;   }
     const ScRange&  GetDestArea() const     { return aDestArea;     }
 
-    DECL_LINK( RefreshHdl, void* );
+    DECL_LINK_TYPED( RefreshHdl, Timer*, void );
     DECL_LINK( AreaEndEditHdl, void* );
 };
 
diff --git a/sc/inc/chartlock.hxx b/sc/inc/chartlock.hxx
index c41c537..1853bc9 100644
--- a/sc/inc/chartlock.hxx
+++ b/sc/inc/chartlock.hxx
@@ -66,7 +66,7 @@ private:
     Timer                               maTimer;
     std::unique_ptr< ScChartLockGuard >   mapScChartLockGuard;
 
-    DECL_LINK(TimeoutHdl, void *);
+    DECL_LINK_TYPED(TimeoutHdl, Timer *, void);
 
     ScTemporaryChartLock( const ScTemporaryChartLock& ) SAL_DELETED_FUNCTION;
 };
diff --git a/sc/inc/dbdata.hxx b/sc/inc/dbdata.hxx
index 30c1106..66b0532 100644
--- a/sc/inc/dbdata.hxx
+++ b/sc/inc/dbdata.hxx
@@ -214,7 +214,7 @@ public:
     };
 
 private:
-    Link<>      aRefreshHandler;
+    Link<Timer *, void> aRefreshHandler;
     ScDocument* pDoc;
     sal_uInt16 nEntryIndex;         ///< counter for unique indices
     NamedDBs maNamedDBs;
@@ -246,9 +246,9 @@ public:
     sal_uInt16  GetEntryIndex()                 { return nEntryIndex; }
     void    SetEntryIndex(sal_uInt16 nInd)      { nEntryIndex = nInd; }
 
-    void            SetRefreshHandler( const Link<>& rLink )
+    void            SetRefreshHandler( const Link<Timer *, void>& rLink )
                         { aRefreshHandler = rLink; }
-    const Link<>&   GetRefreshHandler() const   { return aRefreshHandler; }
+    const Link<Timer *, void>& GetRefreshHandler() const { return aRefreshHandler; }
 
     bool empty() const;
     bool operator== (const ScDBCollection& r) const;
diff --git a/sc/inc/externalrefmgr.hxx b/sc/inc/externalrefmgr.hxx
index 8f680e5..76e09e4 100644
--- a/sc/inc/externalrefmgr.hxx
+++ b/sc/inc/externalrefmgr.hxx
@@ -839,7 +839,7 @@ private:
     bool mbDocTimerEnabled:1;
 
     AutoTimer maSrcDocTimer;
-    DECL_LINK(TimeOutHdl, AutoTimer*);
+    DECL_LINK_TYPED(TimeOutHdl, Timer*, void);
 };
 
 #endif
diff --git a/sc/inc/refreshtimer.hxx b/sc/inc/refreshtimer.hxx
index 2eed983..46c48df 100644
--- a/sc/inc/refreshtimer.hxx
+++ b/sc/inc/refreshtimer.hxx
@@ -54,7 +54,7 @@ public:
     bool operator!=( const ScRefreshTimer& r ) const;
 
     void SetRefreshControl( ScRefreshTimerControl * const * pp );
-    void SetRefreshHandler( const Link<>& rLink );
+    void SetRefreshHandler( const Link<Timer *, void>& rLink );
     sal_uLong GetRefreshDelay() const;
     void StopRefreshTimer();
 
diff --git a/sc/inc/scmod.hxx b/sc/inc/scmod.hxx
index f51949b..82ea4e3 100644
--- a/sc/inc/scmod.hxx
+++ b/sc/inc/scmod.hxx
@@ -131,7 +131,7 @@ public:
 
                         // moved by the application
 
-    DECL_LINK( IdleHandler, void* );   // Timer instead of idle
+    DECL_LINK_TYPED( IdleHandler, Timer*, void ); // Timer instead of idle
     DECL_LINK( SpellTimerHdl, void* );
     DECL_LINK( CalcFieldValueHdl, EditFieldInfo* );
 
diff --git a/sc/inc/tablink.hxx b/sc/inc/tablink.hxx
index 3296c76..823bec4a 100644
--- a/sc/inc/tablink.hxx
+++ b/sc/inc/tablink.hxx
@@ -66,7 +66,7 @@ public:
 
     bool    IsUsed() const;
 
-    DECL_LINK( RefreshHdl, void* );
+    DECL_LINK_TYPED( RefreshHdl, Timer*, void );
     DECL_LINK( TableEndEditHdl, ::sfx2::SvBaseLink* );
 };
 
diff --git a/sc/source/core/tool/chartlock.cxx b/sc/source/core/tool/chartlock.cxx
index 9d07d88..82b8240 100644
--- a/sc/source/core/tool/chartlock.cxx
+++ b/sc/source/core/tool/chartlock.cxx
@@ -174,10 +174,9 @@ void ScTemporaryChartLock::AlsoLockThisChart( const Reference< frame::XModel >&
         mapScChartLockGuard->AlsoLockThisChart( xModel );
 }
 
-IMPL_LINK_NOARG(ScTemporaryChartLock, TimeoutHdl)
+IMPL_LINK_NOARG_TYPED(ScTemporaryChartLock, TimeoutHdl, Timer *, void)
 {
     mapScChartLockGuard.reset();
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/core/tool/refreshtimer.cxx b/sc/source/core/tool/refreshtimer.cxx
index 1a4bf17..ce73a0e 100644
--- a/sc/source/core/tool/refreshtimer.cxx
+++ b/sc/source/core/tool/refreshtimer.cxx
@@ -89,7 +89,7 @@ void ScRefreshTimer::SetRefreshControl( ScRefreshTimerControl * const * pp )
     ppControl = pp;
 }
 
-void ScRefreshTimer::SetRefreshHandler( const Link<>& rLink )
+void ScRefreshTimer::SetRefreshHandler( const Link<Timer *, void>& rLink )
 {
     SetTimeoutHdl( rLink );
 }
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index caf2c4a..fdfe240 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -3605,7 +3605,7 @@ void ScInputHandler::ResetDelayTimer()
     }
 }
 
-IMPL_LINK( ScInputHandler, DelayTimer, Timer*, pTimer )
+IMPL_LINK_TYPED( ScInputHandler, DelayTimer, Timer*, pTimer, void )
 {
     if ( pTimer == pDelayTimer )
     {
@@ -3640,7 +3640,6 @@ IMPL_LINK( ScInputHandler, DelayTimer, Timer*, pTimer )
             }
         }
     }
-    return 0;
 }
 
 void ScInputHandler::InputSelection( EditView* pView )
diff --git a/sc/source/ui/app/scmod.cxx b/sc/source/ui/app/scmod.cxx
index a31b528..4a5cf93 100644
--- a/sc/source/ui/app/scmod.cxx
+++ b/sc/source/ui/app/scmod.cxx
@@ -1871,12 +1871,12 @@ static void lcl_CheckNeedsRepaint( ScDocShell* pDocShell )
     }
 }
 
-IMPL_LINK_NOARG(ScModule, IdleHandler)
+IMPL_LINK_NOARG_TYPED(ScModule, IdleHandler, Timer *, void)
 {
     if ( Application::AnyInput( VCL_INPUT_MOUSEANDKEYBOARD ) )
     {
         aIdleTimer.Start(); // Timeout unchanged
-        return 0;
+        return;
     }
 
     bool bMore = false;
@@ -1940,7 +1940,6 @@ IMPL_LINK_NOARG(ScModule, IdleHandler)
 
 
     aIdleTimer.Start();
-    return 0;
 }
 
 IMPL_LINK_NOARG(ScModule, SpellTimerHdl)
diff --git a/sc/source/ui/cctrl/checklistmenu.cxx b/sc/source/ui/cctrl/checklistmenu.cxx
index c0cce30..651008c 100644
--- a/sc/source/ui/cctrl/checklistmenu.cxx
+++ b/sc/source/ui/cctrl/checklistmenu.cxx
@@ -64,10 +64,9 @@ void ScMenuFloatingWindow::SubMenuItemData::reset()
     maTimer.Stop();
 }
 
-IMPL_LINK_NOARG(ScMenuFloatingWindow::SubMenuItemData, TimeoutHdl)
+IMPL_LINK_NOARG_TYPED(ScMenuFloatingWindow::SubMenuItemData, TimeoutHdl, Timer *, void)
 {
     mpParent->handleMenuTimeout(this);
-    return 0;
 }
 
 size_t ScMenuFloatingWindow::MENU_NOT_SELECTED = 999;
diff --git a/sc/source/ui/dbgui/filtdlg.cxx b/sc/source/ui/dbgui/filtdlg.cxx
index 8ac10be..c6f2266 100644
--- a/sc/source/ui/dbgui/filtdlg.cxx
+++ b/sc/source/ui/dbgui/filtdlg.cxx
@@ -758,7 +758,7 @@ IMPL_LINK_NOARG(ScFilterDlg, MoreExpandedHdl)
     return 0;
 }
 
-IMPL_LINK( ScFilterDlg, TimeOutHdl, Timer*, _pTimer )
+IMPL_LINK_TYPED( ScFilterDlg, TimeOutHdl, Timer*, _pTimer, void )
 {
     // Check if RefInputMode is still true every 50ms
 
@@ -767,8 +767,6 @@ IMPL_LINK( ScFilterDlg, TimeOutHdl, Timer*, _pTimer )
 
     if ( pExpander->get_expanded() )
         pTimer->Start();
-
-    return 0;
 }
 
 IMPL_LINK( ScFilterDlg, LbSelectHdl, ListBox*, pLb )
diff --git a/sc/source/ui/docshell/arealink.cxx b/sc/source/ui/docshell/arealink.cxx
index 9e1fe0a..b4c33ef 100644
--- a/sc/source/ui/docshell/arealink.cxx
+++ b/sc/source/ui/docshell/arealink.cxx
@@ -482,10 +482,9 @@ bool ScAreaLink::Refresh( const OUString& rNewFile, const OUString& rNewFilter,
     return bCanDo;
 }
 
-IMPL_LINK_NOARG(ScAreaLink, RefreshHdl)
+IMPL_LINK_NOARG_TYPED(ScAreaLink, RefreshHdl, Timer *, void)
 {
-    return long(
-        Refresh( aFileName, aFilterName, aSourceArea, GetRefreshDelay() ));
+    Refresh( aFileName, aFilterName, aSourceArea, GetRefreshDelay() );
 }
 
 IMPL_LINK_NOARG(ScAreaLink, AreaEndEditHdl)
diff --git a/sc/source/ui/docshell/autostyl.cxx b/sc/source/ui/docshell/autostyl.cxx
index 4c2ea19..37f1393 100644
--- a/sc/source/ui/docshell/autostyl.cxx
+++ b/sc/source/ui/docshell/autostyl.cxx
@@ -205,14 +205,12 @@ void ScAutoStyleList::StartTimer( sal_uLong nNow )      // Sekunden
     nTimerStart = nNow;
 }
 
-IMPL_LINK_NOARG(ScAutoStyleList, TimerHdl)
+IMPL_LINK_NOARG_TYPED(ScAutoStyleList, TimerHdl, Timer *, void)
 {
     sal_uLong nNow = TimeNow();
     AdjustEntries(aTimer.GetTimeout());             // eingestellte Wartezeit
     ExecuteEntries();
     StartTimer(nNow);
-
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/docshell/datastream.cxx b/sc/source/ui/docshell/datastream.cxx
index 1aaf8e1..e2ab970 100644
--- a/sc/source/ui/docshell/datastream.cxx
+++ b/sc/source/ui/docshell/datastream.cxx
@@ -586,12 +586,10 @@ bool DataStream::ImportData()
     return mbRunning;
 }
 
-IMPL_LINK_NOARG(DataStream, ImportTimerHdl)
+IMPL_LINK_NOARG_TYPED(DataStream, ImportTimerHdl, Timer *, void)
 {
     if (ImportData())
         maImportTimer.Start();
-
-    return 0;
 }
 
 } // namespace sc
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index f958153..8ef2a76 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -976,11 +976,10 @@ bool ScDocShell::MoveTable( SCTAB nSrcTab, SCTAB nDestTab, bool bCopy, bool bRec
     return true;
 }
 
-IMPL_LINK( ScDocShell, RefreshDBDataHdl, ScRefreshTimer*, pRefreshTimer )
+IMPL_LINK_TYPED( ScDocShell, RefreshDBDataHdl, Timer*, pRefreshTimer, void )
 {
     ScDBDocFunc aFunc(*this);
 
-    bool bContinue = true;
     ScDBData* pDBData = static_cast<ScDBData*>(pRefreshTimer);
     ScImportParam aImportParam;
     pDBData->GetImportParam( aImportParam );
@@ -988,7 +987,7 @@ IMPL_LINK( ScDocShell, RefreshDBDataHdl, ScRefreshTimer*, pRefreshTimer )
     {
         ScRange aRange;
         pDBData->GetArea( aRange );
-        bContinue = aFunc.DoImport( aRange.aStart.Tab(), aImportParam, NULL, true, false ); //! Api-Flag as parameter
+        bool bContinue = aFunc.DoImport( aRange.aStart.Tab(), aImportParam, NULL, true, false ); //! Api-Flag as parameter
         // internal operations (sort, query, subtotal) only if no error
         if (bContinue)
         {
@@ -996,8 +995,6 @@ IMPL_LINK( ScDocShell, RefreshDBDataHdl, ScRefreshTimer*, pRefreshTimer )
             RefreshPivotTables(aRange);
         }
     }
-
-    return long(bContinue);
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/docshell/externalrefmgr.cxx b/sc/source/ui/docshell/externalrefmgr.cxx
index 85bcad9..5e8c66e 100644
--- a/sc/source/ui/docshell/externalrefmgr.cxx
+++ b/sc/source/ui/docshell/externalrefmgr.cxx
@@ -3036,12 +3036,10 @@ void ScExternalRefManager::Notify( SfxBroadcaster&, const SfxHint& rHint )
     }
 }
 
-IMPL_LINK(ScExternalRefManager, TimeOutHdl, AutoTimer*, pTimer)
+IMPL_LINK_TYPED(ScExternalRefManager, TimeOutHdl, Timer*, pTimer, void)
 {
     if (pTimer == &maSrcDocTimer)
         purgeStaleSrcDocument(SRCDOC_LIFE_SPAN);
-
-    return 0;
 }
 
 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/docshell/tablink.cxx b/sc/source/ui/docshell/tablink.cxx
index 4b7ff82..742b79a 100644
--- a/sc/source/ui/docshell/tablink.cxx
+++ b/sc/source/ui/docshell/tablink.cxx
@@ -414,9 +414,9 @@ bool ScTableLink::Refresh(const OUString& rNewFile, const OUString& rNewFilter,
     return true;
 }
 
-IMPL_LINK_NOARG(ScTableLink, RefreshHdl)
+IMPL_LINK_NOARG_TYPED(ScTableLink, RefreshHdl, Timer *, void)
 {
-    return long(Refresh( aFileName, aFilterName, NULL, GetRefreshDelay() ));
+    Refresh( aFileName, aFilterName, NULL, GetRefreshDelay() );
 }
 
 IMPL_LINK( ScTableLink, TableEndEditHdl, ::sfx2::SvBaseLink*, pLink )
diff --git a/sc/source/ui/drawfunc/fupoor.cxx b/sc/source/ui/drawfunc/fupoor.cxx
index ac4b978..7f1a01b 100644
--- a/sc/source/ui/drawfunc/fupoor.cxx
+++ b/sc/source/ui/drawfunc/fupoor.cxx
@@ -126,15 +126,13 @@ void FuPoor::ForceScroll(const Point& aPixPos)
 |*
 \************************************************************************/
 
-IMPL_LINK_NOARG(FuPoor, ScrollHdl)
+IMPL_LINK_NOARG_TYPED(FuPoor, ScrollHdl, Timer *, void)
 {
     Point aPosPixel = pWindow->GetPointerPosPixel();
 
     // use remembered MouseButton state to create correct
     // MouseEvents for this artificial MouseMove.
     MouseMove(MouseEvent(aPosPixel, 1, MouseEventModifiers::NONE, GetMouseButtonCode()));
-
-    return 0;
 }
 
 // moved from inline to *.cxx
@@ -201,7 +199,7 @@ sal_uInt8 FuPoor::Command(const CommandEvent& rCEvt)
 |* Timer-Handler fuer Drag&Drop
 |*
 \************************************************************************/
-IMPL_LINK_NOARG(FuPoor, DragTimerHdl)
+IMPL_LINK_NOARG_TYPED(FuPoor, DragTimerHdl, Timer *, void)
 {
     //  ExecuteDrag (und das damit verbundene Reschedule) direkt aus dem Timer
     //  aufzurufen, bringt die VCL-Timer-Verwaltung durcheinander, wenn dabei
@@ -211,7 +209,6 @@ IMPL_LINK_NOARG(FuPoor, DragTimerHdl)
     //  Darum Drag&Drop aus eigenem Event:
 
     Application::PostUserEvent( LINK( this, FuPoor, DragHdl ) );
-    return 0;
 }
 
 IMPL_LINK_NOARG(FuPoor, DragHdl)
diff --git a/sc/source/ui/inc/autostyl.hxx b/sc/source/ui/inc/autostyl.hxx
index edfc646..b1659f5 100644
--- a/sc/source/ui/inc/autostyl.hxx
+++ b/sc/source/ui/inc/autostyl.hxx
@@ -44,7 +44,7 @@ private:
     void    ExecuteEntries();
     void    AdjustEntries(sal_uLong nDiff);
     void    StartTimer(sal_uLong nNow);
-    DECL_LINK( TimerHdl, void* );
+    DECL_LINK_TYPED( TimerHdl, Timer*, void );
     DECL_LINK( InitHdl, void* );
 
 public:
diff --git a/sc/source/ui/inc/checklistmenu.hxx b/sc/source/ui/inc/checklistmenu.hxx
index 7b09474..27a297c 100644
--- a/sc/source/ui/inc/checklistmenu.hxx
+++ b/sc/source/ui/inc/checklistmenu.hxx
@@ -162,7 +162,7 @@ private:
         VclPtr<ScMenuFloatingWindow>   mpSubMenu;
         size_t                  mnMenuPos;
 
-        DECL_LINK( TimeoutHdl, void* );
+        DECL_LINK_TYPED( TimeoutHdl, Timer*, void );
 
         SubMenuItemData(ScMenuFloatingWindow* pParent);
         void reset();
diff --git a/sc/source/ui/inc/datastream.hxx b/sc/source/ui/inc/datastream.hxx
index 03baa2f..bfe1720 100644
--- a/sc/source/ui/inc/datastream.hxx
+++ b/sc/source/ui/inc/datastream.hxx
@@ -100,7 +100,7 @@ private:
     void Text2Doc();
     void Refresh();
 
-    DECL_LINK( ImportTimerHdl, void* );
+    DECL_LINK_TYPED( ImportTimerHdl, Timer*, void );
 
 private:
     ScDocShell* mpDocShell;
diff --git a/sc/source/ui/inc/docsh.hxx b/sc/source/ui/inc/docsh.hxx
index f103f12..8eba21a 100644
--- a/sc/source/ui/inc/docsh.hxx
+++ b/sc/source/ui/inc/docsh.hxx
@@ -408,7 +408,7 @@ public:
     static OUString   GetDifFilterName();
     static bool       HasAutomaticTableName( const OUString& rFilter );
 
-    DECL_LINK( RefreshDBDataHdl, ScRefreshTimer* );
+    DECL_LINK_TYPED( RefreshDBDataHdl, Timer*, void );
 
     void            BeforeXMLLoading();
     void            AfterXMLLoading(bool bRet);
diff --git a/sc/source/ui/inc/filtdlg.hxx b/sc/source/ui/inc/filtdlg.hxx
index 44d48c2..e7cdc96 100644
--- a/sc/source/ui/inc/filtdlg.hxx
+++ b/sc/source/ui/inc/filtdlg.hxx
@@ -155,7 +155,7 @@ private:
     DECL_LINK( MoreExpandedHdl, void* );
 
     // Hack: RefInput control
-    DECL_LINK( TimeOutHdl,   Timer* );
+    DECL_LINK_TYPED( TimeOutHdl, Timer*, void );
 };
 
 class ScSpecialFilterDlg : public ScAnyRefDlg
diff --git a/sc/source/ui/inc/fupoor.hxx b/sc/source/ui/inc/fupoor.hxx
index d6edc1c..6ea7f76 100644
--- a/sc/source/ui/inc/fupoor.hxx
+++ b/sc/source/ui/inc/fupoor.hxx
@@ -50,11 +50,11 @@ protected:
     VclPtr<Dialog>          pDialog;
 
     Timer           aScrollTimer;           // for Autoscrolling
-    DECL_LINK( ScrollHdl, void * );
+    DECL_LINK_TYPED( ScrollHdl, Timer *, void );
     void ForceScroll(const Point& aPixPos);
 
     Timer           aDragTimer;             // for Drag&Drop
-    DECL_LINK( DragTimerHdl, void * );
+    DECL_LINK_TYPED( DragTimerHdl, Timer *, void );
     DECL_LINK( DragHdl, void * );
     bool            bIsInDragMode;
     Point           aMDPos;                 // Position of MouseButtonDown
diff --git a/sc/source/ui/inc/inputhdl.hxx b/sc/source/ui/inc/inputhdl.hxx
index e5820b8..5b0e837 100644
--- a/sc/source/ui/inc/inputhdl.hxx
+++ b/sc/source/ui/inc/inputhdl.hxx
@@ -136,7 +136,7 @@ private:
     void            UpdateFormulaMode();
     static void     InvalidateAttribs();
     void            ImplCreateEditEngine();
-    DECL_LINK(      DelayTimer, Timer* );
+    DECL_LINK_TYPED( DelayTimer, Timer*, void );
     void            GetColData();
     void            UseColData();
     void            NextAutoEntry( bool bBack );
diff --git a/sc/source/ui/inc/instbdlg.hxx b/sc/source/ui/inc/instbdlg.hxx
index 64bc24f..8655f0d 100644
--- a/sc/source/ui/inc/instbdlg.hxx
+++ b/sc/source/ui/inc/instbdlg.hxx
@@ -96,7 +96,7 @@ private:
     DECL_LINK(SelectHdl_Impl, void *);
     DECL_LINK(CountHdl_Impl, void *);
     DECL_LINK(DoEnterHdl, void *);
-    DECL_LINK(BrowseTimeoutHdl, void *);
+    DECL_LINK_TYPED(BrowseTimeoutHdl, Timer *, void);
     DECL_LINK( DialogClosedHdl, sfx2::FileDialogHelper* );
 };
 
diff --git a/sc/source/ui/inc/notemark.hxx b/sc/source/ui/inc/notemark.hxx
index ee8af56..4daa0d3 100644
--- a/sc/source/ui/inc/notemark.hxx
+++ b/sc/source/ui/inc/notemark.hxx
@@ -49,7 +49,7 @@ private:
     SdrObject*      pObject;
     bool            bVisible;
     Point           aGridOff;
-    DECL_LINK( TimeHdl, void* );
+    DECL_LINK_TYPED( TimeHdl, Timer*, void );
 
 public:
                 ScNoteMarker( vcl::Window* pWin, vcl::Window* pRight, vcl::Window* pBottom, vcl::Window* pDiagonal,
diff --git a/sc/source/ui/inc/tabview.hxx b/sc/source/ui/inc/tabview.hxx
index 7b00360..d7e2a2d 100644
--- a/sc/source/ui/inc/tabview.hxx
+++ b/sc/source/ui/inc/tabview.hxx
@@ -177,7 +177,7 @@ private:
     void            DoHSplit(long nSplitPos);
     void            DoVSplit(long nSplitPos);
 
-    DECL_LINK(      TimerHdl, void* );
+    DECL_LINK_TYPED( TimerHdl, Timer*, void );
 
     void            UpdateVarZoom();
 
diff --git a/sc/source/ui/miscdlgs/instbdlg.cxx b/sc/source/ui/miscdlgs/instbdlg.cxx
index 27825d3..13e3c3b 100644
--- a/sc/source/ui/miscdlgs/instbdlg.cxx
+++ b/sc/source/ui/miscdlgs/instbdlg.cxx
@@ -317,11 +317,10 @@ IMPL_LINK_NOARG(ScInsertTableDlg, DoEnterHdl)
     return 0;
 }
 
-IMPL_LINK_NOARG(ScInsertTableDlg, BrowseTimeoutHdl)
+IMPL_LINK_NOARG_TYPED(ScInsertTableDlg, BrowseTimeoutHdl, Timer *, void)
 {
     bMustClose = true;
     BrowseHdl_Impl(m_pBtnBrowse);
-    return 0;
 }
 
 IMPL_LINK( ScInsertTableDlg, DialogClosedHdl, sfx2::FileDialogHelper*, _pFileDlg )
diff --git a/sc/source/ui/view/notemark.cxx b/sc/source/ui/view/notemark.cxx
index 12ed067..d04644e 100644
--- a/sc/source/ui/view/notemark.cxx
+++ b/sc/source/ui/view/notemark.cxx
@@ -71,7 +71,7 @@ ScNoteMarker::~ScNoteMarker()
     delete pModel;
 }
 
-IMPL_LINK_NOARG(ScNoteMarker, TimeHdl)
+IMPL_LINK_NOARG_TYPED(ScNoteMarker, TimeHdl, Timer *, void)
 {
     if (!bVisible)
     {
@@ -109,7 +109,6 @@ IMPL_LINK_NOARG(ScNoteMarker, TimeHdl)
     }
 
     Draw();
-    return 0;
 }
 
 static void lcl_DrawWin( SdrObject* pObject, vcl::Window* pWindow, const MapMode& rMap )
diff --git a/sc/source/ui/view/tabview.cxx b/sc/source/ui/view/tabview.cxx
index 961cf7f..a6c008e 100644
--- a/sc/source/ui/view/tabview.cxx
+++ b/sc/source/ui/view/tabview.cxx
@@ -269,12 +269,10 @@ void ScTabView::ResetTimer()
     pTimerWindow = NULL;
 }
 
-IMPL_LINK_NOARG(ScTabView, TimerHdl)
+IMPL_LINK_NOARG_TYPED(ScTabView, TimerHdl, Timer *, void)
 {
     if (pTimerWindow)
         pTimerWindow->MouseMove( aTimerMEvt );
-
-    return 0;
 }
 
 // --- Resize ---------------------------------------------------------------------
diff --git a/sd/inc/CustomAnimationEffect.hxx b/sd/inc/CustomAnimationEffect.hxx
index e415989..1250238 100644
--- a/sd/inc/CustomAnimationEffect.hxx
+++ b/sd/inc/CustomAnimationEffect.hxx
@@ -425,7 +425,7 @@ protected:
     void lockRebuilds();
     void unlockRebuilds();
 
-    DECL_LINK(onTimerHdl, void *);
+    DECL_LINK_TYPED(onTimerHdl, Timer *, void);
 
     virtual void implRebuild() SAL_OVERRIDE;
 
diff --git a/sd/inc/drawdoc.hxx b/sd/inc/drawdoc.hxx
index c9acf89..21d0bb5 100644
--- a/sd/inc/drawdoc.hxx
+++ b/sd/inc/drawdoc.hxx
@@ -190,7 +190,7 @@ private:
     SAL_DLLPRIVATE void                FillOnlineSpellingList(SdPage* pPage);
     SAL_DLLPRIVATE void                SpellObject(SdrTextObj* pObj);
 
-                        DECL_DLLPRIVATE_LINK(WorkStartupHdl, void *);
+                        DECL_DLLPRIVATE_LINK_TYPED(WorkStartupHdl, Timer *, void);
                         DECL_DLLPRIVATE_LINK(OnlineSpellingHdl, void *);
                         DECL_DLLPRIVATE_LINK(OnlineSpellEventHdl, EditStatus*);
 
diff --git a/sd/source/core/CustomAnimationEffect.cxx b/sd/source/core/CustomAnimationEffect.cxx
index 8cbbce0..4cc6db5 100644
--- a/sd/source/core/CustomAnimationEffect.cxx
+++ b/sd/source/core/CustomAnimationEffect.cxx
@@ -3416,7 +3416,7 @@ bool MainSequence::setTrigger( const CustomAnimationEffectPtr& pEffect, const ::
 
 }
 
-IMPL_LINK_NOARG(MainSequence, onTimerHdl)
+IMPL_LINK_NOARG_TYPED(MainSequence, onTimerHdl, Timer *, void)
 {
     if( mbTimerMode )
     {
@@ -3427,8 +3427,6 @@ IMPL_LINK_NOARG(MainSequence, onTimerHdl)
         reset();
         createMainSequence();
     }
-
-    return 0;
 }
 
 /** starts a timer that recreates the internal structure from the API core after 1 second */
diff --git a/sd/source/core/drawdoc2.cxx b/sd/source/core/drawdoc2.cxx
index 149378b..eb83ade 100644
--- a/sd/source/core/drawdoc2.cxx
+++ b/sd/source/core/drawdoc2.cxx
@@ -848,7 +848,7 @@ LanguageType SdDrawDocument::GetLanguage( const sal_uInt16 nId ) const
 }
 
 // Initiate WorkStartup
-IMPL_LINK_NOARG(SdDrawDocument, WorkStartupHdl)
+IMPL_LINK_NOARG_TYPED(SdDrawDocument, WorkStartupHdl, Timer *, void)
 {
     if( mpDocSh )
         mpDocSh->SetWaitCursor( true );
@@ -884,7 +884,6 @@ IMPL_LINK_NOARG(SdDrawDocument, WorkStartupHdl)
 
     if( mpDocSh )
         mpDocSh->SetWaitCursor( false );
-    return 0;
 }
 
 // When the WorkStartupTimer has been created (this only happens in
diff --git a/sd/source/ui/animations/CustomAnimationPane.cxx b/sd/source/ui/animations/CustomAnimationPane.cxx
index 43da01c..779cf72 100644
--- a/sd/source/ui/animations/CustomAnimationPane.cxx
+++ b/sd/source/ui/animations/CustomAnimationPane.cxx
@@ -2055,7 +2055,7 @@ IMPL_LINK( CustomAnimationPane, implControlHdl, Control*, pControl )
     return 0;
 }
 
-IMPL_LINK_NOARG(CustomAnimationPane, lateInitCallback)
+IMPL_LINK_NOARG_TYPED(CustomAnimationPane, lateInitCallback, Timer *, void)
 {
     // Call getPresets() to initiate the (expensive) construction of the
     // presets list.
@@ -2063,8 +2063,6 @@ IMPL_LINK_NOARG(CustomAnimationPane, lateInitCallback)
 
     // update selection and control states
     onSelectionChanged();
-
-    return 0;
 }
 
 void CustomAnimationPane::moveSelection( bool bUp )
diff --git a/sd/source/ui/animations/CustomAnimationPane.hxx b/sd/source/ui/animations/CustomAnimationPane.hxx
index 5073040..0a1b87b 100644
--- a/sd/source/ui/animations/CustomAnimationPane.hxx
+++ b/sd/source/ui/animations/CustomAnimationPane.hxx
@@ -119,7 +119,7 @@ private:
     DECL_LINK( implControlHdl, Control* );
     DECL_LINK(implPropertyHdl, void *);
     DECL_LINK(EventMultiplexerListener, tools::EventMultiplexerEvent*);
-    DECL_LINK(lateInitCallback, void *);
+    DECL_LINK_TYPED(lateInitCallback, Timer *, void);
 
 private:
     ViewShellBase& mrBase;
diff --git a/sd/source/ui/animations/SlideTransitionPane.cxx b/sd/source/ui/animations/SlideTransitionPane.cxx
index 4a0419b..0c41e09 100644
--- a/sd/source/ui/animations/SlideTransitionPane.cxx
+++ b/sd/source/ui/animations/SlideTransitionPane.cxx
@@ -1067,7 +1067,7 @@ IMPL_LINK_NOARG(SlideTransitionPane, AutoPreviewClicked)
     return 0;
 }
 
-IMPL_LINK_NOARG(SlideTransitionPane, LateInitCallback)
+IMPL_LINK_NOARG_TYPED(SlideTransitionPane, LateInitCallback, Timer *, void)
 {
     const TransitionPresetList& rPresetList = TransitionPreset::getTransitionPresetList();
     TransitionPresetList::const_iterator aIter( rPresetList.begin() );
@@ -1089,8 +1089,6 @@ IMPL_LINK_NOARG(SlideTransitionPane, LateInitCallback)
 
     updateSoundList();
     updateControls();
-
-    return 0;
 }
 
 vcl::Window * createSlideTransitionPanel( vcl::Window* pParent, ViewShellBase& rBase, const css::uno::Reference<css::frame::XFrame>& rxFrame )
diff --git a/sd/source/ui/animations/SlideTransitionPane.hxx b/sd/source/ui/animations/SlideTransitionPane.hxx
index 63e76e3..654ce2e 100644
--- a/sd/source/ui/animations/SlideTransitionPane.hxx
+++ b/sd/source/ui/animations/SlideTransitionPane.hxx
@@ -99,7 +99,7 @@ private:
     DECL_LINK( SoundListBoxSelected, void * );
     DECL_LINK( LoopSoundBoxChecked, void * );
     DECL_LINK(EventMultiplexerListener, tools::EventMultiplexerEvent*);
-    DECL_LINK(LateInitCallback, void *);
+    DECL_LINK_TYPED(LateInitCallback, Timer *, void);
 
     ViewShellBase &   mrBase;
     SdDrawDocument *  mpDrawDoc;
diff --git a/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx b/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx
index 5cc3a3a..298924f 100644
--- a/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx
+++ b/sd/source/ui/framework/configuration/ConfigurationUpdater.cxx
@@ -365,7 +365,7 @@ void ConfigurationUpdater::SetUpdateBeingProcessed (bool bValue)
     mbUpdateBeingProcessed = bValue;
 }
 
-IMPL_LINK_NOARG(ConfigurationUpdater, TimeoutHandler)
+IMPL_LINK_NOARG_TYPED(ConfigurationUpdater, TimeoutHandler, Timer *, void)
 {
     OSL_TRACE("configuration update timer");
     if ( ! mbUpdateBeingProcessed
@@ -378,7 +378,6 @@ IMPL_LINK_NOARG(ConfigurationUpdater, TimeoutHandler)
             RequestUpdate(mxRequestedConfiguration);
         }
     }
-    return 0;
 }
 
 } } // end of namespace sd::framework
diff --git a/sd/source/ui/framework/configuration/ConfigurationUpdater.hxx b/sd/source/ui/framework/configuration/ConfigurationUpdater.hxx
index 8c25b75..07f34c4 100644
--- a/sd/source/ui/framework/configuration/ConfigurationUpdater.hxx
+++ b/sd/source/ui/framework/configuration/ConfigurationUpdater.hxx
@@ -197,7 +197,7 @@ private:
     */
     void UnlockUpdates();
 
-    DECL_LINK(TimeoutHandler, void *);
+    DECL_LINK_TYPED(TimeoutHandler, Timer *, void);
 };
 
 } } // end of namespace sd::framework
diff --git a/sd/source/ui/func/fupoor.cxx b/sd/source/ui/func/fupoor.cxx
index d8da144..e0ced62 100644
--- a/sd/source/ui/func/fupoor.cxx
+++ b/sd/source/ui/func/fupoor.cxx
@@ -177,15 +177,13 @@ void FuPoor::ForceScroll(const Point& aPixPos)
 /**
  * timer handler for window scrolling
  */
-IMPL_LINK_NOARG(FuPoor, ScrollHdl)
+IMPL_LINK_NOARG_TYPED(FuPoor, ScrollHdl, Timer *, void)
 {
     Point aPnt(mpWindow->GetPointerPosPixel());
 
     // use remembered MouseButton state to create correct
     // MouseEvents for this artificial MouseMove.
     MouseMove(MouseEvent(aPnt, 1, MouseEventModifiers::NONE, GetMouseButtonCode()));
-
-    return 0;
 }
 
 /**
@@ -956,7 +954,7 @@ void FuPoor::DoPasteUnformatted()
 /**
  * Timer handler for Drag&Drop
  */
-IMPL_LINK_NOARG(FuPoor, DragHdl)
+IMPL_LINK_NOARG_TYPED(FuPoor, DragHdl, Timer *, void)
 {
     if( mpView )
     {
@@ -971,7 +969,6 @@ IMPL_LINK_NOARG(FuPoor, DragHdl)
             mpView->StartDrag( aMDPos, mpWindow );
         }
     }
-    return 0;
 }
 
 bool FuPoor::Command(const CommandEvent& rCEvt)
@@ -982,7 +979,7 @@ bool FuPoor::Command(const CommandEvent& rCEvt)
 /**
  * Timer handler for window scrolling
  */
-IMPL_LINK_NOARG(FuPoor, DelayHdl)
+IMPL_LINK_NOARG_TYPED(FuPoor, DelayHdl, Timer *, void)
 {
     aDelayToScrollTimer.Stop ();
     bScrollable = true;
@@ -992,8 +989,6 @@ IMPL_LINK_NOARG(FuPoor, DelayHdl)
     // use remembered MouseButton state to create correct
     // MouseEvents for this artificial MouseMove.
     MouseMove(MouseEvent(aPnt, 1, MouseEventModifiers::NONE, GetMouseButtonCode()));
-
-    return 0;
 }
 
 bool FuPoor::MouseButtonUp (const MouseEvent& rMEvt)
diff --git a/sd/source/ui/inc/ViewShellImplementation.hxx b/sd/source/ui/inc/ViewShellImplementation.hxx
index ad604e0..e4a7d26 100644
--- a/sd/source/ui/inc/ViewShellImplementation.hxx
+++ b/sd/source/ui/inc/ViewShellImplementation.hxx
@@ -74,7 +74,7 @@ public:
                 when IsUICaptured() returns <TRUE/>.
         */
         void Release (bool bForce = false);
-        DECL_LINK(TimeoutCallback, void *);
+        DECL_LINK_TYPED(TimeoutCallback, Timer *, void);
     private:
         ::std::unique_ptr<ToolBarManager::UpdateLock> mpLock;
         /** The timer is used both as a safe guard to unlock the update lock
diff --git a/sd/source/ui/inc/fupoor.hxx b/sd/source/ui/inc/fupoor.hxx
index e40c36c..72e88fd 100644
--- a/sd/source/ui/inc/fupoor.hxx
+++ b/sd/source/ui/inc/fupoor.hxx
@@ -126,7 +126,7 @@ protected:
         SfxRequest& rReq);
     virtual ~FuPoor();
 
-    DECL_LINK( DelayHdl, void * );
+    DECL_LINK_TYPED( DelayHdl, Timer *, void );
 
     static void ImpForceQuadratic(Rectangle& rRect);
 
@@ -160,11 +160,11 @@ protected:
     VclPtr<Dialog>             pDialog;
 
     Timer               aScrollTimer;           ///< for auto-scrolling
-    DECL_LINK( ScrollHdl, void * );
+    DECL_LINK_TYPED( ScrollHdl, Timer *, void );
     void ForceScroll(const Point& aPixPos);
 
     Timer               aDragTimer;             ///< for Drag&Drop
-    DECL_LINK(DragHdl, void *);
+    DECL_LINK_TYPED(DragHdl, Timer *, void);
     bool            bIsInDragMode;
     Point               aMDPos;                 ///< position of MouseButtonDown
 
diff --git a/sd/source/ui/inc/tools/AsynchronousCall.hxx b/sd/source/ui/inc/tools/AsynchronousCall.hxx
index 52bbb3a..a95ad7f 100644
--- a/sd/source/ui/inc/tools/AsynchronousCall.hxx
+++ b/sd/source/ui/inc/tools/AsynchronousCall.hxx
@@ -74,7 +74,7 @@ private:
         function is called the next time.  This pointer may be NULL.
     */
     ::std::unique_ptr<AsynchronousFunction> mpFunction;
-    DECL_LINK(TimerCallback,Timer*);
+    DECL_LINK_TYPED(TimerCallback,Timer*,void);
 };
 
 } } // end of namespace ::sd::tools
diff --git a/sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx b/sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx
index 1bf5ec7..7880bd7 100644
--- a/sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx
+++ b/sd/source/ui/inc/tools/TimerBasedTaskExecution.hxx
@@ -83,7 +83,7 @@ private:
     class Deleter;
     friend class Deleter;
 
-    DECL_LINK(TimerCallback, void *);
+    DECL_LINK_TYPED(TimerCallback, Timer *, void);
 };
 
 } } // end of namespace ::sd::tools
diff --git a/sd/source/ui/sidebar/MasterPageContainerQueue.cxx b/sd/source/ui/sidebar/MasterPageContainerQueue.cxx
index 4d6b782..d23c9f2 100644
--- a/sd/source/ui/sidebar/MasterPageContainerQueue.cxx
+++ b/sd/source/ui/sidebar/MasterPageContainerQueue.cxx
@@ -109,7 +109,7 @@ void MasterPageContainerQueue::LateInit()
 {
     // Set up the timer for the delayed creation of preview bitmaps.
     maDelayedPreviewCreationTimer.SetTimeout (snDelayedCreationTimeout);
-    Link<> aLink (LINK(this,MasterPageContainerQueue,DelayedPreviewCreation));
+    Link<Timer *, void> aLink (LINK(this,MasterPageContainerQueue,DelayedPreviewCreation));
     maDelayedPreviewCreationTimer.SetTimeoutHdl(aLink);
 }
 
@@ -176,7 +176,7 @@ sal_Int32 MasterPageContainerQueue::CalculatePriority (
     return nPriority;
 }
 
-IMPL_LINK(MasterPageContainerQueue, DelayedPreviewCreation, Timer*, pTimer)
+IMPL_LINK_TYPED(MasterPageContainerQueue, DelayedPreviewCreation, Timer*, pTimer, void)
 {
     bool bIsShowingFullScreenShow (false);
     bool bWaitForMoreRequests (false);
@@ -235,8 +235,6 @@ IMPL_LINK(MasterPageContainerQueue, DelayedPreviewCreation, Timer*, pTimer)
         maDelayedPreviewCreationTimer.SetTimeout(nTimeout);
         pTimer->Start();
     }
-
-    return 0;
 }
 
 bool MasterPageContainerQueue::HasRequest (MasterPageContainer::Token aToken) const
diff --git a/sd/source/ui/sidebar/MasterPageContainerQueue.hxx b/sd/source/ui/sidebar/MasterPageContainerQueue.hxx
index 150115b..b60d2c0 100644
--- a/sd/source/ui/sidebar/MasterPageContainerQueue.hxx
+++ b/sd/source/ui/sidebar/MasterPageContainerQueue.hxx
@@ -123,7 +123,7 @@ private:
     */
     static sal_Int32 CalculatePriority (const SharedMasterPageDescriptor& rDescriptor);
 
-    DECL_LINK(DelayedPreviewCreation, Timer *);
+    DECL_LINK_TYPED(DelayedPreviewCreation, Timer *, void);
 };
 
 } } // end of namespace sd::sidebar
diff --git a/sd/source/ui/slideshow/showwin.cxx b/sd/source/ui/slideshow/showwin.cxx
index 6010096..fbf685f 100644
--- a/sd/source/ui/slideshow/showwin.cxx
+++ b/sd/source/ui/slideshow/showwin.cxx
@@ -556,7 +556,7 @@ void ShowWindow::DrawEndScene()
     SetFont( aOldFont );
 }
 
-IMPL_LINK( ShowWindow, PauseTimeoutHdl, Timer*, pTimer )
+IMPL_LINK_TYPED( ShowWindow, PauseTimeoutHdl, Timer*, pTimer, void )
 {
     if( !( --mnPauseTimeout ) )
         RestartShow();
@@ -565,11 +565,9 @@ IMPL_LINK( ShowWindow, PauseTimeoutHdl, Timer*, pTimer )
         DrawPauseScene( true );
         pTimer->Start();
     }
-
-    return 0L;
 }
 
-IMPL_LINK_NOARG(ShowWindow, MouseTimeoutHdl)
+IMPL_LINK_NOARG_TYPED(ShowWindow, MouseTimeoutHdl, Timer *, void)
 {
     if( mbMouseCursorHidden )
     {
@@ -583,7 +581,6 @@ IMPL_LINK_NOARG(ShowWindow, MouseTimeoutHdl)
         ShowPointer( false );
         mbMouseCursorHidden = true;
     }
-    return 0L;
 }
 
 IMPL_LINK( ShowWindow, EventHdl, VclWindowEvent*, pEvent )
diff --git a/sd/source/ui/slideshow/showwindow.hxx b/sd/source/ui/slideshow/showwindow.hxx
index ce524c8..a9a5eab 100644
--- a/sd/source/ui/slideshow/showwindow.hxx
+++ b/sd/source/ui/slideshow/showwindow.hxx
@@ -107,8 +107,8 @@ private:
     bool            mbMouseCursorHidden;
     sal_uInt64      mnFirstMouseMove;
 
-                    DECL_LINK( PauseTimeoutHdl, Timer* pTimer );
-                    DECL_LINK(MouseTimeoutHdl, void *);
+                    DECL_LINK_TYPED( PauseTimeoutHdl, Timer*, void );
+                    DECL_LINK_TYPED(MouseTimeoutHdl, Timer *, void);
                     DECL_LINK( EventHdl, VclWindowEvent* pEvent );
 
     ::rtl::Reference< SlideshowImpl > mxController;
diff --git a/sd/source/ui/slideshow/slideshowimpl.cxx b/sd/source/ui/slideshow/slideshowimpl.cxx
index 075d16e..f03a0e3 100644
--- a/sd/source/ui/slideshow/slideshowimpl.cxx
+++ b/sd/source/ui/slideshow/slideshowimpl.cxx
@@ -1775,19 +1775,18 @@ void SlideshowImpl::startUpdateTimer()
     This is used to unfreeze user input that was disabled after
     slide change to skip input that was buffered during slide
     transition preparation */
-IMPL_LINK_NOARG(SlideshowImpl, ReadyForNextInputHdl)
+IMPL_LINK_NOARG_TYPED(SlideshowImpl, ReadyForNextInputHdl, Timer *, void)
 {
     mbInputFreeze = false;
-    return 0;
 }
 
 /** if I catch someone someday who calls this method by hand
     and not by using the timer, I will personaly punish this
     person seriously, even if this person is me.
 */
-IMPL_LINK_NOARG(SlideshowImpl, updateHdl)
+IMPL_LINK_NOARG_TYPED(SlideshowImpl, updateHdl, Timer *, void)
 {
-    return updateSlideShow();
+    updateSlideShow();
 }
 
 IMPL_LINK_NOARG(SlideshowImpl, PostYieldListener)
@@ -2676,7 +2675,7 @@ void SAL_CALL SlideshowImpl::deactivate() throw (RuntimeException, std::exceptio
     }
 }
 
-IMPL_LINK_NOARG(SlideshowImpl, deactivateHdl)
+IMPL_LINK_NOARG_TYPED(SlideshowImpl, deactivateHdl, Timer *, void)
 {
     if( mbActive && mxShow.is() )
     {
@@ -2695,7 +2694,6 @@ IMPL_LINK_NOARG(SlideshowImpl, deactivateHdl)
             }
         }
     }
-    return 0;
 }
 
 sal_Bool SAL_CALL SlideshowImpl::isActive() throw (RuntimeException, std::exception)
diff --git a/sd/source/ui/slideshow/slideshowimpl.hxx b/sd/source/ui/slideshow/slideshowimpl.hxx
index 2840465..41270ad 100644
--- a/sd/source/ui/slideshow/slideshowimpl.hxx
+++ b/sd/source/ui/slideshow/slideshowimpl.hxx
@@ -274,13 +274,13 @@ private:
 
     void setActiveXToolbarsVisible( bool bVisible );
 
-    DECL_LINK(updateHdl, void *);
+    DECL_LINK_TYPED(updateHdl, Timer *, void);
     DECL_LINK( PostYieldListener, void* );
-    DECL_LINK(ReadyForNextInputHdl, void *);
+    DECL_LINK_TYPED(ReadyForNextInputHdl, Timer *, void);
     DECL_LINK( endPresentationHdl, void* );
     DECL_LINK( ContextMenuSelectHdl, Menu * );
     DECL_LINK( ContextMenuHdl, void* );
-    DECL_LINK(deactivateHdl, void *);
+    DECL_LINK_TYPED(deactivateHdl, Timer *, void);
     DECL_LINK( EventListenerHdl, VclSimpleEvent* );
 
     // helper
diff --git a/sd/source/ui/slidesorter/cache/SlsCacheCompactor.cxx b/sd/source/ui/slidesorter/cache/SlsCacheCompactor.cxx
index 55595e1..ea0dc48d 100644
--- a/sd/source/ui/slidesorter/cache/SlsCacheCompactor.cxx
+++ b/sd/source/ui/slidesorter/cache/SlsCacheCompactor.cxx
@@ -132,7 +132,7 @@ CacheCompactor::CacheCompactor(
 
 }
 
-IMPL_LINK_NOARG(CacheCompactor, CompactionCallback)
+IMPL_LINK_NOARG_TYPED(CacheCompactor, CompactionCallback, Timer *, void)
 {
     mbIsCompactionRunning = true;
 
@@ -148,7 +148,6 @@ IMPL_LINK_NOARG(CacheCompactor, CompactionCallback)
     }
 
     mbIsCompactionRunning = false;
-    return 1;
 }
 
 } } } // end of namespace ::sd::slidesorter::cache
diff --git a/sd/source/ui/slidesorter/cache/SlsCacheCompactor.hxx b/sd/source/ui/slidesorter/cache/SlsCacheCompactor.hxx
index 481a921..783afec 100644
--- a/sd/source/ui/slidesorter/cache/SlsCacheCompactor.hxx
+++ b/sd/source/ui/slidesorter/cache/SlsCacheCompactor.hxx
@@ -80,7 +80,7 @@ private:
     */
     Timer maCompactionTimer;
     bool mbIsCompactionRunning;
-    DECL_LINK(CompactionCallback, void *);
+    DECL_LINK_TYPED(CompactionCallback, Timer *, void);
 };
 
 } } } // end of namespace ::sd::slidesorter::cache
diff --git a/sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx b/sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx
index 6baa2ef..876dfcf 100644
--- a/sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx
+++ b/sd/source/ui/slidesorter/cache/SlsCacheConfiguration.cxx
@@ -137,12 +137,11 @@ Any CacheConfiguration::GetValue (const OUString& rName)
     return aResult;
 }
 
-IMPL_LINK_NOARG(CacheConfiguration, TimerCallback)
+IMPL_LINK_NOARG_TYPED(CacheConfiguration, TimerCallback, Timer *, void)
 {
     CacheConfigSharedPtr &rInstancePtr = theInstance::get();
     // Release out reference to the instance.
     rInstancePtr.reset();
-    return 0;
 }
 
 } } } // end of namespace ::sd::slidesorter::cache

... etc. - the rest is truncated


More information about the Libreoffice-commits mailing list