[Libreoffice-commits] core.git: basctl/source cui/source dbaccess/source extensions/source fpicker/source include/sfx2 include/svtools include/svx include/vcl reportdesign/source sc/source sd/source sfx2/inc sfx2/source starmath/inc starmath/source svtools/source svx/source sw/source vcl/source

Noel Grandin noel at peralex.com
Thu Oct 15 00:59:08 PDT 2015


 basctl/source/basicide/brkdlg.cxx                 |    6 +---
 basctl/source/basicide/brkdlg.hxx                 |    2 -
 cui/source/dialogs/cuigaldlg.cxx                  |    4 ---
 cui/source/dialogs/thesdlg.cxx                    |   10 +++----
 cui/source/inc/chardlg.hxx                        |    5 ++-
 cui/source/inc/cuigaldlg.hxx                      |    2 -
 cui/source/inc/tabstpge.hxx                       |    2 -
 cui/source/inc/thesdlg.hxx                        |    2 -
 cui/source/options/fontsubs.cxx                   |    9 +++++--
 cui/source/options/fontsubs.hxx                   |    1 
 cui/source/tabpages/chardlg.cxx                   |    6 +++-
 cui/source/tabpages/tabstpge.cxx                  |    3 --
 dbaccess/source/ui/dlg/TextConnectionHelper.cxx   |    9 +++++--
 dbaccess/source/ui/dlg/TextConnectionHelper.hxx   |    1 
 dbaccess/source/ui/dlg/dbfindex.cxx               |    9 +++----
 dbaccess/source/ui/dlg/dbfindex.hxx               |    2 -
 extensions/source/dbpilots/listcombowizard.cxx    |    8 ++++--
 extensions/source/dbpilots/listcombowizard.hxx    |    1 
 extensions/source/propctrlr/standardcontrol.cxx   |    3 --
 extensions/source/propctrlr/standardcontrol.hxx   |    2 -
 fpicker/source/office/iodlg.cxx                   |    4 ---
 fpicker/source/office/iodlg.hxx                   |    2 -
 include/sfx2/newstyle.hxx                         |    2 -
 include/svtools/addresstemplate.hxx               |    2 -
 include/svx/imapdlg.hxx                           |    1 
 include/vcl/combobox.hxx                          |    8 +++---
 reportdesign/source/ui/dlg/GroupsSorting.cxx      |    5 +--
 sc/source/ui/dbgui/scuiasciiopt.cxx               |    8 ++++--
 sc/source/ui/inc/datastreamdlg.hxx                |    4 ++-
 sc/source/ui/inc/linkarea.hxx                     |    2 -
 sc/source/ui/inc/scuiasciiopt.hxx                 |    1 
 sc/source/ui/miscdlgs/datastreamdlg.cxx           |    6 +++-
 sc/source/ui/miscdlgs/linkarea.cxx                |    7 ++---
 sd/source/ui/animations/CustomAnimationDialog.cxx |   11 +++++++-
 sfx2/inc/inettbc.hxx                              |    2 -
 sfx2/source/appl/newhelp.cxx                      |   23 ++++++++++--------
 sfx2/source/appl/newhelp.hxx                      |   13 +++++-----
 sfx2/source/dialog/newstyle.cxx                   |    8 ++----
 sfx2/source/inet/inettbc.cxx                      |    4 ---
 starmath/inc/dialog.hxx                           |    8 +++---
 starmath/source/dialog.cxx                        |   28 +++++++++-------------
 svtools/source/control/inettbc.cxx                |    2 -
 svtools/source/dialogs/addresstemplate.cxx        |    5 +--
 svx/source/dialog/imapdlg.cxx                     |    7 ++++-
 sw/source/ui/config/optload.cxx                   |    3 --
 sw/source/ui/dbui/mmaddressblockpage.cxx          |    6 +++-
 sw/source/ui/dbui/mmaddressblockpage.hxx          |    1 
 sw/source/ui/dbui/mmgreetingspage.cxx             |    9 ++++---
 sw/source/ui/dbui/mmgreetingspage.hxx             |    1 
 sw/source/ui/frmdlg/cption.cxx                    |    6 +---
 sw/source/ui/index/swuiidxmrk.cxx                 |    7 ++---
 sw/source/uibase/inc/cption.hxx                   |    2 -
 sw/source/uibase/inc/optload.hxx                  |    2 -
 vcl/source/control/combobox.cxx                   |   16 ++++++------
 54 files changed, 168 insertions(+), 135 deletions(-)

New commits:
commit 99b21cc9f3f32284061be255f437b2954a7aada0
Author: Noel Grandin <noel at peralex.com>
Date:   Tue Oct 13 13:17:30 2015 +0200

    convert Link<> to typed
    
    Change-Id: I6c55c74d47b13149c2fa210bb9de4e8c430c57cc

diff --git a/basctl/source/basicide/brkdlg.cxx b/basctl/source/basicide/brkdlg.cxx
index b249c6c..81ebd05 100644
--- a/basctl/source/basicide/brkdlg.cxx
+++ b/basctl/source/basicide/brkdlg.cxx
@@ -158,18 +158,16 @@ IMPL_LINK_TYPED( BreakPointDialog, CheckBoxHdl, Button *, pButton, void )
         pBrk->bEnabled = pChkBx->IsChecked();
 }
 
-IMPL_LINK( BreakPointDialog, ComboBoxHighlightHdl, ComboBox *, pBox )
+IMPL_LINK_TYPED( BreakPointDialog, ComboBoxHighlightHdl, ComboBox&, rBox, void )
 {
     m_pNewButton->Disable();
     m_pOKButton->Enable();
     m_pDelButton->Enable();
 
-    sal_Int32 nEntry = pBox->GetEntryPos( pBox->GetText() );
+    sal_Int32 nEntry = rBox.GetEntryPos( rBox.GetText() );
     BreakPoint* pBrk = m_aModifiedBreakPointList.at( nEntry );
     DBG_ASSERT( pBrk, "Kein passender Breakpoint zur Liste ?" );
     UpdateFields( pBrk );
-
-    return 0;
 }
 
 
diff --git a/basctl/source/basicide/brkdlg.hxx b/basctl/source/basicide/brkdlg.hxx
index 58acdac..9ae8e36 100644
--- a/basctl/source/basicide/brkdlg.hxx
+++ b/basctl/source/basicide/brkdlg.hxx
@@ -44,7 +44,7 @@ private:
 protected:
     void            CheckButtons();
     DECL_LINK_TYPED( CheckBoxHdl, Button*, void );
-    DECL_LINK( ComboBoxHighlightHdl, ComboBox * );
+    DECL_LINK_TYPED( ComboBoxHighlightHdl, ComboBox&, void );
     DECL_LINK( EditModifyHdl, Edit * );
     DECL_LINK_TYPED( ButtonHdl, Button*, void );
     void            UpdateFields( BreakPoint* pBrk );
diff --git a/cui/source/dialogs/cuigaldlg.cxx b/cui/source/dialogs/cuigaldlg.cxx
index 3ed9f44..e73e117 100644
--- a/cui/source/dialogs/cuigaldlg.cxx
+++ b/cui/source/dialogs/cuigaldlg.cxx
@@ -999,7 +999,7 @@ void TPGalleryThemeProperties::FillFilterList()
 
 
 
-IMPL_LINK_NOARG(TPGalleryThemeProperties, SelectFileTypeHdl)
+IMPL_LINK_NOARG_TYPED(TPGalleryThemeProperties, SelectFileTypeHdl, ComboBox&, void)
 {
     OUString aText( m_pCbbFileType->GetText() );
 
@@ -1010,8 +1010,6 @@ IMPL_LINK_NOARG(TPGalleryThemeProperties, SelectFileTypeHdl)
         if( ScopedVclPtrInstance<MessageDialog>::Create( this, "QueryUpdateFileListDialog","cui/ui/queryupdategalleryfilelistdialog.ui" )->Execute() == RET_YES )
             SearchFiles();
     }
-
-    return 0L;
 }
 
 
diff --git a/cui/source/dialogs/thesdlg.cxx b/cui/source/dialogs/thesdlg.cxx
index 495d46f..b06ec7d 100644
--- a/cui/source/dialogs/thesdlg.cxx
+++ b/cui/source/dialogs/thesdlg.cxx
@@ -381,18 +381,16 @@ void SvxThesaurusDialog::LookUp_Impl()
     m_pLeftBtn->Enable( aLookUpHistory.size() > 1 );
 }
 
-IMPL_LINK( SvxThesaurusDialog, WordSelectHdl_Impl, ComboBox *, pBox )
+IMPL_LINK_TYPED( SvxThesaurusDialog, WordSelectHdl_Impl, ComboBox&, rBox, void )
 {
-    if (pBox && !m_pWordCB->IsTravelSelect())  // act only upon return key and not when traveling with cursor keys
+    if (!m_pWordCB->IsTravelSelect())  // act only upon return key and not when traveling with cursor keys
     {
-        const sal_Int32 nPos = pBox->GetSelectEntryPos();
-        OUString aStr( pBox->GetEntry( nPos ) );
+        const sal_Int32 nPos = rBox.GetSelectEntryPos();
+        OUString aStr( rBox.GetEntry( nPos ) );
         aStr = linguistic::GetThesaurusReplaceText( aStr );
         m_pWordCB->SetText( aStr );
         LookUp_Impl();
     }
-
-    return 0;
 }
 
 IMPL_LINK_TYPED( SvxThesaurusDialog, AlternativesSelectHdl_Impl, SvTreeListBox *, pBox, void )
diff --git a/cui/source/inc/chardlg.hxx b/cui/source/inc/chardlg.hxx
index aa47ede..a2e8746 100644
--- a/cui/source/inc/chardlg.hxx
+++ b/cui/source/inc/chardlg.hxx
@@ -132,9 +132,10 @@ private:
     void                Reset_Impl( const SfxItemSet& rSet, LanguageGroup eLangGrp );
     bool                FillItemSet_Impl( SfxItemSet& rSet, LanguageGroup eLangGrp );
 
-    DECL_LINK_TYPED(UpdateHdl_Impl, Idle *, void);
+    DECL_LINK_TYPED( UpdateHdl_Impl, Idle *, void );
     DECL_LINK(          FontModifyHdl_Impl, void* );
-    DECL_LINK_TYPED(FontModifyListBoxHdl_Impl, ListBox&, void);
+    DECL_LINK_TYPED( FontModifyListBoxHdl_Impl, ListBox&, void );
+    DECL_LINK_TYPED( FontModifyComboBoxHdl_Impl, ComboBox&, void );
 
 public:
     using SfxTabPage::ActivatePage;
diff --git a/cui/source/inc/cuigaldlg.hxx b/cui/source/inc/cuigaldlg.hxx
index b777a36..1e39b37 100644
--- a/cui/source/inc/cuigaldlg.hxx
+++ b/cui/source/inc/cuigaldlg.hxx
@@ -283,7 +283,7 @@ class TPGalleryThemeProperties : public SfxTabPage
                         DECL_LINK_TYPED( ClickTakeHdl, Button*, void );
                         DECL_LINK_TYPED( ClickTakeAllHdl, Button*, void );
                         DECL_LINK_TYPED( SelectFoundHdl, ListBox&, void );
-                        DECL_LINK( SelectFileTypeHdl, void* );
+                        DECL_LINK_TYPED( SelectFileTypeHdl, ComboBox&, void );
                         DECL_LINK_TYPED( DClickFoundHdl, ListBox&, void );
                         DECL_LINK_TYPED( PreviewTimerHdl, Timer*, void );
                         DECL_LINK_TYPED( EndSearchProgressHdl, Dialog&, void );
diff --git a/cui/source/inc/tabstpge.hxx b/cui/source/inc/tabstpge.hxx
index efecaa6..0aede59 100644
--- a/cui/source/inc/tabstpge.hxx
+++ b/cui/source/inc/tabstpge.hxx
@@ -114,7 +114,7 @@ private:
     DECL_LINK_TYPED( FillTypeCheckHdl_Impl, Button*, void );
     DECL_LINK_TYPED( TabTypeCheckHdl_Impl, Button*, void );
 
-    DECL_LINK(SelectHdl_Impl, void *);
+    DECL_LINK_TYPED( SelectHdl_Impl, ComboBox&, void );
     DECL_LINK(ModifyHdl_Impl, void *);
     DECL_LINK_TYPED( GetFillCharHdl_Impl, Control&, void );
     DECL_LINK_TYPED( GetDezCharHdl_Impl, Control&, void );
diff --git a/cui/source/inc/thesdlg.hxx b/cui/source/inc/thesdlg.hxx
index 78146c3..82f2332 100644
--- a/cui/source/inc/thesdlg.hxx
+++ b/cui/source/inc/thesdlg.hxx
@@ -145,7 +145,7 @@ public:
     DECL_LINK_TYPED( ReplaceBtnHdl_Impl, Button *, void );
     DECL_LINK_TYPED( LeftBtnHdl_Impl, Button *, void );
     DECL_LINK_TYPED( LanguageHdl_Impl, ListBox&, void );
-    DECL_LINK( WordSelectHdl_Impl, ComboBox * );
+    DECL_LINK_TYPED( WordSelectHdl_Impl, ComboBox&, void );
     DECL_LINK_TYPED( AlternativesSelectHdl_Impl, SvTreeListBox*, void );
     DECL_LINK_TYPED( AlternativesDoubleClickHdl_Impl, SvTreeListBox*, bool );
 
diff --git a/cui/source/options/fontsubs.cxx b/cui/source/options/fontsubs.cxx
index 1967ab3..9b65372 100644
--- a/cui/source/options/fontsubs.cxx
+++ b/cui/source/options/fontsubs.cxx
@@ -89,13 +89,14 @@ SvxFontSubstTabPage::SvxFontSubstTabPage( vcl::Window* pParent,
 
     aTextColor = m_pCheckLB->GetTextColor();
     Link<> aLink(LINK(this, SvxFontSubstTabPage, SelectHdl));
+    Link<ComboBox&,void> aLink2(LINK(this, SvxFontSubstTabPage, SelectComboBoxHdl));
     Link<Button*,void> aClickLink(LINK(this, SvxFontSubstTabPage, ClickHdl));
 
     m_pCheckLB->SetSelectHdl(LINK(this, SvxFontSubstTabPage, TreeListBoxSelectHdl));
     m_pUseTableCB->SetClickHdl(aClickLink);
-    m_pFont1CB->SetSelectHdl(aLink);
+    m_pFont1CB->SetSelectHdl(aLink2);
     m_pFont1CB->SetModifyHdl(aLink);
-    m_pFont2CB->SetSelectHdl(aLink);
+    m_pFont2CB->SetSelectHdl(aLink2);
     m_pFont2CB->SetModifyHdl(aLink);
     m_pApply->SetClickHdl(aClickLink);
     m_pDelete->SetClickHdl(aClickLink);
@@ -265,6 +266,10 @@ IMPL_LINK_TYPED(SvxFontSubstTabPage, TreeListBoxSelectHdl, SvTreeListBox*, pButt
 {
     SelectHdl(pButton);
 }
+IMPL_LINK_TYPED(SvxFontSubstTabPage, SelectComboBoxHdl, ComboBox&, rBox, void)
+{
+    SelectHdl(&rBox);
+}
 IMPL_LINK(SvxFontSubstTabPage, SelectHdl, vcl::Window*, pWin)
 {
     if (pWin == m_pApply || pWin == m_pDelete)
diff --git a/cui/source/options/fontsubs.hxx b/cui/source/options/fontsubs.hxx
index db822b3..7615d94 100644
--- a/cui/source/options/fontsubs.hxx
+++ b/cui/source/options/fontsubs.hxx
@@ -82,6 +82,7 @@ class SvxFontSubstTabPage : public SfxTabPage
     SvLBoxButtonData*   pCheckButtonData;
 
     DECL_LINK(SelectHdl, vcl::Window *);
+    DECL_LINK_TYPED(SelectComboBoxHdl, ComboBox&, void);
     DECL_LINK_TYPED(ClickHdl, Button*, void);
     DECL_LINK_TYPED(TreeListBoxSelectHdl, SvTreeListBox*, void);
     DECL_LINK_TYPED(NonPropFontsHdl, Button*, void);
diff --git a/cui/source/tabpages/chardlg.cxx b/cui/source/tabpages/chardlg.cxx
index 4519302..7efc88e 100644
--- a/cui/source/tabpages/chardlg.cxx
+++ b/cui/source/tabpages/chardlg.cxx
@@ -427,7 +427,7 @@ void SvxCharNamePage::Initialize()
     m_pWestFontNameLB->SetModifyHdl( aLink );
     m_pWestFontStyleLB->SetModifyHdl( aLink );
     m_pWestFontSizeLB->SetModifyHdl( aLink );
-    m_pWestFontLanguageLB->SetSelectHdl( aLink );
+    m_pWestFontLanguageLB->SetSelectHdl( LINK( this, SvxCharNamePage, FontModifyComboBoxHdl_Impl ) );
     m_pEastFontNameLB->SetModifyHdl( aLink );
     m_pEastFontStyleLB->SetModifyHdl( aLink );
     m_pEastFontSizeLB->SetModifyHdl( aLink );
@@ -1183,6 +1183,10 @@ IMPL_LINK_NOARG_TYPED(SvxCharNamePage, UpdateHdl_Impl, Idle *, void)
 
 
 
+IMPL_LINK_TYPED( SvxCharNamePage, FontModifyComboBoxHdl_Impl, ComboBox&, rBox, void )
+{
+    FontModifyHdl_Impl(&rBox);
+}
 IMPL_LINK_TYPED( SvxCharNamePage, FontModifyListBoxHdl_Impl, ListBox&, rBox, void )
 {
     FontModifyHdl_Impl(&rBox);
diff --git a/cui/source/tabpages/tabstpge.cxx b/cui/source/tabpages/tabstpge.cxx
index 6ed9f87..0668439 100644
--- a/cui/source/tabpages/tabstpge.cxx
+++ b/cui/source/tabpages/tabstpge.cxx
@@ -657,7 +657,7 @@ IMPL_LINK_TYPED( SvxTabulatorTabPage, GetDezCharHdl_Impl, Control&, rControl, vo
     }
 }
 
-IMPL_LINK_NOARG(SvxTabulatorTabPage, SelectHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvxTabulatorTabPage, SelectHdl_Impl, ComboBox&, void)
 {
     sal_Int32 nPos = m_pTabBox->GetValuePos( m_pTabBox->GetValue( eDefUnit ), eDefUnit );
     if ( nPos != COMBOBOX_ENTRY_NOTFOUND )
@@ -666,7 +666,6 @@ IMPL_LINK_NOARG(SvxTabulatorTabPage, SelectHdl_Impl)
         m_pNewBtn->Disable();
         SetFillAndTabType_Impl();
     }
-    return 0;
 }
 
 IMPL_LINK_NOARG(SvxTabulatorTabPage, ModifyHdl_Impl)
diff --git a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx b/dbaccess/source/ui/dlg/TextConnectionHelper.cxx
index bbe4db6..8c5ea57 100644
--- a/dbaccess/source/ui/dlg/TextConnectionHelper.cxx
+++ b/dbaccess/source/ui/dlg/TextConnectionHelper.cxx
@@ -96,9 +96,9 @@ namespace dbaui
 
         // set the modify handlers
         m_pFieldSeparator->SetUpdateDataHdl(getControlModifiedLink());
-        m_pFieldSeparator->SetSelectHdl(getControlModifiedLink());
+        m_pFieldSeparator->SetSelectHdl(LINK(this, OTextConnectionHelper, ComboBoxSelectHdl));
         m_pTextSeparator->SetUpdateDataHdl(getControlModifiedLink());
-        m_pTextSeparator->SetSelectHdl(getControlModifiedLink());
+        m_pTextSeparator->SetSelectHdl(LINK(this, OTextConnectionHelper, ComboBoxSelectHdl));
         m_pCharSet->SetSelectHdl(LINK(this, OTextConnectionHelper, CharsetSelectHdl));
 
         m_pFieldSeparator->SetModifyHdl(getControlModifiedLink());
@@ -156,6 +156,11 @@ namespace dbaui
         getControlModifiedLink().Call(&rListBox);
     }
 
+    IMPL_LINK_TYPED(OTextConnectionHelper, ComboBoxSelectHdl, ComboBox&, rBox, void)
+    {
+        getControlModifiedLink().Call(&rBox);
+    }
+
     OTextConnectionHelper::~OTextConnectionHelper()
     {
         disposeOnce();
diff --git a/dbaccess/source/ui/dlg/TextConnectionHelper.hxx b/dbaccess/source/ui/dlg/TextConnectionHelper.hxx
index 75fa11b..752ccbf 100644
--- a/dbaccess/source/ui/dlg/TextConnectionHelper.hxx
+++ b/dbaccess/source/ui/dlg/TextConnectionHelper.hxx
@@ -86,6 +86,7 @@ namespace dbaui
         DECL_LINK(OnControlModified,Control*);
         DECL_LINK(OnEditModified,Edit*);
         DECL_LINK_TYPED(CharsetSelectHdl,ListBox&,void);
+        DECL_LINK_TYPED(ComboBoxSelectHdl,ComboBox&,void);
 
     private:
         OUString    GetSeparator( const ComboBox& rBox, const OUString& rList );
diff --git a/dbaccess/source/ui/dlg/dbfindex.cxx b/dbaccess/source/ui/dlg/dbfindex.cxx
index 26fe737..8665b97 100644
--- a/dbaccess/source/ui/dlg/dbfindex.cxx
+++ b/dbaccess/source/ui/dlg/dbfindex.cxx
@@ -248,12 +248,12 @@ IMPL_LINK_NOARG_TYPED( ODbaseIndexDialog, OnListEntrySelected, ListBox&, void )
     checkButtons();
 }
 
-IMPL_LINK( ODbaseIndexDialog, TableSelectHdl, ComboBox*, pComboBox )
+IMPL_LINK_TYPED( ODbaseIndexDialog, TableSelectHdl, ComboBox&, rComboBox, void )
 {
     // search the table
     TableInfoList::iterator aTablePos;
-    if (!GetTable(pComboBox->GetText(), aTablePos))
-        return 0L;
+    if (!GetTable(rComboBox.GetText(), aTablePos))
+        return;
 
     // fill the listbox for the indexes
     m_pLB_TableIndexes->Clear();
@@ -267,7 +267,6 @@ IMPL_LINK( ODbaseIndexDialog, TableSelectHdl, ComboBox*, pComboBox )
         m_pLB_TableIndexes->SelectEntryPos(0);
 
     checkButtons();
-    return 0;
 }
 
 void ODbaseIndexDialog::Init()
@@ -414,7 +413,7 @@ void ODbaseIndexDialog::SetCtrls()
     if( m_aFreeIndexList.size() )
         m_pLB_FreeIndexes->SelectEntryPos( 0 );
 
-    TableSelectHdl(m_pCB_Tables);
+    TableSelectHdl(*m_pCB_Tables);
     checkButtons();
 }
 
diff --git a/dbaccess/source/ui/dlg/dbfindex.hxx b/dbaccess/source/ui/dlg/dbfindex.hxx
index 8afac21..e7fcbd7 100644
--- a/dbaccess/source/ui/dlg/dbfindex.hxx
+++ b/dbaccess/source/ui/dlg/dbfindex.hxx
@@ -83,7 +83,7 @@ protected:
     VclPtr<PushButton>     m_pAddAll;
     VclPtr<PushButton>     m_pRemoveAll;
 
-    DECL_LINK( TableSelectHdl, ComboBox* );
+    DECL_LINK_TYPED( TableSelectHdl, ComboBox&, void );
     DECL_LINK_TYPED( AddClickHdl, Button*, void );
     DECL_LINK_TYPED( RemoveClickHdl, Button*, void );
     DECL_LINK_TYPED( AddAllClickHdl, Button*, void );
diff --git a/extensions/source/dbpilots/listcombowizard.cxx b/extensions/source/dbpilots/listcombowizard.cxx
index cca2309..2d888a2 100644
--- a/extensions/source/dbpilots/listcombowizard.cxx
+++ b/extensions/source/dbpilots/listcombowizard.cxx
@@ -433,8 +433,8 @@ namespace dbp
 
         m_pValueListField->SetModifyHdl(LINK(this, OLinkFieldsPage, OnSelectionModified));
         m_pTableField->SetModifyHdl(LINK(this, OLinkFieldsPage, OnSelectionModified));
-        m_pValueListField->SetSelectHdl(LINK(this, OLinkFieldsPage, OnSelectionModified));
-        m_pTableField->SetSelectHdl(LINK(this, OLinkFieldsPage, OnSelectionModified));
+        m_pValueListField->SetSelectHdl(LINK(this, OLinkFieldsPage, OnSelectionModifiedCombBox));
+        m_pTableField->SetSelectHdl(LINK(this, OLinkFieldsPage, OnSelectionModifiedCombBox));
     }
 
     OLinkFieldsPage::~OLinkFieldsPage()
@@ -494,6 +494,10 @@ namespace dbp
         return 0L;
     }
 
+    IMPL_LINK_NOARG_TYPED(OLinkFieldsPage, OnSelectionModifiedCombBox, ComboBox&, void)
+    {
+        implCheckFinish();
+    }
 
     bool OLinkFieldsPage::commitPage( ::svt::WizardTypes::CommitPageReason _eReason )
     {
diff --git a/extensions/source/dbpilots/listcombowizard.hxx b/extensions/source/dbpilots/listcombowizard.hxx
index 3bc7f85..a65300e 100644
--- a/extensions/source/dbpilots/listcombowizard.hxx
+++ b/extensions/source/dbpilots/listcombowizard.hxx
@@ -168,6 +168,7 @@ namespace dbp
         void implCheckFinish();
 
         DECL_LINK(OnSelectionModified, void*);
+        DECL_LINK_TYPED(OnSelectionModifiedCombBox, ComboBox&, void);
     };
 
     class OComboDBFieldPage : public ODBFieldPage
diff --git a/extensions/source/propctrlr/standardcontrol.cxx b/extensions/source/propctrlr/standardcontrol.cxx
index ad9a2ce..200b0f9 100644
--- a/extensions/source/propctrlr/standardcontrol.cxx
+++ b/extensions/source/propctrlr/standardcontrol.cxx
@@ -943,12 +943,11 @@ namespace pcr
     }
 
 
-    IMPL_LINK_NOARG( OComboboxControl, OnEntrySelected )
+    IMPL_LINK_NOARG_TYPED( OComboboxControl, OnEntrySelected, ComboBox&, void )
     {
         if ( !getTypedControlWindow()->IsTravelSelect() )
             // fire a commit
             notifyModifiedValue();
-        return 0L;
     }
 
 
diff --git a/extensions/source/propctrlr/standardcontrol.hxx b/extensions/source/propctrlr/standardcontrol.hxx
index b8caab6..c466597 100644
--- a/extensions/source/propctrlr/standardcontrol.hxx
+++ b/extensions/source/propctrlr/standardcontrol.hxx
@@ -336,7 +336,7 @@ namespace pcr
         virtual css::uno::Sequence< OUString > SAL_CALL getListEntries(  ) throw (css::uno::RuntimeException, std::exception) override;
 
     protected:
-        DECL_LINK( OnEntrySelected, void* );
+        DECL_LINK_TYPED( OnEntrySelected, ComboBox&, void );
     };
 
 
diff --git a/fpicker/source/office/iodlg.cxx b/fpicker/source/office/iodlg.cxx
index ed34f46..9e843e9 100644
--- a/fpicker/source/office/iodlg.cxx
+++ b/fpicker/source/office/iodlg.cxx
@@ -1582,11 +1582,9 @@ IMPL_LINK_NOARG_TYPED(SvtFileDialog, DblClickHdl_Impl, SvTreeListBox*, bool)
 
 
 
-IMPL_LINK_NOARG(SvtFileDialog, EntrySelectHdl_Impl)
+IMPL_LINK_NOARG_TYPED(SvtFileDialog, EntrySelectHdl_Impl, ComboBox&, void)
 {
     FileSelect();
-
-    return 0;
 }
 
 
diff --git a/fpicker/source/office/iodlg.hxx b/fpicker/source/office/iodlg.hxx
index f7cf813..05f1306 100644
--- a/fpicker/source/office/iodlg.hxx
+++ b/fpicker/source/office/iodlg.hxx
@@ -123,7 +123,7 @@ private:
 
     DECL_LINK_TYPED( SelectHdl_Impl, SvTreeListBox*, void );
     DECL_LINK_TYPED( DblClickHdl_Impl, SvTreeListBox*, bool);
-    DECL_LINK(EntrySelectHdl_Impl, void *);
+    DECL_LINK_TYPED( EntrySelectHdl_Impl, ComboBox&, void);
     DECL_LINK_TYPED( OpenDoneHdl_Impl, SvtFileView*, void );
     DECL_LINK_TYPED( AutoExtensionHdl_Impl, Button*, void);
     DECL_LINK_TYPED( ClickHdl_Impl, Button*, void );
diff --git a/include/sfx2/newstyle.hxx b/include/sfx2/newstyle.hxx
index fd719c4..67e5076 100644
--- a/include/sfx2/newstyle.hxx
+++ b/include/sfx2/newstyle.hxx
@@ -39,7 +39,7 @@ private:
     VclPtr<MessageDialog> aQueryOverwriteBox;
     SfxStyleSheetBasePool&  rPool;
 
-    DECL_DLLPRIVATE_LINK( OKHdl, Control * );
+    DECL_DLLPRIVATE_LINK_TYPED( OKHdl, ComboBox&, void );
     DECL_DLLPRIVATE_LINK_TYPED( OKClickHdl, Button *, void );
     DECL_DLLPRIVATE_LINK( ModifyHdl, ComboBox * );
 
diff --git a/include/svtools/addresstemplate.hxx b/include/svtools/addresstemplate.hxx
index 012d9ae..9f5bb48 100644
--- a/include/svtools/addresstemplate.hxx
+++ b/include/svtools/addresstemplate.hxx
@@ -130,7 +130,7 @@ namespace svt
         DECL_LINK_TYPED(OnAdministrateDatasources, Button*, void);
         DECL_STATIC_LINK_TYPED(AddressBookSourceDialog, OnComboGetFocus, Control&, void);
         DECL_LINK_TYPED(OnComboLoseFocus, Control&, void);
-        DECL_LINK(OnComboSelect, ComboBox*);
+        DECL_LINK_TYPED(OnComboSelect, ComboBox&, void);
         DECL_LINK_TYPED(OnOkClicked, Button*, void);
         DECL_LINK_TYPED(OnDelayedInitialize, void*, void);
     };
diff --git a/include/svx/imapdlg.hxx b/include/svx/imapdlg.hxx
index 03c21a3..0a34cae 100644
--- a/include/svx/imapdlg.hxx
+++ b/include/svx/imapdlg.hxx
@@ -123,6 +123,7 @@ class SVX_DLLPUBLIC SvxIMapDlg : public SfxModelessDialog // SfxFloatingWindow
     DECL_LINK_TYPED( MousePosHdl, GraphCtrl*, void );
     DECL_LINK_TYPED( GraphSizeHdl, GraphCtrl*, void );
     DECL_LINK( URLModifyHdl, void* );
+    DECL_LINK_TYPED( URLModifyComboBoxHdl, ComboBox&, void );
     DECL_LINK_TYPED( URLLoseFocusHdl, Control&, void );
     DECL_LINK_TYPED( UpdateHdl, Idle *, void );
     DECL_LINK_TYPED( StateHdl, GraphCtrl*, void );
diff --git a/include/vcl/combobox.hxx b/include/vcl/combobox.hxx
index 46dfe34..a215eaf 100644
--- a/include/vcl/combobox.hxx
+++ b/include/vcl/combobox.hxx
@@ -123,10 +123,10 @@ public:
     bool            IsMultiSelectionEnabled() const;
     sal_Unicode     GetMultiSelectionSeparator() const;
 
-    void            SetSelectHdl(const Link<>& rLink);
-    const Link<>&   GetSelectHdl() const;
-    void            SetDoubleClickHdl(const Link<>& rLink);
-    const Link<>&   GetDoubleClickHdl() const;
+    void            SetSelectHdl(const Link<ComboBox&,void>& rLink);
+    const Link<ComboBox&,void>&   GetSelectHdl() const;
+    void            SetDoubleClickHdl(const Link<ComboBox&,void>& rLink);
+    const Link<ComboBox&,void>&   GetDoubleClickHdl() const;
 
     Size            CalcMinimumSize() const override;
     virtual Size    GetOptimalSize() const override;
diff --git a/reportdesign/source/ui/dlg/GroupsSorting.cxx b/reportdesign/source/ui/dlg/GroupsSorting.cxx
index d2aa7e6..8312085 100644
--- a/reportdesign/source/ui/dlg/GroupsSorting.cxx
+++ b/reportdesign/source/ui/dlg/GroupsSorting.cxx
@@ -169,7 +169,7 @@ protected:
 private:
 
     DECL_LINK_TYPED( DelayedPaste, void*, void );
-    DECL_LINK( CBChangeHdl, ComboBox*);
+    DECL_LINK_TYPED( CBChangeHdl, ComboBox&, void);
 
     void InsertRows( long nRow );
 
@@ -417,11 +417,10 @@ void OFieldExpressionControl::lateInit()
 }
 
 
-IMPL_LINK( OFieldExpressionControl, CBChangeHdl, ComboBox*, /*pComboBox*/ )
+IMPL_LINK_NOARG_TYPED( OFieldExpressionControl, CBChangeHdl, ComboBox&, void )
 {
 
     SaveModified();
-    return 0L;
 }
 
 
diff --git a/sc/source/ui/dbgui/scuiasciiopt.cxx b/sc/source/ui/dbgui/scuiasciiopt.cxx
index 5fe87be..cc2635c 100644
--- a/sc/source/ui/dbgui/scuiasciiopt.cxx
+++ b/sc/source/ui/dbgui/scuiasciiopt.cxx
@@ -370,9 +370,9 @@ ScImportAsciiDlg::ScImportAsciiDlg( vcl::Window* pParent, const OUString& aDatNa
     lcl_FillCombo( *pCbTextSep, aTextSepList, mcTextSep );
     pCbTextSep->SetText( sTextSeparators );
 
-    Link<> aSeparatorHdl =LINK( this, ScImportAsciiDlg, SeparatorHdl );
+    Link<> aSeparatorHdl = LINK( this, ScImportAsciiDlg, SeparatorHdl );
     Link<Button*,void> aSeparatorClickHdl =LINK( this, ScImportAsciiDlg, SeparatorClickHdl );
-    pCbTextSep->SetSelectHdl( aSeparatorHdl );
+    pCbTextSep->SetSelectHdl( LINK( this, ScImportAsciiDlg, SeparatorComboBoxHdl ) );
     pCbTextSep->SetModifyHdl( aSeparatorHdl );
     pCkbTab->SetClickHdl( aSeparatorClickHdl );
     pCkbSemicolon->SetClickHdl( aSeparatorClickHdl );
@@ -680,6 +680,10 @@ IMPL_LINK_TYPED( ScImportAsciiDlg, SeparatorClickHdl, Button*, pCtrl, void )
 {
     SeparatorHdl(pCtrl);
 }
+IMPL_LINK_TYPED( ScImportAsciiDlg, SeparatorComboBoxHdl, ComboBox&, rCtrl, void )
+{
+    SeparatorHdl(&rCtrl);
+}
 IMPL_LINK( ScImportAsciiDlg, SeparatorHdl, Control*, pCtrl )
 {
     OSL_ENSURE( pCtrl, "ScImportAsciiDlg::SeparatorHdl - missing sender" );
diff --git a/sc/source/ui/inc/datastreamdlg.hxx b/sc/source/ui/inc/datastreamdlg.hxx
index 979b0d9..1dc37b0 100644
--- a/sc/source/ui/inc/datastreamdlg.hxx
+++ b/sc/source/ui/inc/datastreamdlg.hxx
@@ -21,6 +21,7 @@
 class ScDocShell;
 class SvtURLBox;
 class ScRange;
+class ComboBox;
 
 namespace sc {
 
@@ -47,7 +48,8 @@ class DataStreamDlg : public ModalDialog
     VclPtr<VclFrame>       m_pVclFrameMove;
 
     DECL_LINK_TYPED(UpdateClickHdl, Button*, void);
-    DECL_LINK(UpdateHdl, void *);
+    DECL_LINK(UpdateHdl, void*);
+    DECL_LINK_TYPED(UpdateComboBoxHdl, ComboBox&, void);
     DECL_LINK_TYPED(BrowseHdl, Button*, void);
 
     void UpdateEnable();
diff --git a/sc/source/ui/inc/linkarea.hxx b/sc/source/ui/inc/linkarea.hxx
index 5f771c4..7e68b47f 100644
--- a/sc/source/ui/inc/linkarea.hxx
+++ b/sc/source/ui/inc/linkarea.hxx
@@ -50,7 +50,7 @@ private:
 
     SfxObjectShellRef   aSourceRef;
 
-    DECL_LINK(FileHdl, void *);
+    DECL_LINK_TYPED(FileHdl, ComboBox&, void);
     DECL_LINK_TYPED(BrowseHdl, Button*, void);
     DECL_LINK_TYPED(RangeHdl, ListBox&, void);
     DECL_LINK_TYPED(ReloadHdl, Button*, void);
diff --git a/sc/source/ui/inc/scuiasciiopt.hxx b/sc/source/ui/inc/scuiasciiopt.hxx
index 0f190f0..802cc68 100644
--- a/sc/source/ui/inc/scuiasciiopt.hxx
+++ b/sc/source/ui/inc/scuiasciiopt.hxx
@@ -105,6 +105,7 @@ private:
                                 DECL_LINK_TYPED( RbSepFixHdl, Button*, void );
                                 DECL_LINK( SeparatorHdl, Control* );
                                 DECL_LINK_TYPED( SeparatorClickHdl, Button*, void );
+                                DECL_LINK_TYPED( SeparatorComboBoxHdl, ComboBox&, void );
                                 DECL_LINK_TYPED( LbColTypeHdl, ListBox&, void );
                                 DECL_LINK_TYPED( UpdateTextHdl, ScCsvTableBox&, void );
                                 DECL_LINK_TYPED( ColTypeHdl, ScCsvTableBox&, void );
diff --git a/sc/source/ui/miscdlgs/datastreamdlg.cxx b/sc/source/ui/miscdlgs/datastreamdlg.cxx
index 5ba0bd1..c453f94 100644
--- a/sc/source/ui/miscdlgs/datastreamdlg.cxx
+++ b/sc/source/ui/miscdlgs/datastreamdlg.cxx
@@ -39,7 +39,7 @@ DataStreamDlg::DataStreamDlg(ScDocShell *pDocShell, vcl::Window* pParent)
     get(m_pVclFrameLimit, "framelimit");
     get(m_pVclFrameMove, "framemove");
 
-    m_pCbUrl->SetSelectHdl( LINK( this, DataStreamDlg, UpdateHdl ) );
+    m_pCbUrl->SetSelectHdl( LINK( this, DataStreamDlg, UpdateComboBoxHdl ) );
     m_pRBAddressValue->SetClickHdl( LINK( this, DataStreamDlg, UpdateClickHdl ) );
     m_pRBAddressValue->Enable(false);
     m_pRBScriptData->Enable(false);
@@ -93,6 +93,10 @@ IMPL_LINK_NOARG_TYPED(DataStreamDlg, UpdateClickHdl, Button*, void)
 {
     UpdateEnable();
 }
+IMPL_LINK_NOARG_TYPED(DataStreamDlg, UpdateComboBoxHdl, ComboBox&, void)
+{
+    UpdateEnable();
+}
 IMPL_LINK_NOARG(DataStreamDlg, UpdateHdl)
 {
     UpdateEnable();
diff --git a/sc/source/ui/miscdlgs/linkarea.cxx b/sc/source/ui/miscdlgs/linkarea.cxx
index b7eae20..7baacc4 100644
--- a/sc/source/ui/miscdlgs/linkarea.cxx
+++ b/sc/source/ui/miscdlgs/linkarea.cxx
@@ -103,7 +103,7 @@ IMPL_LINK_NOARG_TYPED(ScLinkedAreaDlg, BrowseHdl, Button*, void)
     pDocInserter->StartExecuteModal( LINK( this, ScLinkedAreaDlg, DialogClosedHdl ) );
 }
 
-IMPL_LINK_NOARG(ScLinkedAreaDlg, FileHdl)
+IMPL_LINK_NOARG_TYPED(ScLinkedAreaDlg, FileHdl, ComboBox&, void)
 {
     OUString aEntered = m_pCbUrl->GetURL();
     if (pSourceShell)
@@ -112,7 +112,7 @@ IMPL_LINK_NOARG(ScLinkedAreaDlg, FileHdl)
         if ( aEntered.equals(pMed->GetName()) )
         {
             //  already loaded - nothing to do
-            return 0;
+            return;
         }
     }
 
@@ -121,7 +121,7 @@ IMPL_LINK_NOARG(ScLinkedAreaDlg, FileHdl)
     //  get filter name by looking at the file content (bWithContent = true)
     // Break operation if any error occurred inside.
     if (!ScDocumentLoader::GetFilterName( aEntered, aFilter, aOptions, true, true ))
-        return 0;
+        return;
 
     // #i53241# replace HTML filter with DataQuery filter
     if (aFilter == FILTERNAME_HTML)
@@ -131,7 +131,6 @@ IMPL_LINK_NOARG(ScLinkedAreaDlg, FileHdl)
 
     UpdateSourceRanges();
     UpdateEnable();
-    return 0;
 }
 
 void ScLinkedAreaDlg::LoadDocument( const OUString& rFile, const OUString& rFilter, const OUString& rOptions )
diff --git a/sd/source/ui/animations/CustomAnimationDialog.cxx b/sd/source/ui/animations/CustomAnimationDialog.cxx
index 065da7f..83b9c1a 100644
--- a/sd/source/ui/animations/CustomAnimationDialog.cxx
+++ b/sd/source/ui/animations/CustomAnimationDialog.cxx
@@ -271,14 +271,16 @@ public:
 
 private:
     VclPtr<FontNameBox> mpControl;
+    Link<>              maModifyHdl;
+    DECL_LINK_TYPED(ControlSelectHdl, ComboBox&, void);
 };
 
 FontPropertyBox::FontPropertyBox( sal_Int32 nControlType, vcl::Window* pParent, const Any& rValue, const Link<>& rModifyHdl )
-: PropertySubControl( nControlType )
+: PropertySubControl( nControlType ), maModifyHdl(rModifyHdl)
 {
     mpControl = VclPtr<FontNameBox>::Create( pParent, WB_BORDER|WB_TABSTOP|WB_DROPDOWN );
     mpControl->SetDropDownLineCount( 10 );
-    mpControl->SetSelectHdl( rModifyHdl );
+    mpControl->SetSelectHdl( LINK(this, FontPropertyBox, ControlSelectHdl) );
     mpControl->SetHelpId( HID_SD_CUSTOMANIMATIONPANE_FONTPROPERTYBOX );
 
     SfxObjectShell* pDocSh = SfxObjectShell::Current();
@@ -305,6 +307,11 @@ FontPropertyBox::FontPropertyBox( sal_Int32 nControlType, vcl::Window* pParent,
     setValue( rValue, aPresetId );
 }
 
+IMPL_LINK_TYPED(FontPropertyBox, ControlSelectHdl, ComboBox&, rBox, void)
+{
+    maModifyHdl.Call(&rBox);
+}
+
 void FontPropertyBox::setValue( const Any& rValue, const OUString& )
 {
     if( mpControl )
diff --git a/sfx2/inc/inettbc.hxx b/sfx2/inc/inettbc.hxx
index 75522e1..0802a97 100644
--- a/sfx2/inc/inettbc.hxx
+++ b/sfx2/inc/inettbc.hxx
@@ -35,7 +35,7 @@ private:
     void                    OpenURL( const OUString& rName, bool bNew ) const;
 
     DECL_LINK_TYPED(        OpenHdl, SvtURLBox*, void );
-    DECL_LINK(              SelectHdl, void* );
+    DECL_LINK_TYPED(        SelectHdl, ComboBox&, void );
 
     struct ExecuteInfo
     {
diff --git a/sfx2/source/appl/newhelp.cxx b/sfx2/source/appl/newhelp.cxx
index 06ebccb..f7aedbb 100644
--- a/sfx2/source/appl/newhelp.cxx
+++ b/sfx2/source/appl/newhelp.cxx
@@ -520,7 +520,7 @@ bool IndexBox_Impl::Notify( NotifyEvent& rNEvt )
     if ( rNEvt.GetType() == MouseNotifyEvent::KEYINPUT &&
          KEY_RETURN == rNEvt.GetKeyEvent()->GetKeyCode().GetCode() )
     {
-        GetDoubleClickHdl().Call( NULL );
+        GetDoubleClickHdl().Call( *this );
         bHandled = true;
     }
 
@@ -737,7 +737,7 @@ void IndexTabPage_Impl::ClearIndex()
 
 IMPL_LINK_NOARG_TYPED(IndexTabPage_Impl, OpenHdl, Button*, void)
 {
-    m_pIndexCB->GetDoubleClickHdl().Call(m_pIndexCB);
+    m_pIndexCB->GetDoubleClickHdl().Call(*m_pIndexCB);
 }
 
 IMPL_LINK_TYPED( IndexTabPage_Impl, IdleHdl, Idle*, pIdle, void )
@@ -769,7 +769,7 @@ Control* IndexTabPage_Impl::GetLastFocusControl()
     return m_pOpenBtn;
 }
 
-void IndexTabPage_Impl::SetDoubleClickHdl( const Link<>& rLink )
+void IndexTabPage_Impl::SetDoubleClickHdl( const Link<ComboBox&,void>& rLink )
 {
     m_pIndexCB->SetDoubleClickHdl( rLink );
 }
@@ -863,7 +863,7 @@ void IndexTabPage_Impl::OpenKeyword()
     if ( !sKeyword.isEmpty() )
     {
         m_pIndexCB->SetText( sKeyword );
-        m_pIndexCB->GetDoubleClickHdl().Call( NULL );
+        m_pIndexCB->GetDoubleClickHdl().Call( *m_pIndexCB );
         sKeyword.clear();
     }
 }
@@ -1635,6 +1635,11 @@ IMPL_LINK_NOARG_TYPED(SfxHelpIndexWindow_Impl, KeywordHdl, IndexTabPage_Impl&, v
         pParentWin->ShowStartPage();
 }
 
+IMPL_LINK_TYPED(SfxHelpIndexWindow_Impl, IndexTabPageDoubleClickHdl, ComboBox&, rBox, void)
+{
+    aPageDoubleClickLink.Call(&rBox);
+}
+
 void SfxHelpIndexWindow_Impl::Resize()
 {
     vcl::Window *pChild = GetWindow(GetWindowType::FirstChild);
@@ -1718,11 +1723,9 @@ void SfxHelpIndexWindow_Impl::DataChanged( const DataChangedEvent& rDCEvt )
 
 
 
-void SfxHelpIndexWindow_Impl::SetDoubleClickHdl( const Link<>& rLink )
+void SfxHelpIndexWindow_Impl::SetDoubleClickHdl( const Link<Control*,bool>& rLink )
 {
     aPageDoubleClickLink = rLink;
-    if ( pIPage )
-        pIPage->SetDoubleClickHdl( aPageDoubleClickLink );
 }
 
 IMPL_LINK_TYPED(SfxHelpIndexWindow_Impl, ContentTabPageDoubleClickHdl, SvTreeListBox*, p, bool)
@@ -2887,13 +2890,13 @@ IMPL_LINK_TYPED( SfxHelpWindow_Impl, SelectHdl, ToolBox* , pToolBox, void )
 
 
 
-IMPL_LINK_NOARG(SfxHelpWindow_Impl, OpenHdl)
+IMPL_LINK_NOARG_TYPED(SfxHelpWindow_Impl, OpenHdl, Control*, bool)
 {
     pIndexWin->SelectExecutableEntry();
     OUString aEntry = pIndexWin->GetSelectEntry();
 
     if ( aEntry.isEmpty() )
-        return 0;
+        return false;
 
     OUString sHelpURL;
 
@@ -2924,7 +2927,7 @@ IMPL_LINK_NOARG(SfxHelpWindow_Impl, OpenHdl)
 
     loadHelpContent(sHelpURL);
 
-    return 0;
+    return false;
 }
 
 
diff --git a/sfx2/source/appl/newhelp.hxx b/sfx2/source/appl/newhelp.hxx
index d89081c..5540ebc 100644
--- a/sfx2/source/appl/newhelp.hxx
+++ b/sfx2/source/appl/newhelp.hxx
@@ -149,7 +149,7 @@ public:
     virtual void        ActivatePage() override;
     virtual Control*    GetLastFocusControl() override;
 
-    void                SetDoubleClickHdl( const Link<>& rLink );
+    void                SetDoubleClickHdl( const Link<ComboBox&,void>& rLink );
     void                SetFactory( const OUString& rFactory );
     inline OUString     GetFactory() const { return sFactory; }
     OUString            GetSelectEntry() const;
@@ -288,9 +288,9 @@ private:
     Idle                aIdle;
 
     Link<SfxHelpIndexWindow_Impl*,void> aSelectFactoryLink;
-    Link<>              aPageDoubleClickLink;
+    Link<Control*,bool>                 aPageDoubleClickLink;
     Link<IndexTabPage_Impl&,void>       aIndexKeywordLink;
-    OUString            sKeyword;
+    OUString                            sKeyword;
 
     VclPtr<SfxHelpWindow_Impl>     pParentWin;
 
@@ -319,6 +319,7 @@ private:
     DECL_LINK_TYPED(KeywordHdl, IndexTabPage_Impl&, void);
     DECL_LINK_TYPED(ContentTabPageDoubleClickHdl, SvTreeListBox*, bool);
     DECL_LINK_TYPED(TabPageDoubleClickHdl, ListBox&, void);
+    DECL_LINK_TYPED(IndexTabPageDoubleClickHdl, ComboBox&, void);
 
 public:
     explicit SfxHelpIndexWindow_Impl( SfxHelpWindow_Impl* pParent );
@@ -330,7 +331,7 @@ public:
     virtual bool        PreNotify( NotifyEvent& rNEvt ) override;
     virtual void        DataChanged( const DataChangedEvent& rDCEvt ) override;
 
-    void                SetDoubleClickHdl( const Link<>& rLink );
+    void                SetDoubleClickHdl( const Link<Control*,bool>& rLink );
     inline void         SetSelectFactoryHdl( const Link<SfxHelpIndexWindow_Impl*,void>& rLink ) { aSelectFactoryLink = rLink; }
     void                SetFactory( const OUString& rFactory, bool bActive );
     inline OUString     GetFactory() const { return pIPage->GetFactory(); }
@@ -364,7 +365,7 @@ IndexTabPage_Impl* SfxHelpIndexWindow_Impl::GetIndexPage()
     if ( !pIPage )
     {
         pIPage = VclPtr<IndexTabPage_Impl>::Create( m_pTabCtrl, this );
-        pIPage->SetDoubleClickHdl( aPageDoubleClickLink );
+        pIPage->SetDoubleClickHdl( LINK(this, SfxHelpIndexWindow_Impl, IndexTabPageDoubleClickHdl) );
         pIPage->SetKeywordHdl( aIndexKeywordLink );
     }
     return pIPage;
@@ -523,7 +524,7 @@ friend class SfxHelpIndexWindow_Impl;
     void                ShowStartPage();
 
     DECL_LINK_TYPED(    SelectHdl, ToolBox*, void );
-    DECL_LINK(OpenHdl, void *);
+    DECL_LINK_TYPED(    OpenHdl, Control*, bool );
     DECL_LINK_TYPED(    SelectFactoryHdl, SfxHelpIndexWindow_Impl*, void );
     DECL_LINK_TYPED(    ChangeHdl, HelpListener_Impl&, void );
 
diff --git a/sfx2/source/dialog/newstyle.cxx b/sfx2/source/dialog/newstyle.cxx
index 4b0408f..f39034f 100644
--- a/sfx2/source/dialog/newstyle.cxx
+++ b/sfx2/source/dialog/newstyle.cxx
@@ -30,9 +30,9 @@
 
 IMPL_LINK_NOARG_TYPED( SfxNewStyleDlg, OKClickHdl, Button*, void )
 {
-    OKHdl(NULL);
+    OKHdl(*m_pColBox);
 }
-IMPL_LINK( SfxNewStyleDlg, OKHdl, Control *, /*pControl*/ )
+IMPL_LINK_NOARG_TYPED( SfxNewStyleDlg, OKHdl, ComboBox&, void )
 {
     const OUString aName( m_pColBox->GetText() );
     SfxStyleSheetBase* pStyle = rPool.Find( aName, rPool.GetSearchFamily() );
@@ -41,7 +41,7 @@ IMPL_LINK( SfxNewStyleDlg, OKHdl, Control *, /*pControl*/ )
         if ( !pStyle->IsUserDefined() )
         {
             ScopedVclPtrInstance<MessageDialog>::Create( this, SfxResId( STR_POOL_STYLE_NAME ), VCL_MESSAGE_INFO )->Execute();
-            return 0;
+            return;
         }
 
         if ( RET_YES == aQueryOverwriteBox->Execute() )
@@ -49,8 +49,6 @@ IMPL_LINK( SfxNewStyleDlg, OKHdl, Control *, /*pControl*/ )
     }
     else
         EndDialog( RET_OK );
-
-    return 0;
 }
 
 IMPL_LINK( SfxNewStyleDlg, ModifyHdl, ComboBox *, pBox )
diff --git a/sfx2/source/inet/inettbc.cxx b/sfx2/source/inet/inettbc.cxx
index e030555..b2aabc5 100644
--- a/sfx2/source/inet/inettbc.cxx
+++ b/sfx2/source/inet/inettbc.cxx
@@ -159,15 +159,13 @@ VclPtr<vcl::Window> SfxURLToolBoxControl_Impl::CreateItemWindow( vcl::Window* pP
     return pURLBox.get();
 }
 
-IMPL_LINK_NOARG(SfxURLToolBoxControl_Impl, SelectHdl)
+IMPL_LINK_NOARG_TYPED(SfxURLToolBoxControl_Impl, SelectHdl, ComboBox&, void)
 {
     SvtURLBox* pURLBox = GetURLBox();
     OUString aName( pURLBox->GetURL() );
 
     if ( !pURLBox->IsTravelSelect() && !aName.isEmpty() )
         OpenURL( aName, false );
-
-    return 1L;
 }
 
 IMPL_LINK_NOARG_TYPED(SfxURLToolBoxControl_Impl, OpenHdl, SvtURLBox*, void)
diff --git a/starmath/inc/dialog.hxx b/starmath/inc/dialog.hxx
index b027aab..59a8f85 100644
--- a/starmath/inc/dialog.hxx
+++ b/starmath/inc/dialog.hxx
@@ -102,7 +102,7 @@ class SmFontDialog : public ModalDialog
 
     vcl::Font maFont;
 
-    DECL_LINK(FontSelectHdl, ComboBox *);
+    DECL_LINK_TYPED(FontSelectHdl, ComboBox&, void);
     DECL_LINK(FontModifyHdl, ComboBox *);
     DECL_LINK_TYPED(AttrChangeHdl, Button *, void);
 
@@ -434,12 +434,12 @@ class SmSymDefineDialog : public ModalDialog
     std::unique_ptr<SubsetMap> pSubsetMap;
     FontList           *pFontList;
 
-    DECL_LINK(OldSymbolChangeHdl, ComboBox *);
-    DECL_LINK(OldSymbolSetChangeHdl, ComboBox *);
+    DECL_LINK_TYPED(OldSymbolChangeHdl, ComboBox&, void);
+    DECL_LINK_TYPED(OldSymbolSetChangeHdl, ComboBox&, void);
     DECL_LINK(ModifyHdl, ComboBox *);
     DECL_LINK_TYPED(FontChangeHdl, ListBox&, void);
     DECL_LINK_TYPED(SubsetChangeHdl, ListBox&, void);
-    DECL_LINK(StyleChangeHdl, ComboBox *);
+    DECL_LINK_TYPED(StyleChangeHdl, ComboBox&, void);
     DECL_LINK_TYPED(CharHighlightHdl, SvxShowCharSet*, void);
     DECL_LINK_TYPED(AddClickHdl, Button *, void);
     DECL_LINK_TYPED(ChangeClickHdl, Button *, void);
diff --git a/starmath/source/dialog.cxx b/starmath/source/dialog.cxx
index 9e93e1f..b1d0bca 100644
--- a/starmath/source/dialog.cxx
+++ b/starmath/source/dialog.cxx
@@ -295,11 +295,10 @@ void SmShowFont::SetFont(const vcl::Font& rFont)
     Invalidate();
 }
 
-IMPL_LINK( SmFontDialog, FontSelectHdl, ComboBox *, pComboBox )
+IMPL_LINK_TYPED( SmFontDialog, FontSelectHdl, ComboBox&, rComboBox, void )
 {
-    maFont.SetName(pComboBox->GetText());
+    maFont.SetName(rComboBox.GetText());
     m_pShowFont->SetFont(maFont);
-    return 0;
 }
 
 IMPL_LINK( SmFontDialog, FontModifyHdl, ComboBox *, pComboBox )
@@ -308,7 +307,7 @@ IMPL_LINK( SmFontDialog, FontModifyHdl, ComboBox *, pComboBox )
     sal_Int32 nPos = pComboBox->GetEntryPos( pComboBox->GetText() );
     if (COMBOBOX_ENTRY_NOTFOUND != nPos)
     {
-        FontSelectHdl( pComboBox );
+        FontSelectHdl( *pComboBox );
     }
     return 0;
 }
@@ -1791,25 +1790,23 @@ SmSym * SmSymDefineDialog::GetSymbol(const ComboBox &rComboBox)
 }
 
 
-IMPL_LINK( SmSymDefineDialog, OldSymbolChangeHdl, ComboBox *, pComboBox )
+IMPL_LINK_TYPED( SmSymDefineDialog, OldSymbolChangeHdl, ComboBox&, rComboBox, void )
 {
-    (void) pComboBox;
+    (void) rComboBox;
 #if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pComboBox == pOldSymbols, "Sm : wrong argument");
+    OSL_ENSURE(&rComboBox == pOldSymbols, "Sm : wrong argument");
 #endif
     SelectSymbol(*pOldSymbols, pOldSymbols->GetText(), false);
-    return 0;
 }
 
 
-IMPL_LINK( SmSymDefineDialog, OldSymbolSetChangeHdl, ComboBox *, pComboBox )
+IMPL_LINK_TYPED( SmSymDefineDialog, OldSymbolSetChangeHdl, ComboBox&, rComboBox, void )
 {
-    (void) pComboBox;
+    (void) rComboBox;
 #if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pComboBox == pOldSymbolSets, "Sm : wrong argument");
+    OSL_ENSURE(&rComboBox == pOldSymbolSets, "Sm : wrong argument");
 #endif
     SelectSymbolSet(*pOldSymbolSets, pOldSymbolSets->GetText(), false);
-    return 0;
 }
 
 
@@ -1867,15 +1864,14 @@ IMPL_LINK_NOARG_TYPED( SmSymDefineDialog, SubsetChangeHdl, ListBox&, void )
 }
 
 
-IMPL_LINK( SmSymDefineDialog, StyleChangeHdl, ComboBox *, pComboBox )
+IMPL_LINK_TYPED( SmSymDefineDialog, StyleChangeHdl, ComboBox&, rComboBox, void )
 {
-    (void) pComboBox;
+    (void) rComboBox;
 #if OSL_DEBUG_LEVEL > 1
-    OSL_ENSURE(pComboBox == pStyles, "Sm : falsches Argument");
+    OSL_ENSURE(&rComboBox == pStyles, "Sm : falsches Argument");
 #endif
 
     SelectStyle(pStyles->GetText());
-    return 0;
 }
 
 
diff --git a/svtools/source/control/inettbc.cxx b/svtools/source/control/inettbc.cxx
index 9597991..5807711 100644
--- a/svtools/source/control/inettbc.cxx
+++ b/svtools/source/control/inettbc.cxx
@@ -1038,7 +1038,7 @@ bool SvtURLBox::ProcessKey( const vcl::KeyCode& rKey )
         else if ( GetSelectHdl().IsSet() )
         {
             bHandled = true;
-            GetSelectHdl().Call(this);
+            GetSelectHdl().Call(*this);
         }
 
         bCtrlClick = false;
diff --git a/svtools/source/dialogs/addresstemplate.cxx b/svtools/source/dialogs/addresstemplate.cxx
index bf1b4fe..bc3be74 100644
--- a/svtools/source/dialogs/addresstemplate.cxx
+++ b/svtools/source/dialogs/addresstemplate.cxx
@@ -1119,13 +1119,12 @@ void AssignmentPersistentData::ImplCommit()
     }
 
 
-    IMPL_LINK(AddressBookSourceDialog, OnComboSelect, ComboBox*, _pBox)
+    IMPL_LINK_TYPED(AddressBookSourceDialog, OnComboSelect, ComboBox&, _rBox, void)
     {
-        if (_pBox == m_pDatasource)
+        if (&_rBox == m_pDatasource)
             resetTables();
         else
             resetFields();
-        return 0;
     }
 
 
diff --git a/svx/source/dialog/imapdlg.cxx b/svx/source/dialog/imapdlg.cxx
index baa8dc2..9a6f103 100644
--- a/svx/source/dialog/imapdlg.cxx
+++ b/svx/source/dialog/imapdlg.cxx
@@ -177,7 +177,7 @@ SvxIMapDlg::SvxIMapDlg(SfxBindings *_pBindings, SfxChildWindow *pCW, vcl::Window
     pIMapWnd->SetUpdateLink( LINK( this, SvxIMapDlg, StateHdl ) );
 
     m_pURLBox->SetModifyHdl( LINK( this, SvxIMapDlg, URLModifyHdl ) );
-    m_pURLBox->SetSelectHdl( LINK( this, SvxIMapDlg, URLModifyHdl ) );
+    m_pURLBox->SetSelectHdl( LINK( this, SvxIMapDlg, URLModifyComboBoxHdl ) );
     m_pURLBox->SetLoseFocusHdl( LINK( this, SvxIMapDlg, URLLoseFocusHdl ) );
     m_pEdtText->SetModifyHdl( LINK( this, SvxIMapDlg, URLModifyHdl ) );
     m_pCbbTarget->SetLoseFocusHdl( LINK( this, SvxIMapDlg, URLLoseFocusHdl ) );
@@ -682,6 +682,11 @@ IMPL_LINK_TYPED( SvxIMapDlg, GraphSizeHdl, GraphCtrl*, pWnd, void )
     m_pStbStatus->SetItemText( 3, aStr );
 }
 
+
+IMPL_LINK_NOARG_TYPED(SvxIMapDlg, URLModifyComboBoxHdl, ComboBox&, void)
+{
+    URLModifyHdl(nullptr);
+}
 IMPL_LINK_NOARG(SvxIMapDlg, URLModifyHdl)
 {
     NotifyInfo  aNewInfo;
diff --git a/sw/source/ui/config/optload.cxx b/sw/source/ui/config/optload.cxx
index f9ee4c1..e657471 100644
--- a/sw/source/ui/config/optload.cxx
+++ b/sw/source/ui/config/optload.cxx
@@ -841,10 +841,9 @@ IMPL_LINK_NOARG(SwCaptionOptPage, ModifyHdl)
     return 0;
 }
 
-IMPL_LINK_NOARG(SwCaptionOptPage, SelectHdl)
+IMPL_LINK_NOARG_TYPED(SwCaptionOptPage, SelectHdl, ComboBox&, void)
 {
     InvalidatePreview();
-    return 0;
 }
 
 IMPL_LINK_NOARG_TYPED(SwCaptionOptPage, SelectListBoxHdl, ListBox&, void)
diff --git a/sw/source/ui/dbui/mmaddressblockpage.cxx b/sw/source/ui/dbui/mmaddressblockpage.cxx
index e521f22..4382ec1 100644
--- a/sw/source/ui/dbui/mmaddressblockpage.cxx
+++ b/sw/source/ui/dbui/mmaddressblockpage.cxx
@@ -551,7 +551,7 @@ SwCustomizeAddressBlockDialog::SwCustomizeAddressBlockDialog(
     m_pDragED->SetSelectionChangedHdl( LINK( this, SwCustomizeAddressBlockDialog, SelectionChangedHdl_Impl));
     Link<> aFieldsLink = LINK(this, SwCustomizeAddressBlockDialog, FieldChangeHdl_Impl);
     m_pFieldCB->SetModifyHdl(aFieldsLink);
-    m_pFieldCB->SetSelectHdl(aFieldsLink);
+    m_pFieldCB->SetSelectHdl(LINK(this, SwCustomizeAddressBlockDialog, FieldChangeComboBoxHdl_Impl));
     Link<Button*,void> aImgButtonHdl = LINK(this, SwCustomizeAddressBlockDialog, ImageButtonHdl_Impl);
     m_pInsertFieldIB->SetClickHdl(aImgButtonHdl);
     m_pRemoveFieldIB->SetClickHdl(aImgButtonHdl);
@@ -720,6 +720,10 @@ IMPL_LINK_TYPED(SwCustomizeAddressBlockDialog, SelectionChangedHdl_Impl, Address
     bOnEntry = false;
 }
 
+IMPL_LINK_NOARG_TYPED(SwCustomizeAddressBlockDialog, FieldChangeComboBoxHdl_Impl, ComboBox&, void)
+{
+    FieldChangeHdl_Impl(nullptr);
+}
 IMPL_LINK_NOARG(SwCustomizeAddressBlockDialog, FieldChangeHdl_Impl)
 {
     //changing the field content changes the related members, too
diff --git a/sw/source/ui/dbui/mmaddressblockpage.hxx b/sw/source/ui/dbui/mmaddressblockpage.hxx
index 88e6530..b4abb2b 100644
--- a/sw/source/ui/dbui/mmaddressblockpage.hxx
+++ b/sw/source/ui/dbui/mmaddressblockpage.hxx
@@ -226,6 +226,7 @@ private:
     DECL_LINK_TYPED(ImageButtonHdl_Impl, Button*, void);
     DECL_LINK_TYPED(SelectionChangedHdl_Impl, AddressMultiLineEdit&, void);
     DECL_LINK(FieldChangeHdl_Impl, void *);
+    DECL_LINK_TYPED(FieldChangeComboBoxHdl_Impl, ComboBox&, void);
 
     bool            HasItem_Impl(sal_Int32 nUserData);
     sal_Int32       GetSelectedItem_Impl();
diff --git a/sw/source/ui/dbui/mmgreetingspage.cxx b/sw/source/ui/dbui/mmgreetingspage.cxx
index 5192a73..7cd8d12 100644
--- a/sw/source/ui/dbui/mmgreetingspage.cxx
+++ b/sw/source/ui/dbui/mmgreetingspage.cxx
@@ -144,11 +144,14 @@ IMPL_LINK_NOARG(SwMailMergeGreetingsPage, GreetingSelectHdl_Impl)
     UpdatePreview();
     return 0;
 }
-
 IMPL_LINK_NOARG_TYPED(SwMailMergeGreetingsPage, GreetingSelectListBoxHdl_Impl, ListBox&, void)
 {
     UpdatePreview();
 }
+IMPL_LINK_NOARG_TYPED(SwMailMergeGreetingsPage, GreetingSelectComboBoxHdl_Impl, ComboBox&, void)
+{
+    UpdatePreview();
+}
 
 void SwMailMergeGreetingsPage::UpdatePreview()
 {
@@ -269,9 +272,9 @@ SwMailMergeGreetingsPage::SwMailMergeGreetingsPage(SwMailMergeWizard* _pParent)
     m_pFemaleLB->SetSelectHdl(aLBoxLink2);
     m_pMaleLB->SetSelectHdl(aLBoxLink2);
     m_pFemaleColumnLB->SetSelectHdl(aLBoxLink2);
-    m_pFemaleFieldCB->SetSelectHdl(aLBoxLink);
+    m_pFemaleFieldCB->SetSelectHdl(LINK(this, SwMailMergeGreetingsPage, GreetingSelectComboBoxHdl_Impl));
     m_pFemaleFieldCB->SetModifyHdl(aLBoxLink);
-    m_pNeutralCB->SetSelectHdl(aLBoxLink);
+    m_pNeutralCB->SetSelectHdl(LINK(this, SwMailMergeGreetingsPage, GreetingSelectComboBoxHdl_Impl));
     m_pNeutralCB->SetModifyHdl(aLBoxLink);
 
     Link<Button*,void> aDataLink = LINK(this, SwMailMergeGreetingsPage, InsertDataHdl_Impl);
diff --git a/sw/source/ui/dbui/mmgreetingspage.hxx b/sw/source/ui/dbui/mmgreetingspage.hxx
index 7547267..f0edeaa 100644
--- a/sw/source/ui/dbui/mmgreetingspage.hxx
+++ b/sw/source/ui/dbui/mmgreetingspage.hxx
@@ -82,6 +82,7 @@ class SwMailMergeGreetingsPage : public svt::OWizardPage,
     DECL_LINK_TYPED(ContainsHdl_Impl, Button*, void);
     DECL_LINK_TYPED(InsertDataHdl_Impl, Button*, void);
     DECL_LINK(GreetingSelectHdl_Impl, void *);
+    DECL_LINK_TYPED(GreetingSelectComboBoxHdl_Impl, ComboBox&, void);
     DECL_LINK_TYPED(GreetingSelectListBoxHdl_Impl, ListBox&, void);
     DECL_LINK_TYPED(AssignHdl_Impl, Button*, void);
 
diff --git a/sw/source/ui/frmdlg/cption.cxx b/sw/source/ui/frmdlg/cption.cxx
index f20bbbb..d0435d8 100644
--- a/sw/source/ui/frmdlg/cption.cxx
+++ b/sw/source/ui/frmdlg/cption.cxx
@@ -136,8 +136,7 @@ SwCaptionDialog::SwCaptionDialog( vcl::Window *pParent, SwView &rV ) :
     m_pNumberingSeparatorED->SetModifyHdl ( aLk );
     m_pSepEdit->SetModifyHdl( aLk );
 
-    aLk = LINK(this, SwCaptionDialog, SelectHdl);
-    m_pCategoryBox->SetSelectHdl( aLk );
+    m_pCategoryBox->SetSelectHdl( LINK(this, SwCaptionDialog, SelectHdl) );
     m_pFormatBox->SetSelectHdl( LINK(this, SwCaptionDialog, SelectListBoxHdl) );
     m_pOptionButton->SetClickHdl( LINK( this, SwCaptionDialog, OptionHdl ) );
     m_pAutoCaptionButton->SetClickHdl(LINK(this, SwCaptionDialog, CaptionHdl));
@@ -306,10 +305,9 @@ IMPL_LINK_NOARG_TYPED(SwCaptionDialog, SelectListBoxHdl, ListBox&, void)
 {
     DrawSample();
 }
-IMPL_LINK_NOARG(SwCaptionDialog, SelectHdl)
+IMPL_LINK_NOARG_TYPED(SwCaptionDialog, SelectHdl, ComboBox&, void)
 {
     DrawSample();
-    return 0;
 }
 
 IMPL_LINK_NOARG(SwCaptionDialog, ModifyHdl)
diff --git a/sw/source/ui/index/swuiidxmrk.cxx b/sw/source/ui/index/swuiidxmrk.cxx
index c537d83..331bb63 100644
--- a/sw/source/ui/index/swuiidxmrk.cxx
+++ b/sw/source/ui/index/swuiidxmrk.cxx
@@ -992,7 +992,7 @@ class SwCreateAuthEntryDlg_Impl : public ModalDialog
     bool            m_bNewEntryMode;
     bool            m_bNameAllowed;
 
-    DECL_LINK(IdentifierHdl, ComboBox*);
+    DECL_LINK_TYPED(IdentifierHdl, ComboBox&, void);
     DECL_LINK(ShortNameHdl, Edit*);
     DECL_LINK_TYPED(EnableHdl, ListBox&, void);
 
@@ -1553,14 +1553,14 @@ OUString  SwCreateAuthEntryDlg_Impl::GetEntryText(ToxAuthorityField eField) cons
     return OUString();
 }
 
-IMPL_LINK(SwCreateAuthEntryDlg_Impl, IdentifierHdl, ComboBox*, pBox)
+IMPL_LINK_TYPED(SwCreateAuthEntryDlg_Impl, IdentifierHdl, ComboBox&, rBox, void)
 {
     const SwAuthorityFieldType* pFType = static_cast<const SwAuthorityFieldType*>(
                                 rWrtSh.GetFieldType(RES_AUTHORITY, OUString()));
     if(pFType)
     {
         const SwAuthEntry* pEntry = pFType->GetEntryByIdentifier(
-                                                        pBox->GetText());
+                                                        rBox.GetText());
         if(pEntry)
         {
             for(int i = 0; i < AUTH_FIELD_END; i++)
@@ -1577,7 +1577,6 @@ IMPL_LINK(SwCreateAuthEntryDlg_Impl, IdentifierHdl, ComboBox*, pBox)
             }
         }
     }
-    return 0;
 }
 
 IMPL_LINK(SwCreateAuthEntryDlg_Impl, ShortNameHdl, Edit*, pEdit)
diff --git a/sw/source/uibase/inc/cption.hxx b/sw/source/uibase/inc/cption.hxx
index 371faa4..de5e9b4 100644
--- a/sw/source/uibase/inc/cption.hxx
+++ b/sw/source/uibase/inc/cption.hxx
@@ -94,7 +94,7 @@ class SwCaptionDialog : public SvxStandardDialog
     ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameAccess >    xNameAccess;
     ::com::sun::star::uno::Reference< ::com::sun::star::container::XNamed >         xNamed;
 
-    DECL_LINK(SelectHdl, void *);
+    DECL_LINK_TYPED(SelectHdl, ComboBox&, void);
     DECL_LINK_TYPED(SelectListBoxHdl, ListBox&, void);
     DECL_LINK(ModifyHdl, void *);
     DECL_LINK_TYPED(OptionHdl, Button *, void);
diff --git a/sw/source/uibase/inc/optload.hxx b/sw/source/uibase/inc/optload.hxx
index 96d6bf6..0843e6d 100644
--- a/sw/source/uibase/inc/optload.hxx
+++ b/sw/source/uibase/inc/optload.hxx
@@ -153,7 +153,7 @@ private:
     SwFieldMgr* pMgr;
     bool bHTMLMode;
 
-    DECL_LINK(SelectHdl, void *);
+    DECL_LINK_TYPED(SelectHdl, ComboBox&, void);
     DECL_LINK_TYPED(SelectListBoxHdl, ListBox&, void);
     DECL_LINK(ModifyHdl, void * = 0);
     DECL_LINK_TYPED( OrderHdl, ListBox&, void );
diff --git a/vcl/source/control/combobox.cxx b/vcl/source/control/combobox.cxx
index 2eace9a..faa2dc7 100644
--- a/vcl/source/control/combobox.cxx
+++ b/vcl/source/control/combobox.cxx
@@ -59,8 +59,8 @@ struct ComboBox::Impl
     bool                m_isSyntheticModify   : 1;
     bool                m_isMatchCase         : 1;
     sal_Int32           m_nMaxWidthChars;
-    Link<>              m_SelectHdl;
-    Link<>              m_DoubleClickHdl;
+    Link<ComboBox&,void>               m_SelectHdl;
+    Link<ComboBox&,void>               m_DoubleClickHdl;
     boost::signals2::scoped_connection m_AutocompleteConnection;
 
     explicit Impl(ComboBox & rThis)
@@ -547,12 +547,12 @@ void ComboBox::ToggleDropDown()
 
 void ComboBox::Select()
 {
-    ImplCallEventListenersAndHandler( VCLEVENT_COMBOBOX_SELECT, [this] () { m_pImpl->m_SelectHdl.Call(this); } );
+    ImplCallEventListenersAndHandler( VCLEVENT_COMBOBOX_SELECT, [this] () { m_pImpl->m_SelectHdl.Call(*this); } );
 }
 
 void ComboBox::DoubleClick()
 {
-    ImplCallEventListenersAndHandler( VCLEVENT_COMBOBOX_DOUBLECLICK, [this] () { m_pImpl->m_DoubleClickHdl.Call(this); } );
+    ImplCallEventListenersAndHandler( VCLEVENT_COMBOBOX_DOUBLECLICK, [this] () { m_pImpl->m_DoubleClickHdl.Call(*this); } );
 }
 
 bool ComboBox::IsAutoSizeEnabled() const { return m_pImpl->m_isDDAutoSize; }
@@ -1053,13 +1053,13 @@ bool ComboBox::IsMultiSelectionEnabled() const
     return m_pImpl->m_pImplLB->IsMultiSelectionEnabled();
 }
 
-void ComboBox::SetSelectHdl(const Link<>& rLink) { m_pImpl->m_SelectHdl = rLink; }
+void ComboBox::SetSelectHdl(const Link<ComboBox&,void>& rLink) { m_pImpl->m_SelectHdl = rLink; }
 
-const Link<>& ComboBox::GetSelectHdl() const { return m_pImpl->m_SelectHdl; }
+const Link<ComboBox&,void>& ComboBox::GetSelectHdl() const { return m_pImpl->m_SelectHdl; }
 
-void ComboBox::SetDoubleClickHdl(const Link<>& rLink) { m_pImpl->m_DoubleClickHdl = rLink; }
+void ComboBox::SetDoubleClickHdl(const Link<ComboBox&,void>& rLink) { m_pImpl->m_DoubleClickHdl = rLink; }
 
-const Link<>& ComboBox::GetDoubleClickHdl() const { return m_pImpl->m_DoubleClickHdl; }
+const Link<ComboBox&,void>& ComboBox::GetDoubleClickHdl() const { return m_pImpl->m_DoubleClickHdl; }
 
 long ComboBox::CalcWindowSizePixel( sal_uInt16 nLines ) const
 {


More information about the Libreoffice-commits mailing list