#if WXWIN_COMPATIBILITY_2_4
     // non-virtual default event handlers to forward events to the virtuals
-    void _OnMouseMove(wxEvent&);
-    void _OnLButtonDown(wxEvent&);
-    void _OnLButtonUp(wxEvent&);
-    void _OnRButtonDown(wxEvent&);
-    void _OnRButtonUp(wxEvent&);
-    void _OnLButtonDClick(wxEvent&);
-    void _OnRButtonDClick(wxEvent&);
+    void _OnMouseMove(wxTaskBarIconEvent&);
+    void _OnLButtonDown(wxTaskBarIconEvent&);
+    void _OnLButtonUp(wxTaskBarIconEvent&);
+    void _OnRButtonDown(wxTaskBarIconEvent&);
+    void _OnRButtonUp(wxTaskBarIconEvent&);
+    void _OnLButtonDClick(wxTaskBarIconEvent&);
+    void _OnRButtonDClick(wxTaskBarIconEvent&);
 
     DECLARE_EVENT_TABLE()
 #endif
 
     
 private:
     // default events handling, calls CreatePopupMenu:
-    void OnRightButtonDown(wxEvent& event);
+    void OnRightButtonDown(wxTaskBarIconEvent& event);
     
     DECLARE_EVENT_TABLE()
     DECLARE_NO_COPY_CLASS(wxTaskBarIconBase)
     DECLARE_NO_ASSIGN_CLASS(wxTaskBarIconEvent)
 };
 
+typedef void (wxEvtHandler::*wxTaskBarIconEventFunction)(wxTaskBarIconEvent&);
+
 BEGIN_DECLARE_EVENT_TYPES()
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_MOVE,1550)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_LEFT_DOWN,1551)
     DECLARE_EXPORTED_EVENT_TYPE(WXDLLIMPEXP_ADV,wxEVT_TASKBAR_RIGHT_DCLICK,1556)
 END_DECLARE_EVENT_TYPES()
 
-#define EVT_TASKBAR_MOVE(fn)         DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxEventFunction, &fn ), NULL),
-#define EVT_TASKBAR_LEFT_DOWN(fn)    DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxEventFunction, &fn ), NULL),
-#define EVT_TASKBAR_LEFT_UP(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxEventFunction, &fn ), NULL),
-#define EVT_TASKBAR_RIGHT_DOWN(fn)   DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxEventFunction, &fn ), NULL),
-#define EVT_TASKBAR_RIGHT_UP(fn)     DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxEventFunction, &fn ), NULL),
-#define EVT_TASKBAR_LEFT_DCLICK(fn)  DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxEventFunction, &fn ), NULL),
-#define EVT_TASKBAR_RIGHT_DCLICK(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxEventFunction, &fn ), NULL),
+#define EVT_TASKBAR_MOVE(fn)         DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxTaskBarIconEventFunction, &fn ), NULL),
+#define EVT_TASKBAR_LEFT_DOWN(fn)    DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxTaskBarIconEventFunction, &fn ), NULL),
+#define EVT_TASKBAR_LEFT_UP(fn)      DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxTaskBarIconEventFunction, &fn ), NULL),
+#define EVT_TASKBAR_RIGHT_DOWN(fn)   DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxTaskBarIconEventFunction, &fn ), NULL),
+#define EVT_TASKBAR_RIGHT_UP(fn)     DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxTaskBarIconEventFunction, &fn ), NULL),
+#define EVT_TASKBAR_LEFT_DCLICK(fn)  DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxTaskBarIconEventFunction, &fn ), NULL),
+#define EVT_TASKBAR_RIGHT_DCLICK(fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction)  wxStaticCastEvent( wxTaskBarIconEventFunction, &fn ), NULL),
 
 #endif
     // wxHAS_TASK_BAR_ICON
 
 void wxTaskBarIcon::OnLButtonDClick(wxEvent&)     {}
 void wxTaskBarIcon::OnRButtonDClick(wxEvent&)     {}
 
-void wxTaskBarIcon::_OnMouseMove(wxEvent& e)      { OnMouseMove(e);     }
-void wxTaskBarIcon::_OnLButtonDown(wxEvent& e)    { OnLButtonDown(e);   }
-void wxTaskBarIcon::_OnLButtonUp(wxEvent& e)      { OnLButtonUp(e);     }
-void wxTaskBarIcon::_OnRButtonDown(wxEvent& e)    { OnRButtonDown(e);   }
-void wxTaskBarIcon::_OnRButtonUp(wxEvent& e)      { OnRButtonUp(e);     }
-void wxTaskBarIcon::_OnLButtonDClick(wxEvent& e)  { OnLButtonDClick(e); }
-void wxTaskBarIcon::_OnRButtonDClick(wxEvent& e)  { OnRButtonDClick(e); }
+void wxTaskBarIcon::_OnMouseMove(wxTaskBarIconEvent& e)
+    { OnMouseMove(e);     }
+void wxTaskBarIcon::_OnLButtonDown(wxTaskBarIconEvent& e)
+    { OnLButtonDown(e);   }
+void wxTaskBarIcon::_OnLButtonUp(wxTaskBarIconEvent& e)
+    { OnLButtonUp(e);     }
+void wxTaskBarIcon::_OnRButtonDown(wxTaskBarIconEvent& e)
+    { OnRButtonDown(e);   }
+void wxTaskBarIcon::_OnRButtonUp(wxTaskBarIconEvent& e)
+    { OnRButtonUp(e);     }
+void wxTaskBarIcon::_OnLButtonDClick(wxTaskBarIconEvent& e)
+    { OnLButtonDClick(e); }
+void wxTaskBarIcon::_OnRButtonDClick(wxTaskBarIconEvent& e)
+    { OnRButtonDClick(e); }
 #endif
 
 void wxTaskBarIcon::RegisterWindowMessages()