From 854e189f90dac9ba5e0239bca79aed64e8d6f46c Mon Sep 17 00:00:00 2001
From: =?utf8?q?V=C3=A1clav=20Slav=C3=ADk?= <vslavik@fastmail.fm>
Date: Thu, 12 Jun 2003 18:10:38 +0000
Subject: [PATCH] added wxRTTI to XRC handlers (patch #752996 by David
 Falkinder)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@21078 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
---
 contrib/include/wx/xrc/xh_bmp.h   | 2 ++
 contrib/include/wx/xrc/xh_bmpbt.h | 1 +
 contrib/include/wx/xrc/xh_bttn.h  | 1 +
 contrib/include/wx/xrc/xh_cald.h  | 1 +
 contrib/include/wx/xrc/xh_chckb.h | 1 +
 contrib/include/wx/xrc/xh_chckl.h | 1 +
 contrib/include/wx/xrc/xh_choic.h | 1 +
 contrib/include/wx/xrc/xh_combo.h | 1 +
 contrib/include/wx/xrc/xh_dlg.h   | 1 +
 contrib/include/wx/xrc/xh_frame.h | 1 +
 contrib/include/wx/xrc/xh_gauge.h | 1 +
 contrib/include/wx/xrc/xh_gdctl.h | 1 +
 contrib/include/wx/xrc/xh_html.h  | 1 +
 contrib/include/wx/xrc/xh_listb.h | 1 +
 contrib/include/wx/xrc/xh_listc.h | 1 +
 contrib/include/wx/xrc/xh_menu.h  | 2 ++
 contrib/include/wx/xrc/xh_notbk.h | 1 +
 contrib/include/wx/xrc/xh_panel.h | 1 +
 contrib/include/wx/xrc/xh_radbt.h | 1 +
 contrib/include/wx/xrc/xh_radbx.h | 1 +
 contrib/include/wx/xrc/xh_scrol.h | 1 +
 contrib/include/wx/xrc/xh_scwin.h | 1 +
 contrib/include/wx/xrc/xh_sizer.h | 1 +
 contrib/include/wx/xrc/xh_slidr.h | 1 +
 contrib/include/wx/xrc/xh_spin.h  | 2 ++
 contrib/include/wx/xrc/xh_split.h | 1 +
 contrib/include/wx/xrc/xh_stbmp.h | 1 +
 contrib/include/wx/xrc/xh_stbox.h | 1 +
 contrib/include/wx/xrc/xh_stlin.h | 1 +
 contrib/include/wx/xrc/xh_sttxt.h | 1 +
 contrib/include/wx/xrc/xh_text.h  | 1 +
 contrib/include/wx/xrc/xh_toolb.h | 1 +
 contrib/include/wx/xrc/xh_tree.h  | 1 +
 contrib/include/wx/xrc/xh_unkwn.h | 1 +
 contrib/include/wx/xrc/xh_wizrd.h | 1 +
 contrib/include/wx/xrc/xmlres.h   | 1 +
 contrib/src/xrc/xh_bmp.cpp        | 3 +++
 contrib/src/xrc/xh_bmpbt.cpp      | 2 ++
 contrib/src/xrc/xh_bttn.cpp       | 1 +
 contrib/src/xrc/xh_cald.cpp       | 1 +
 contrib/src/xrc/xh_chckb.cpp      | 2 ++
 contrib/src/xrc/xh_chckl.cpp      | 2 ++
 contrib/src/xrc/xh_choic.cpp      | 2 ++
 contrib/src/xrc/xh_combo.cpp      | 2 ++
 contrib/src/xrc/xh_dlg.cpp        | 1 +
 contrib/src/xrc/xh_frame.cpp      | 1 +
 contrib/src/xrc/xh_gauge.cpp      | 2 ++
 contrib/src/xrc/xh_gdctl.cpp      | 2 ++
 contrib/src/xrc/xh_html.cpp       | 1 +
 contrib/src/xrc/xh_listb.cpp      | 2 ++
 contrib/src/xrc/xh_listc.cpp      | 2 ++
 contrib/src/xrc/xh_menu.cpp       | 3 +++
 contrib/src/xrc/xh_notbk.cpp      | 2 ++
 contrib/src/xrc/xh_panel.cpp      | 1 +
 contrib/src/xrc/xh_radbt.cpp      | 2 ++
 contrib/src/xrc/xh_radbx.cpp      | 2 ++
 contrib/src/xrc/xh_scrol.cpp      | 1 +
 contrib/src/xrc/xh_scwin.cpp      | 1 +
 contrib/src/xrc/xh_sizer.cpp      | 2 ++
 contrib/src/xrc/xh_slidr.cpp      | 2 ++
 contrib/src/xrc/xh_spin.cpp       | 4 ++++
 contrib/src/xrc/xh_split.cpp      | 2 ++
 contrib/src/xrc/xh_stbmp.cpp      | 2 ++
 contrib/src/xrc/xh_stbox.cpp      | 2 ++
 contrib/src/xrc/xh_stlin.cpp      | 2 ++
 contrib/src/xrc/xh_sttxt.cpp      | 2 ++
 contrib/src/xrc/xh_text.cpp       | 2 ++
 contrib/src/xrc/xh_toolb.cpp      | 2 ++
 contrib/src/xrc/xh_tree.cpp       | 1 +
 contrib/src/xrc/xh_unkwn.cpp      | 2 ++
 contrib/src/xrc/xh_wizrd.cpp      | 1 +
 contrib/src/xrc/xmlres.cpp        | 1 +
 include/wx/xrc/xh_bmp.h           | 2 ++
 include/wx/xrc/xh_bmpbt.h         | 1 +
 include/wx/xrc/xh_bttn.h          | 1 +
 include/wx/xrc/xh_cald.h          | 1 +
 include/wx/xrc/xh_chckb.h         | 1 +
 include/wx/xrc/xh_chckl.h         | 1 +
 include/wx/xrc/xh_choic.h         | 1 +
 include/wx/xrc/xh_combo.h         | 1 +
 include/wx/xrc/xh_dlg.h           | 1 +
 include/wx/xrc/xh_frame.h         | 1 +
 include/wx/xrc/xh_gauge.h         | 1 +
 include/wx/xrc/xh_gdctl.h         | 1 +
 include/wx/xrc/xh_html.h          | 1 +
 include/wx/xrc/xh_listb.h         | 1 +
 include/wx/xrc/xh_listc.h         | 1 +
 include/wx/xrc/xh_menu.h          | 2 ++
 include/wx/xrc/xh_notbk.h         | 1 +
 include/wx/xrc/xh_panel.h         | 1 +
 include/wx/xrc/xh_radbt.h         | 1 +
 include/wx/xrc/xh_radbx.h         | 1 +
 include/wx/xrc/xh_scrol.h         | 1 +
 include/wx/xrc/xh_scwin.h         | 1 +
 include/wx/xrc/xh_sizer.h         | 1 +
 include/wx/xrc/xh_slidr.h         | 1 +
 include/wx/xrc/xh_spin.h          | 2 ++
 include/wx/xrc/xh_split.h         | 1 +
 include/wx/xrc/xh_stbmp.h         | 1 +
 include/wx/xrc/xh_stbox.h         | 1 +
 include/wx/xrc/xh_stlin.h         | 1 +
 include/wx/xrc/xh_sttxt.h         | 1 +
 include/wx/xrc/xh_text.h          | 1 +
 include/wx/xrc/xh_toolb.h         | 1 +
 include/wx/xrc/xh_tree.h          | 1 +
 include/wx/xrc/xh_unkwn.h         | 1 +
 include/wx/xrc/xh_wizrd.h         | 1 +
 include/wx/xrc/xmlres.h           | 1 +
 src/xrc/xh_bmp.cpp                | 3 +++
 src/xrc/xh_bmpbt.cpp              | 2 ++
 src/xrc/xh_bttn.cpp               | 1 +
 src/xrc/xh_cald.cpp               | 1 +
 src/xrc/xh_chckb.cpp              | 2 ++
 src/xrc/xh_chckl.cpp              | 2 ++
 src/xrc/xh_choic.cpp              | 2 ++
 src/xrc/xh_combo.cpp              | 2 ++
 src/xrc/xh_dlg.cpp                | 1 +
 src/xrc/xh_frame.cpp              | 1 +
 src/xrc/xh_gauge.cpp              | 2 ++
 src/xrc/xh_gdctl.cpp              | 2 ++
 src/xrc/xh_html.cpp               | 1 +
 src/xrc/xh_listb.cpp              | 2 ++
 src/xrc/xh_listc.cpp              | 2 ++
 src/xrc/xh_menu.cpp               | 3 +++
 src/xrc/xh_notbk.cpp              | 2 ++
 src/xrc/xh_panel.cpp              | 1 +
 src/xrc/xh_radbt.cpp              | 2 ++
 src/xrc/xh_radbx.cpp              | 2 ++
 src/xrc/xh_scrol.cpp              | 1 +
 src/xrc/xh_scwin.cpp              | 1 +
 src/xrc/xh_sizer.cpp              | 2 ++
 src/xrc/xh_slidr.cpp              | 2 ++
 src/xrc/xh_spin.cpp               | 4 ++++
 src/xrc/xh_split.cpp              | 2 ++
 src/xrc/xh_stbmp.cpp              | 2 ++
 src/xrc/xh_stbox.cpp              | 2 ++
 src/xrc/xh_stlin.cpp              | 2 ++
 src/xrc/xh_sttxt.cpp              | 2 ++
 src/xrc/xh_text.cpp               | 2 ++
 src/xrc/xh_toolb.cpp              | 2 ++
 src/xrc/xh_tree.cpp               | 1 +
 src/xrc/xh_unkwn.cpp              | 2 ++
 src/xrc/xh_wizrd.cpp              | 1 +
 src/xrc/xmlres.cpp                | 1 +
 144 files changed, 208 insertions(+)

diff --git a/contrib/include/wx/xrc/xh_bmp.h b/contrib/include/wx/xrc/xh_bmp.h
index 946d15bc73..eda67ffd50 100644
--- a/contrib/include/wx/xrc/xh_bmp.h
+++ b/contrib/include/wx/xrc/xh_bmp.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxBitmapXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxBitmapXmlHandler)
 public:
     wxBitmapXmlHandler();
     virtual wxObject *DoCreateResource();
@@ -28,6 +29,7 @@ public:
 
 class WXXMLDLLEXPORT wxIconXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxIconXmlHandler)
 public:
     wxIconXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_bmpbt.h b/contrib/include/wx/xrc/xh_bmpbt.h
index 34862621f3..3be9eb5e0e 100644
--- a/contrib/include/wx/xrc/xh_bmpbt.h
+++ b/contrib/include/wx/xrc/xh_bmpbt.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxBitmapButtonXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxBitmapButtonXmlHandler)
 public:
     wxBitmapButtonXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_bttn.h b/contrib/include/wx/xrc/xh_bttn.h
index 719be7264d..1245202b7e 100644
--- a/contrib/include/wx/xrc/xh_bttn.h
+++ b/contrib/include/wx/xrc/xh_bttn.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxButtonXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxButtonXmlHandler)
 public:
     wxButtonXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_cald.h b/contrib/include/wx/xrc/xh_cald.h
index 5c39f44730..e77aff06bb 100644
--- a/contrib/include/wx/xrc/xh_cald.h
+++ b/contrib/include/wx/xrc/xh_cald.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxCalendarCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxCalendarCtrlXmlHandler)
 public:
     wxCalendarCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_chckb.h b/contrib/include/wx/xrc/xh_chckb.h
index 3738377b2f..e3a2bc3358 100644
--- a/contrib/include/wx/xrc/xh_chckb.h
+++ b/contrib/include/wx/xrc/xh_chckb.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxCheckBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxCheckBoxXmlHandler)
 public:
     wxCheckBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_chckl.h b/contrib/include/wx/xrc/xh_chckl.h
index f5913dce84..e9a6cc76c9 100644
--- a/contrib/include/wx/xrc/xh_chckl.h
+++ b/contrib/include/wx/xrc/xh_chckl.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxCheckListXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxCheckListXmlHandler)
 public:
     wxCheckListXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_choic.h b/contrib/include/wx/xrc/xh_choic.h
index 1ea5a70182..e30460546c 100644
--- a/contrib/include/wx/xrc/xh_choic.h
+++ b/contrib/include/wx/xrc/xh_choic.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxChoiceXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxChoiceXmlHandler)
 public:
     wxChoiceXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_combo.h b/contrib/include/wx/xrc/xh_combo.h
index 6be381c052..ddc1c29eb7 100644
--- a/contrib/include/wx/xrc/xh_combo.h
+++ b/contrib/include/wx/xrc/xh_combo.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxComboBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxComboBoxXmlHandler)
 public:
     wxComboBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_dlg.h b/contrib/include/wx/xrc/xh_dlg.h
index a7fb822746..9ba7c76d7a 100644
--- a/contrib/include/wx/xrc/xh_dlg.h
+++ b/contrib/include/wx/xrc/xh_dlg.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxDialogXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxDialogXmlHandler)
 public:
     wxDialogXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_frame.h b/contrib/include/wx/xrc/xh_frame.h
index a5e824e323..e37681e0a7 100644
--- a/contrib/include/wx/xrc/xh_frame.h
+++ b/contrib/include/wx/xrc/xh_frame.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxFrameXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxFrameXmlHandler)
 public:
     wxFrameXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_gauge.h b/contrib/include/wx/xrc/xh_gauge.h
index 50a83dfba1..18e9354f99 100644
--- a/contrib/include/wx/xrc/xh_gauge.h
+++ b/contrib/include/wx/xrc/xh_gauge.h
@@ -24,6 +24,7 @@
 
 class WXXMLDLLEXPORT wxGaugeXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxGaugeXmlHandler)
     enum
     {
         wxGAUGE_DEFAULT_RANGE = 100
diff --git a/contrib/include/wx/xrc/xh_gdctl.h b/contrib/include/wx/xrc/xh_gdctl.h
index c41f1197e6..0893b0ad6d 100644
--- a/contrib/include/wx/xrc/xh_gdctl.h
+++ b/contrib/include/wx/xrc/xh_gdctl.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxGenericDirCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxGenericDirCtrlXmlHandler)
 public:
     wxGenericDirCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_html.h b/contrib/include/wx/xrc/xh_html.h
index 51e59673f5..12db270888 100644
--- a/contrib/include/wx/xrc/xh_html.h
+++ b/contrib/include/wx/xrc/xh_html.h
@@ -23,6 +23,7 @@
 
 class WXXMLDLLEXPORT wxHtmlWindowXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxHtmlWindowXmlHandler)
 public:
     wxHtmlWindowXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_listb.h b/contrib/include/wx/xrc/xh_listb.h
index 35f0b34d2d..890266b2f3 100644
--- a/contrib/include/wx/xrc/xh_listb.h
+++ b/contrib/include/wx/xrc/xh_listb.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxListBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxListBoxXmlHandler)
 public:
     wxListBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_listc.h b/contrib/include/wx/xrc/xh_listc.h
index 9199f594dd..8d32d77f01 100644
--- a/contrib/include/wx/xrc/xh_listc.h
+++ b/contrib/include/wx/xrc/xh_listc.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxListCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxListCtrlXmlHandler)
 public:
     wxListCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_menu.h b/contrib/include/wx/xrc/xh_menu.h
index 79ad952ee3..1e516bf460 100644
--- a/contrib/include/wx/xrc/xh_menu.h
+++ b/contrib/include/wx/xrc/xh_menu.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxMenuXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxMenuXmlHandler)
 public:
     wxMenuXmlHandler();
     virtual wxObject *DoCreateResource();
@@ -30,6 +31,7 @@ private:
 
 class WXXMLDLLEXPORT wxMenuBarXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxMenuBarXmlHandler)
     public:
         wxMenuBarXmlHandler();
         virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_notbk.h b/contrib/include/wx/xrc/xh_notbk.h
index 07f9f1a017..14e909568b 100644
--- a/contrib/include/wx/xrc/xh_notbk.h
+++ b/contrib/include/wx/xrc/xh_notbk.h
@@ -22,6 +22,7 @@ class WXDLLEXPORT wxNotebook;
 
 class WXXMLDLLEXPORT wxNotebookXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxNotebookXmlHandler)
 public:
     wxNotebookXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_panel.h b/contrib/include/wx/xrc/xh_panel.h
index 40459ae752..dfe8bd0653 100644
--- a/contrib/include/wx/xrc/xh_panel.h
+++ b/contrib/include/wx/xrc/xh_panel.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxPanelXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxPanelXmlHandler)
 public:
     wxPanelXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_radbt.h b/contrib/include/wx/xrc/xh_radbt.h
index 58c1288c12..8a6fd4b1a9 100644
--- a/contrib/include/wx/xrc/xh_radbt.h
+++ b/contrib/include/wx/xrc/xh_radbt.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxRadioButtonXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxRadioButtonXmlHandler)
 public:
     wxRadioButtonXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_radbx.h b/contrib/include/wx/xrc/xh_radbx.h
index 42cc3f52b8..bd0e8152cb 100644
--- a/contrib/include/wx/xrc/xh_radbx.h
+++ b/contrib/include/wx/xrc/xh_radbx.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxRadioBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxRadioBoxXmlHandler)
 public:
     wxRadioBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_scrol.h b/contrib/include/wx/xrc/xh_scrol.h
index f82e6df7d9..a13e56ad0b 100644
--- a/contrib/include/wx/xrc/xh_scrol.h
+++ b/contrib/include/wx/xrc/xh_scrol.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxScrollBarXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxScrollBarXmlHandler)
     enum
     {
         wxSL_DEFAULT_VALUE = 0,
diff --git a/contrib/include/wx/xrc/xh_scwin.h b/contrib/include/wx/xrc/xh_scwin.h
index 1befc41215..7f9da82d6e 100644
--- a/contrib/include/wx/xrc/xh_scwin.h
+++ b/contrib/include/wx/xrc/xh_scwin.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxScrolledWindowXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxScrolledWindowXmlHandler)
 public:
     wxScrolledWindowXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_sizer.h b/contrib/include/wx/xrc/xh_sizer.h
index 0c7d16a4ef..eb5e05c048 100644
--- a/contrib/include/wx/xrc/xh_sizer.h
+++ b/contrib/include/wx/xrc/xh_sizer.h
@@ -22,6 +22,7 @@ class WXDLLEXPORT wxSizer;
 
 class WXXMLDLLEXPORT wxSizerXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxSizerXmlHandler)
 public:
     wxSizerXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_slidr.h b/contrib/include/wx/xrc/xh_slidr.h
index 6e3223f959..ce2e582e22 100644
--- a/contrib/include/wx/xrc/xh_slidr.h
+++ b/contrib/include/wx/xrc/xh_slidr.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxSliderXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxSliderXmlHandler)
     enum
     {
         wxSL_DEFAULT_VALUE = 0,
diff --git a/contrib/include/wx/xrc/xh_spin.h b/contrib/include/wx/xrc/xh_spin.h
index 241039075e..7448302b7d 100644
--- a/contrib/include/wx/xrc/xh_spin.h
+++ b/contrib/include/wx/xrc/xh_spin.h
@@ -21,6 +21,7 @@
 #if wxUSE_SPINBTN
 class WXXMLDLLEXPORT wxSpinButtonXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxSpinButtonXmlHandler)
     enum
     {
         wxSP_DEFAULT_VALUE = 0,
@@ -38,6 +39,7 @@ public:
 #if wxUSE_SPINCTRL
 class WXXMLDLLEXPORT wxSpinCtrlXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxSpinCtrlXmlHandler)
     enum
     {
         wxSP_DEFAULT_VALUE = 0,
diff --git a/contrib/include/wx/xrc/xh_split.h b/contrib/include/wx/xrc/xh_split.h
index 010bede9f0..51c38b8c69 100644
--- a/contrib/include/wx/xrc/xh_split.h
+++ b/contrib/include/wx/xrc/xh_split.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxSplitterWindowXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxSplitterWindowXmlHandler)
 public:
     wxSplitterWindowXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_stbmp.h b/contrib/include/wx/xrc/xh_stbmp.h
index d22e96f53e..a9097141ef 100644
--- a/contrib/include/wx/xrc/xh_stbmp.h
+++ b/contrib/include/wx/xrc/xh_stbmp.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxStaticBitmapXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticBitmapXmlHandler)
 public:
     wxStaticBitmapXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_stbox.h b/contrib/include/wx/xrc/xh_stbox.h
index 1773a47f82..a5ed46c8b7 100644
--- a/contrib/include/wx/xrc/xh_stbox.h
+++ b/contrib/include/wx/xrc/xh_stbox.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxStaticBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticBoxXmlHandler)
 public:
     wxStaticBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_stlin.h b/contrib/include/wx/xrc/xh_stlin.h
index b8758ca7ce..7e0ec0d8f0 100644
--- a/contrib/include/wx/xrc/xh_stlin.h
+++ b/contrib/include/wx/xrc/xh_stlin.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxStaticLineXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticLineXmlHandler)
 public:
     wxStaticLineXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_sttxt.h b/contrib/include/wx/xrc/xh_sttxt.h
index e6c88984fa..fccad8ac70 100644
--- a/contrib/include/wx/xrc/xh_sttxt.h
+++ b/contrib/include/wx/xrc/xh_sttxt.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxStaticTextXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticTextXmlHandler)
 public:
     wxStaticTextXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_text.h b/contrib/include/wx/xrc/xh_text.h
index 84d256916b..e9bfbf5251 100644
--- a/contrib/include/wx/xrc/xh_text.h
+++ b/contrib/include/wx/xrc/xh_text.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxTextCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxTextCtrlXmlHandler)
 public:
     wxTextCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_toolb.h b/contrib/include/wx/xrc/xh_toolb.h
index 22f53ee935..6d71a41a29 100644
--- a/contrib/include/wx/xrc/xh_toolb.h
+++ b/contrib/include/wx/xrc/xh_toolb.h
@@ -23,6 +23,7 @@ class WXDLLEXPORT wxToolBar;
 
 class WXXMLDLLEXPORT wxToolBarXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxToolBarXmlHandler)
 public:
     wxToolBarXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_tree.h b/contrib/include/wx/xrc/xh_tree.h
index 985468c054..d75ff3dfa6 100644
--- a/contrib/include/wx/xrc/xh_tree.h
+++ b/contrib/include/wx/xrc/xh_tree.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxTreeCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxTreeCtrlXmlHandler)
 public:
     wxTreeCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_unkwn.h b/contrib/include/wx/xrc/xh_unkwn.h
index 74e835b108..d1b2cf5e0a 100644
--- a/contrib/include/wx/xrc/xh_unkwn.h
+++ b/contrib/include/wx/xrc/xh_unkwn.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxUnknownWidgetXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxUnknownWidgetXmlHandler)
 public:
     wxUnknownWidgetXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xh_wizrd.h b/contrib/include/wx/xrc/xh_wizrd.h
index aa5dfbf972..fbf81d0e2f 100644
--- a/contrib/include/wx/xrc/xh_wizrd.h
+++ b/contrib/include/wx/xrc/xh_wizrd.h
@@ -23,6 +23,7 @@
 
 class WXXMLDLLEXPORT wxWizardXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxWizardXmlHandler)
 public:
     wxWizardXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/contrib/include/wx/xrc/xmlres.h b/contrib/include/wx/xrc/xmlres.h
index 7500a893b0..952dc616e1 100644
--- a/contrib/include/wx/xrc/xmlres.h
+++ b/contrib/include/wx/xrc/xmlres.h
@@ -302,6 +302,7 @@ private:
 
 class WXXMLDLLEXPORT wxXmlResourceHandler : public wxObject
 {
+DECLARE_ABSTRACT_CLASS(wxXmlResourceHandler)
 public:
     // Constructor.
     wxXmlResourceHandler();
diff --git a/contrib/src/xrc/xh_bmp.cpp b/contrib/src/xrc/xh_bmp.cpp
index 0e4955031c..c7a1ed9b5a 100644
--- a/contrib/src/xrc/xh_bmp.cpp
+++ b/contrib/src/xrc/xh_bmp.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_bmp.h"
 #include "wx/bitmap.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapXmlHandler, wxXmlResourceHandler)
 
 wxBitmapXmlHandler::wxBitmapXmlHandler() 
 : wxXmlResourceHandler() 
@@ -38,6 +39,8 @@ bool wxBitmapXmlHandler::CanHandle(wxXmlNode *node)
     return IsOfClass(node, wxT("wxBitmap"));
 }
 
+IMPLEMENT_DYNAMIC_CLASS(wxIconXmlHandler, wxXmlResourceHandler)
+
 wxIconXmlHandler::wxIconXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_bmpbt.cpp b/contrib/src/xrc/xh_bmpbt.cpp
index b0500ed45e..3e94df6875 100644
--- a/contrib/src/xrc/xh_bmpbt.cpp
+++ b/contrib/src/xrc/xh_bmpbt.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_bmpbt.h"
 #include <wx/bmpbuttn.h>
 
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapButtonXmlHandler, wxXmlResourceHandler)
+
 wxBitmapButtonXmlHandler::wxBitmapButtonXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_bttn.cpp b/contrib/src/xrc/xh_bttn.cpp
index ff2d4813d0..e86eb5531d 100644
--- a/contrib/src/xrc/xh_bttn.cpp
+++ b/contrib/src/xrc/xh_bttn.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_bttn.h"
 #include "wx/button.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxButtonXmlHandler, wxXmlResourceHandler)
 
 wxButtonXmlHandler::wxButtonXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/contrib/src/xrc/xh_cald.cpp b/contrib/src/xrc/xh_cald.cpp
index 70359323c9..15c58fc797 100644
--- a/contrib/src/xrc/xh_cald.cpp
+++ b/contrib/src/xrc/xh_cald.cpp
@@ -27,6 +27,7 @@
 #include "wx/event.h"
 #include "wx/calctrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxCalendarCtrlXmlHandler, wxXmlResourceHandler)
 
 wxCalendarCtrlXmlHandler::wxCalendarCtrlXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/contrib/src/xrc/xh_chckb.cpp b/contrib/src/xrc/xh_chckb.cpp
index 35086f42b3..c7a0e824b6 100644
--- a/contrib/src/xrc/xh_chckb.cpp
+++ b/contrib/src/xrc/xh_chckb.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_CHECKBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxCheckBoxXmlHandler, wxXmlResourceHandler)
+
 wxCheckBoxXmlHandler::wxCheckBoxXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_chckl.cpp b/contrib/src/xrc/xh_chckl.cpp
index 18e1d02828..fb8c71ad34 100644
--- a/contrib/src/xrc/xh_chckl.cpp
+++ b/contrib/src/xrc/xh_chckl.cpp
@@ -25,6 +25,8 @@
 #include "wx/checklst.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxCheckListXmlHandler, wxXmlResourceHandler)
+
 wxCheckListXmlHandler::wxCheckListXmlHandler() 
 : wxXmlResourceHandler(), m_insideBox(FALSE)
 {
diff --git a/contrib/src/xrc/xh_choic.cpp b/contrib/src/xrc/xh_choic.cpp
index f2dd0bdb43..15f7c6a77c 100644
--- a/contrib/src/xrc/xh_choic.cpp
+++ b/contrib/src/xrc/xh_choic.cpp
@@ -23,6 +23,8 @@
 #include "wx/choice.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxChoiceXmlHandler, wxXmlResourceHandler)
+
 wxChoiceXmlHandler::wxChoiceXmlHandler() 
 : wxXmlResourceHandler() , m_insideBox(FALSE)
 {
diff --git a/contrib/src/xrc/xh_combo.cpp b/contrib/src/xrc/xh_combo.cpp
index 2a17231c4f..03fa009eb4 100644
--- a/contrib/src/xrc/xh_combo.cpp
+++ b/contrib/src/xrc/xh_combo.cpp
@@ -25,6 +25,8 @@
 
 #if wxUSE_COMBOBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxComboBoxXmlHandler, wxXmlResourceHandler)
+
 wxComboBoxXmlHandler::wxComboBoxXmlHandler() 
 : wxXmlResourceHandler() , m_insideBox(FALSE)
 {
diff --git a/contrib/src/xrc/xh_dlg.cpp b/contrib/src/xrc/xh_dlg.cpp
index 0305962c80..ea823db964 100644
--- a/contrib/src/xrc/xh_dlg.cpp
+++ b/contrib/src/xrc/xh_dlg.cpp
@@ -24,6 +24,7 @@
 #include "wx/log.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxDialogXmlHandler, wxXmlResourceHandler)
 
 wxDialogXmlHandler::wxDialogXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/contrib/src/xrc/xh_frame.cpp b/contrib/src/xrc/xh_frame.cpp
index 467e133472..2fcbbd357f 100644
--- a/contrib/src/xrc/xh_frame.cpp
+++ b/contrib/src/xrc/xh_frame.cpp
@@ -24,6 +24,7 @@
 #include "wx/log.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxFrameXmlHandler, wxXmlResourceHandler)
 
 wxFrameXmlHandler::wxFrameXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/contrib/src/xrc/xh_gauge.cpp b/contrib/src/xrc/xh_gauge.cpp
index a52b8075aa..852f7bbd65 100644
--- a/contrib/src/xrc/xh_gauge.cpp
+++ b/contrib/src/xrc/xh_gauge.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_GAUGE
 
+IMPLEMENT_DYNAMIC_CLASS(wxGaugeXmlHandler, wxXmlResourceHandler)
+
 wxGaugeXmlHandler::wxGaugeXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_gdctl.cpp b/contrib/src/xrc/xh_gdctl.cpp
index afd71480e9..7106b598cf 100644
--- a/contrib/src/xrc/xh_gdctl.cpp
+++ b/contrib/src/xrc/xh_gdctl.cpp
@@ -26,6 +26,8 @@
 #include "wx/xrc/xh_gdctl.h"
 #include "wx/dirctrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxGenericDirCtrlXmlHandler, wxXmlResourceHandler)
+
 wxGenericDirCtrlXmlHandler::wxGenericDirCtrlXmlHandler()
 : wxXmlResourceHandler()
 {
diff --git a/contrib/src/xrc/xh_html.cpp b/contrib/src/xrc/xh_html.cpp
index 8ac26c8b9b..8fe80d2082 100644
--- a/contrib/src/xrc/xh_html.cpp
+++ b/contrib/src/xrc/xh_html.cpp
@@ -26,6 +26,7 @@
 #include "wx/html/htmlwin.h"
 #include "wx/filesys.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindowXmlHandler, wxXmlResourceHandler)
 
 wxHtmlWindowXmlHandler::wxHtmlWindowXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/contrib/src/xrc/xh_listb.cpp b/contrib/src/xrc/xh_listb.cpp
index c3c9004d3f..68caf3c1b8 100644
--- a/contrib/src/xrc/xh_listb.cpp
+++ b/contrib/src/xrc/xh_listb.cpp
@@ -23,6 +23,8 @@
 #include "wx/listbox.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxListBoxXmlHandler, wxXmlResourceHandler)
+
 wxListBoxXmlHandler::wxListBoxXmlHandler() 
 : wxXmlResourceHandler() , m_insideBox(FALSE)
 {
diff --git a/contrib/src/xrc/xh_listc.cpp b/contrib/src/xrc/xh_listc.cpp
index 6f9f6b2ab4..327433f030 100644
--- a/contrib/src/xrc/xh_listc.cpp
+++ b/contrib/src/xrc/xh_listc.cpp
@@ -24,6 +24,8 @@
 #include "wx/listctrl.h"
 
 
+IMPLEMENT_DYNAMIC_CLASS(wxListCtrlXmlHandler, wxXmlResourceHandler)
+
 wxListCtrlXmlHandler::wxListCtrlXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_menu.cpp b/contrib/src/xrc/xh_menu.cpp
index 8c1e79c962..5df0d5f8d5 100644
--- a/contrib/src/xrc/xh_menu.cpp
+++ b/contrib/src/xrc/xh_menu.cpp
@@ -23,6 +23,7 @@
 #include "wx/menu.h"
 #include "wx/frame.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxMenuXmlHandler, wxXmlResourceHandler)
 
 wxMenuXmlHandler::wxMenuXmlHandler() : 
         wxXmlResourceHandler(), m_insideMenu(FALSE)
@@ -110,6 +111,8 @@ bool wxMenuXmlHandler::CanHandle(wxXmlNode *node)
            );
 }
 
+IMPLEMENT_DYNAMIC_CLASS(wxMenuBarXmlHandler, wxXmlResourceHandler)
+
 wxMenuBarXmlHandler::wxMenuBarXmlHandler() : wxXmlResourceHandler()
 {
     XRC_ADD_STYLE(wxMB_DOCKABLE);
diff --git a/contrib/src/xrc/xh_notbk.cpp b/contrib/src/xrc/xh_notbk.cpp
index b8b459cc82..27d6a5ee40 100644
--- a/contrib/src/xrc/xh_notbk.cpp
+++ b/contrib/src/xrc/xh_notbk.cpp
@@ -27,6 +27,8 @@
 #include "wx/notebook.h"
 #include "wx/sizer.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxNotebookXmlHandler, wxXmlResourceHandler)
+
 wxNotebookXmlHandler::wxNotebookXmlHandler() 
 : wxXmlResourceHandler(), m_isInside(FALSE), m_notebook(NULL)
 {
diff --git a/contrib/src/xrc/xh_panel.cpp b/contrib/src/xrc/xh_panel.cpp
index 07653815f7..d71a11d752 100644
--- a/contrib/src/xrc/xh_panel.cpp
+++ b/contrib/src/xrc/xh_panel.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_panel.h"
 #include "wx/panel.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxPanelXmlHandler, wxXmlResourceHandler)
 
 wxPanelXmlHandler::wxPanelXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/contrib/src/xrc/xh_radbt.cpp b/contrib/src/xrc/xh_radbt.cpp
index a117b1b9d0..8533992393 100644
--- a/contrib/src/xrc/xh_radbt.cpp
+++ b/contrib/src/xrc/xh_radbt.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_RADIOBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxRadioButtonXmlHandler, wxXmlResourceHandler)
+
 wxRadioButtonXmlHandler::wxRadioButtonXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_radbx.cpp b/contrib/src/xrc/xh_radbx.cpp
index f2f229cd9c..0bff4dda51 100644
--- a/contrib/src/xrc/xh_radbx.cpp
+++ b/contrib/src/xrc/xh_radbx.cpp
@@ -25,6 +25,8 @@
 
 #if wxUSE_RADIOBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxRadioBoxXmlHandler, wxXmlResourceHandler)
+
 wxRadioBoxXmlHandler::wxRadioBoxXmlHandler() 
 : wxXmlResourceHandler(), m_insideBox(FALSE)
 {
diff --git a/contrib/src/xrc/xh_scrol.cpp b/contrib/src/xrc/xh_scrol.cpp
index 8077a49101..653d8ec180 100644
--- a/contrib/src/xrc/xh_scrol.cpp
+++ b/contrib/src/xrc/xh_scrol.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_scrol.h"
 #include "wx/scrolbar.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxScrollBarXmlHandler, wxXmlResourceHandler)
 
 wxScrollBarXmlHandler::wxScrollBarXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/contrib/src/xrc/xh_scwin.cpp b/contrib/src/xrc/xh_scwin.cpp
index 9aedfefe57..1450db5857 100644
--- a/contrib/src/xrc/xh_scwin.cpp
+++ b/contrib/src/xrc/xh_scwin.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_scwin.h"
 #include "wx/scrolwin.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxScrolledWindowXmlHandler, wxXmlResourceHandler)
 
 wxScrolledWindowXmlHandler::wxScrolledWindowXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/contrib/src/xrc/xh_sizer.cpp b/contrib/src/xrc/xh_sizer.cpp
index 2a1bbf8eb9..f26bac9e7a 100644
--- a/contrib/src/xrc/xh_sizer.cpp
+++ b/contrib/src/xrc/xh_sizer.cpp
@@ -27,6 +27,8 @@
 #include "wx/panel.h"
 #include "wx/tokenzr.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxSizerXmlHandler, wxXmlResourceHandler)
+
 bool wxSizerXmlHandler::IsSizerNode(wxXmlNode *node)
 {
     return (IsOfClass(node, wxT("wxBoxSizer"))) ||
diff --git a/contrib/src/xrc/xh_slidr.cpp b/contrib/src/xrc/xh_slidr.cpp
index acf894537d..10e16450cc 100644
--- a/contrib/src/xrc/xh_slidr.cpp
+++ b/contrib/src/xrc/xh_slidr.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_SLIDER
 
+IMPLEMENT_DYNAMIC_CLASS(wxSliderXmlHandler, wxXmlResourceHandler)
+
 wxSliderXmlHandler::wxSliderXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_spin.cpp b/contrib/src/xrc/xh_spin.cpp
index 6419ef5cca..5748e7443a 100644
--- a/contrib/src/xrc/xh_spin.cpp
+++ b/contrib/src/xrc/xh_spin.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_SPINBTN
 
+IMPLEMENT_DYNAMIC_CLASS(wxSpinButtonXmlHandler, wxXmlResourceHandler)
+
 wxSpinButtonXmlHandler::wxSpinButtonXmlHandler() 
 : wxXmlResourceHandler() 
 {
@@ -61,6 +63,8 @@ bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node)
 
 #if wxUSE_SPINCTRL
 
+IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrlXmlHandler, wxXmlResourceHandler)
+
 wxSpinCtrlXmlHandler::wxSpinCtrlXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_split.cpp b/contrib/src/xrc/xh_split.cpp
index 4b23f9ff60..bc6f9c5f24 100644
--- a/contrib/src/xrc/xh_split.cpp
+++ b/contrib/src/xrc/xh_split.cpp
@@ -23,6 +23,8 @@
 #include "wx/splitter.h"
 #include "wx/log.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxSplitterWindowXmlHandler, wxXmlResourceHandler)
+
 wxSplitterWindowXmlHandler::wxSplitterWindowXmlHandler() : wxXmlResourceHandler()
 {
     XRC_ADD_STYLE(wxSP_3D);
diff --git a/contrib/src/xrc/xh_stbmp.cpp b/contrib/src/xrc/xh_stbmp.cpp
index b1ccad90f5..04eb5096df 100644
--- a/contrib/src/xrc/xh_stbmp.cpp
+++ b/contrib/src/xrc/xh_stbmp.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_stbmp.h"
 #include "wx/statbmp.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmapXmlHandler, wxXmlResourceHandler)
+
 wxStaticBitmapXmlHandler::wxStaticBitmapXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_stbox.cpp b/contrib/src/xrc/xh_stbox.cpp
index 1cac4fb6e3..cc357908c9 100644
--- a/contrib/src/xrc/xh_stbox.cpp
+++ b/contrib/src/xrc/xh_stbox.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_stbox.h"
 #include "wx/statbox.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticBoxXmlHandler, wxXmlResourceHandler)
+
 wxStaticBoxXmlHandler::wxStaticBoxXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_stlin.cpp b/contrib/src/xrc/xh_stlin.cpp
index 340dc4e945..7cc5abc08b 100644
--- a/contrib/src/xrc/xh_stlin.cpp
+++ b/contrib/src/xrc/xh_stlin.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_STATLINE
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticLineXmlHandler, wxXmlResourceHandler)
+
 wxStaticLineXmlHandler::wxStaticLineXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_sttxt.cpp b/contrib/src/xrc/xh_sttxt.cpp
index 955642ed64..e94e9fdbd2 100644
--- a/contrib/src/xrc/xh_sttxt.cpp
+++ b/contrib/src/xrc/xh_sttxt.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_sttxt.h"
 #include "wx/stattext.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticTextXmlHandler, wxXmlResourceHandler)
+
 wxStaticTextXmlHandler::wxStaticTextXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/contrib/src/xrc/xh_text.cpp b/contrib/src/xrc/xh_text.cpp
index 32ca49658c..4d4e88413a 100644
--- a/contrib/src/xrc/xh_text.cpp
+++ b/contrib/src/xrc/xh_text.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_text.h"
 #include "wx/textctrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxTextCtrlXmlHandler, wxXmlResourceHandler)
+
 wxTextCtrlXmlHandler::wxTextCtrlXmlHandler() : wxXmlResourceHandler() 
 {
     XRC_ADD_STYLE(wxTE_PROCESS_ENTER);
diff --git a/contrib/src/xrc/xh_toolb.cpp b/contrib/src/xrc/xh_toolb.cpp
index b35ee00b14..4e472a3dc9 100644
--- a/contrib/src/xrc/xh_toolb.cpp
+++ b/contrib/src/xrc/xh_toolb.cpp
@@ -25,6 +25,8 @@
 
 #if wxUSE_TOOLBAR
 
+IMPLEMENT_DYNAMIC_CLASS(wxToolBarXmlHandler, wxXmlResourceHandler)
+
 wxToolBarXmlHandler::wxToolBarXmlHandler() 
 : wxXmlResourceHandler(), m_isInside(FALSE), m_toolbar(NULL)
 {
diff --git a/contrib/src/xrc/xh_tree.cpp b/contrib/src/xrc/xh_tree.cpp
index ada2a31489..f3ee4c65a6 100644
--- a/contrib/src/xrc/xh_tree.cpp
+++ b/contrib/src/xrc/xh_tree.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_tree.h"
 #include "wx/treectrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrlXmlHandler, wxXmlResourceHandler)
 
 wxTreeCtrlXmlHandler::wxTreeCtrlXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/contrib/src/xrc/xh_unkwn.cpp b/contrib/src/xrc/xh_unkwn.cpp
index 4d6e65263d..f093482499 100644
--- a/contrib/src/xrc/xh_unkwn.cpp
+++ b/contrib/src/xrc/xh_unkwn.cpp
@@ -77,6 +77,8 @@ void wxUnknownControlContainer::RemoveChild(wxWindowBase *child)
 }
 
 
+IMPLEMENT_DYNAMIC_CLASS(wxUnknownWidgetXmlHandler, wxXmlResourceHandler)
+
 wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler()
 : wxXmlResourceHandler()
 {
diff --git a/contrib/src/xrc/xh_wizrd.cpp b/contrib/src/xrc/xh_wizrd.cpp
index 958845ba64..db9e52cd10 100644
--- a/contrib/src/xrc/xh_wizrd.cpp
+++ b/contrib/src/xrc/xh_wizrd.cpp
@@ -25,6 +25,7 @@
 #include "wx/log.h"
 #include "wx/wizard.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxWizardXmlHandler, wxXmlResourceHandler)
 
 wxWizardXmlHandler::wxWizardXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/contrib/src/xrc/xmlres.cpp b/contrib/src/xrc/xmlres.cpp
index c29959f119..d988aed649 100644
--- a/contrib/src/xrc/xmlres.cpp
+++ b/contrib/src/xrc/xmlres.cpp
@@ -143,6 +143,7 @@ bool wxXmlResource::Load(const wxString& filemask)
 }
 
 
+IMPLEMENT_ABSTRACT_CLASS(wxXmlResourceHandler, wxObject)
 
 void wxXmlResource::AddHandler(wxXmlResourceHandler *handler)
 {
diff --git a/include/wx/xrc/xh_bmp.h b/include/wx/xrc/xh_bmp.h
index 946d15bc73..eda67ffd50 100644
--- a/include/wx/xrc/xh_bmp.h
+++ b/include/wx/xrc/xh_bmp.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxBitmapXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxBitmapXmlHandler)
 public:
     wxBitmapXmlHandler();
     virtual wxObject *DoCreateResource();
@@ -28,6 +29,7 @@ public:
 
 class WXXMLDLLEXPORT wxIconXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxIconXmlHandler)
 public:
     wxIconXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_bmpbt.h b/include/wx/xrc/xh_bmpbt.h
index 34862621f3..3be9eb5e0e 100644
--- a/include/wx/xrc/xh_bmpbt.h
+++ b/include/wx/xrc/xh_bmpbt.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxBitmapButtonXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxBitmapButtonXmlHandler)
 public:
     wxBitmapButtonXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_bttn.h b/include/wx/xrc/xh_bttn.h
index 719be7264d..1245202b7e 100644
--- a/include/wx/xrc/xh_bttn.h
+++ b/include/wx/xrc/xh_bttn.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxButtonXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxButtonXmlHandler)
 public:
     wxButtonXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_cald.h b/include/wx/xrc/xh_cald.h
index 5c39f44730..e77aff06bb 100644
--- a/include/wx/xrc/xh_cald.h
+++ b/include/wx/xrc/xh_cald.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxCalendarCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxCalendarCtrlXmlHandler)
 public:
     wxCalendarCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_chckb.h b/include/wx/xrc/xh_chckb.h
index 3738377b2f..e3a2bc3358 100644
--- a/include/wx/xrc/xh_chckb.h
+++ b/include/wx/xrc/xh_chckb.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxCheckBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxCheckBoxXmlHandler)
 public:
     wxCheckBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_chckl.h b/include/wx/xrc/xh_chckl.h
index f5913dce84..e9a6cc76c9 100644
--- a/include/wx/xrc/xh_chckl.h
+++ b/include/wx/xrc/xh_chckl.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxCheckListXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxCheckListXmlHandler)
 public:
     wxCheckListXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_choic.h b/include/wx/xrc/xh_choic.h
index 1ea5a70182..e30460546c 100644
--- a/include/wx/xrc/xh_choic.h
+++ b/include/wx/xrc/xh_choic.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxChoiceXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxChoiceXmlHandler)
 public:
     wxChoiceXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_combo.h b/include/wx/xrc/xh_combo.h
index 6be381c052..ddc1c29eb7 100644
--- a/include/wx/xrc/xh_combo.h
+++ b/include/wx/xrc/xh_combo.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxComboBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxComboBoxXmlHandler)
 public:
     wxComboBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_dlg.h b/include/wx/xrc/xh_dlg.h
index a7fb822746..9ba7c76d7a 100644
--- a/include/wx/xrc/xh_dlg.h
+++ b/include/wx/xrc/xh_dlg.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxDialogXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxDialogXmlHandler)
 public:
     wxDialogXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_frame.h b/include/wx/xrc/xh_frame.h
index a5e824e323..e37681e0a7 100644
--- a/include/wx/xrc/xh_frame.h
+++ b/include/wx/xrc/xh_frame.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxFrameXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxFrameXmlHandler)
 public:
     wxFrameXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_gauge.h b/include/wx/xrc/xh_gauge.h
index 50a83dfba1..18e9354f99 100644
--- a/include/wx/xrc/xh_gauge.h
+++ b/include/wx/xrc/xh_gauge.h
@@ -24,6 +24,7 @@
 
 class WXXMLDLLEXPORT wxGaugeXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxGaugeXmlHandler)
     enum
     {
         wxGAUGE_DEFAULT_RANGE = 100
diff --git a/include/wx/xrc/xh_gdctl.h b/include/wx/xrc/xh_gdctl.h
index c41f1197e6..0893b0ad6d 100644
--- a/include/wx/xrc/xh_gdctl.h
+++ b/include/wx/xrc/xh_gdctl.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxGenericDirCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxGenericDirCtrlXmlHandler)
 public:
     wxGenericDirCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_html.h b/include/wx/xrc/xh_html.h
index 51e59673f5..12db270888 100644
--- a/include/wx/xrc/xh_html.h
+++ b/include/wx/xrc/xh_html.h
@@ -23,6 +23,7 @@
 
 class WXXMLDLLEXPORT wxHtmlWindowXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxHtmlWindowXmlHandler)
 public:
     wxHtmlWindowXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_listb.h b/include/wx/xrc/xh_listb.h
index 35f0b34d2d..890266b2f3 100644
--- a/include/wx/xrc/xh_listb.h
+++ b/include/wx/xrc/xh_listb.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxListBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxListBoxXmlHandler)
 public:
     wxListBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_listc.h b/include/wx/xrc/xh_listc.h
index 9199f594dd..8d32d77f01 100644
--- a/include/wx/xrc/xh_listc.h
+++ b/include/wx/xrc/xh_listc.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxListCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxListCtrlXmlHandler)
 public:
     wxListCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_menu.h b/include/wx/xrc/xh_menu.h
index 79ad952ee3..1e516bf460 100644
--- a/include/wx/xrc/xh_menu.h
+++ b/include/wx/xrc/xh_menu.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxMenuXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxMenuXmlHandler)
 public:
     wxMenuXmlHandler();
     virtual wxObject *DoCreateResource();
@@ -30,6 +31,7 @@ private:
 
 class WXXMLDLLEXPORT wxMenuBarXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxMenuBarXmlHandler)
     public:
         wxMenuBarXmlHandler();
         virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_notbk.h b/include/wx/xrc/xh_notbk.h
index 07f9f1a017..14e909568b 100644
--- a/include/wx/xrc/xh_notbk.h
+++ b/include/wx/xrc/xh_notbk.h
@@ -22,6 +22,7 @@ class WXDLLEXPORT wxNotebook;
 
 class WXXMLDLLEXPORT wxNotebookXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxNotebookXmlHandler)
 public:
     wxNotebookXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_panel.h b/include/wx/xrc/xh_panel.h
index 40459ae752..dfe8bd0653 100644
--- a/include/wx/xrc/xh_panel.h
+++ b/include/wx/xrc/xh_panel.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxPanelXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxPanelXmlHandler)
 public:
     wxPanelXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_radbt.h b/include/wx/xrc/xh_radbt.h
index 58c1288c12..8a6fd4b1a9 100644
--- a/include/wx/xrc/xh_radbt.h
+++ b/include/wx/xrc/xh_radbt.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxRadioButtonXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxRadioButtonXmlHandler)
 public:
     wxRadioButtonXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_radbx.h b/include/wx/xrc/xh_radbx.h
index 42cc3f52b8..bd0e8152cb 100644
--- a/include/wx/xrc/xh_radbx.h
+++ b/include/wx/xrc/xh_radbx.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxRadioBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxRadioBoxXmlHandler)
 public:
     wxRadioBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_scrol.h b/include/wx/xrc/xh_scrol.h
index f82e6df7d9..a13e56ad0b 100644
--- a/include/wx/xrc/xh_scrol.h
+++ b/include/wx/xrc/xh_scrol.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxScrollBarXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxScrollBarXmlHandler)
     enum
     {
         wxSL_DEFAULT_VALUE = 0,
diff --git a/include/wx/xrc/xh_scwin.h b/include/wx/xrc/xh_scwin.h
index 1befc41215..7f9da82d6e 100644
--- a/include/wx/xrc/xh_scwin.h
+++ b/include/wx/xrc/xh_scwin.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxScrolledWindowXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxScrolledWindowXmlHandler)
 public:
     wxScrolledWindowXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_sizer.h b/include/wx/xrc/xh_sizer.h
index 0c7d16a4ef..eb5e05c048 100644
--- a/include/wx/xrc/xh_sizer.h
+++ b/include/wx/xrc/xh_sizer.h
@@ -22,6 +22,7 @@ class WXDLLEXPORT wxSizer;
 
 class WXXMLDLLEXPORT wxSizerXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxSizerXmlHandler)
 public:
     wxSizerXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_slidr.h b/include/wx/xrc/xh_slidr.h
index 6e3223f959..ce2e582e22 100644
--- a/include/wx/xrc/xh_slidr.h
+++ b/include/wx/xrc/xh_slidr.h
@@ -22,6 +22,7 @@
 
 class WXXMLDLLEXPORT wxSliderXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxSliderXmlHandler)
     enum
     {
         wxSL_DEFAULT_VALUE = 0,
diff --git a/include/wx/xrc/xh_spin.h b/include/wx/xrc/xh_spin.h
index 241039075e..7448302b7d 100644
--- a/include/wx/xrc/xh_spin.h
+++ b/include/wx/xrc/xh_spin.h
@@ -21,6 +21,7 @@
 #if wxUSE_SPINBTN
 class WXXMLDLLEXPORT wxSpinButtonXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxSpinButtonXmlHandler)
     enum
     {
         wxSP_DEFAULT_VALUE = 0,
@@ -38,6 +39,7 @@ public:
 #if wxUSE_SPINCTRL
 class WXXMLDLLEXPORT wxSpinCtrlXmlHandler : public wxXmlResourceHandler
 {
+	DECLARE_DYNAMIC_CLASS(wxSpinCtrlXmlHandler)
     enum
     {
         wxSP_DEFAULT_VALUE = 0,
diff --git a/include/wx/xrc/xh_split.h b/include/wx/xrc/xh_split.h
index 010bede9f0..51c38b8c69 100644
--- a/include/wx/xrc/xh_split.h
+++ b/include/wx/xrc/xh_split.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxSplitterWindowXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxSplitterWindowXmlHandler)
 public:
     wxSplitterWindowXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_stbmp.h b/include/wx/xrc/xh_stbmp.h
index d22e96f53e..a9097141ef 100644
--- a/include/wx/xrc/xh_stbmp.h
+++ b/include/wx/xrc/xh_stbmp.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxStaticBitmapXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticBitmapXmlHandler)
 public:
     wxStaticBitmapXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_stbox.h b/include/wx/xrc/xh_stbox.h
index 1773a47f82..a5ed46c8b7 100644
--- a/include/wx/xrc/xh_stbox.h
+++ b/include/wx/xrc/xh_stbox.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxStaticBoxXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticBoxXmlHandler)
 public:
     wxStaticBoxXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_stlin.h b/include/wx/xrc/xh_stlin.h
index b8758ca7ce..7e0ec0d8f0 100644
--- a/include/wx/xrc/xh_stlin.h
+++ b/include/wx/xrc/xh_stlin.h
@@ -21,6 +21,7 @@
 
 class WXXMLDLLEXPORT wxStaticLineXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticLineXmlHandler)
 public:
     wxStaticLineXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_sttxt.h b/include/wx/xrc/xh_sttxt.h
index e6c88984fa..fccad8ac70 100644
--- a/include/wx/xrc/xh_sttxt.h
+++ b/include/wx/xrc/xh_sttxt.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxStaticTextXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxStaticTextXmlHandler)
 public:
     wxStaticTextXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_text.h b/include/wx/xrc/xh_text.h
index 84d256916b..e9bfbf5251 100644
--- a/include/wx/xrc/xh_text.h
+++ b/include/wx/xrc/xh_text.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxTextCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxTextCtrlXmlHandler)
 public:
     wxTextCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_toolb.h b/include/wx/xrc/xh_toolb.h
index 22f53ee935..6d71a41a29 100644
--- a/include/wx/xrc/xh_toolb.h
+++ b/include/wx/xrc/xh_toolb.h
@@ -23,6 +23,7 @@ class WXDLLEXPORT wxToolBar;
 
 class WXXMLDLLEXPORT wxToolBarXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxToolBarXmlHandler)
 public:
     wxToolBarXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_tree.h b/include/wx/xrc/xh_tree.h
index 985468c054..d75ff3dfa6 100644
--- a/include/wx/xrc/xh_tree.h
+++ b/include/wx/xrc/xh_tree.h
@@ -19,6 +19,7 @@
 
 class WXXMLDLLEXPORT wxTreeCtrlXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxTreeCtrlXmlHandler)
 public:
     wxTreeCtrlXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_unkwn.h b/include/wx/xrc/xh_unkwn.h
index 74e835b108..d1b2cf5e0a 100644
--- a/include/wx/xrc/xh_unkwn.h
+++ b/include/wx/xrc/xh_unkwn.h
@@ -20,6 +20,7 @@
 
 class WXXMLDLLEXPORT wxUnknownWidgetXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxUnknownWidgetXmlHandler)
 public:
     wxUnknownWidgetXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xh_wizrd.h b/include/wx/xrc/xh_wizrd.h
index aa5dfbf972..fbf81d0e2f 100644
--- a/include/wx/xrc/xh_wizrd.h
+++ b/include/wx/xrc/xh_wizrd.h
@@ -23,6 +23,7 @@
 
 class WXXMLDLLEXPORT wxWizardXmlHandler : public wxXmlResourceHandler
 {
+DECLARE_DYNAMIC_CLASS(wxWizardXmlHandler)
 public:
     wxWizardXmlHandler();
     virtual wxObject *DoCreateResource();
diff --git a/include/wx/xrc/xmlres.h b/include/wx/xrc/xmlres.h
index 7500a893b0..952dc616e1 100644
--- a/include/wx/xrc/xmlres.h
+++ b/include/wx/xrc/xmlres.h
@@ -302,6 +302,7 @@ private:
 
 class WXXMLDLLEXPORT wxXmlResourceHandler : public wxObject
 {
+DECLARE_ABSTRACT_CLASS(wxXmlResourceHandler)
 public:
     // Constructor.
     wxXmlResourceHandler();
diff --git a/src/xrc/xh_bmp.cpp b/src/xrc/xh_bmp.cpp
index 0e4955031c..c7a1ed9b5a 100644
--- a/src/xrc/xh_bmp.cpp
+++ b/src/xrc/xh_bmp.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_bmp.h"
 #include "wx/bitmap.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapXmlHandler, wxXmlResourceHandler)
 
 wxBitmapXmlHandler::wxBitmapXmlHandler() 
 : wxXmlResourceHandler() 
@@ -38,6 +39,8 @@ bool wxBitmapXmlHandler::CanHandle(wxXmlNode *node)
     return IsOfClass(node, wxT("wxBitmap"));
 }
 
+IMPLEMENT_DYNAMIC_CLASS(wxIconXmlHandler, wxXmlResourceHandler)
+
 wxIconXmlHandler::wxIconXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_bmpbt.cpp b/src/xrc/xh_bmpbt.cpp
index b0500ed45e..3e94df6875 100644
--- a/src/xrc/xh_bmpbt.cpp
+++ b/src/xrc/xh_bmpbt.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_bmpbt.h"
 #include <wx/bmpbuttn.h>
 
+IMPLEMENT_DYNAMIC_CLASS(wxBitmapButtonXmlHandler, wxXmlResourceHandler)
+
 wxBitmapButtonXmlHandler::wxBitmapButtonXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_bttn.cpp b/src/xrc/xh_bttn.cpp
index ff2d4813d0..e86eb5531d 100644
--- a/src/xrc/xh_bttn.cpp
+++ b/src/xrc/xh_bttn.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_bttn.h"
 #include "wx/button.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxButtonXmlHandler, wxXmlResourceHandler)
 
 wxButtonXmlHandler::wxButtonXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/src/xrc/xh_cald.cpp b/src/xrc/xh_cald.cpp
index 70359323c9..15c58fc797 100644
--- a/src/xrc/xh_cald.cpp
+++ b/src/xrc/xh_cald.cpp
@@ -27,6 +27,7 @@
 #include "wx/event.h"
 #include "wx/calctrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxCalendarCtrlXmlHandler, wxXmlResourceHandler)
 
 wxCalendarCtrlXmlHandler::wxCalendarCtrlXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/src/xrc/xh_chckb.cpp b/src/xrc/xh_chckb.cpp
index 35086f42b3..c7a0e824b6 100644
--- a/src/xrc/xh_chckb.cpp
+++ b/src/xrc/xh_chckb.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_CHECKBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxCheckBoxXmlHandler, wxXmlResourceHandler)
+
 wxCheckBoxXmlHandler::wxCheckBoxXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_chckl.cpp b/src/xrc/xh_chckl.cpp
index 18e1d02828..fb8c71ad34 100644
--- a/src/xrc/xh_chckl.cpp
+++ b/src/xrc/xh_chckl.cpp
@@ -25,6 +25,8 @@
 #include "wx/checklst.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxCheckListXmlHandler, wxXmlResourceHandler)
+
 wxCheckListXmlHandler::wxCheckListXmlHandler() 
 : wxXmlResourceHandler(), m_insideBox(FALSE)
 {
diff --git a/src/xrc/xh_choic.cpp b/src/xrc/xh_choic.cpp
index f2dd0bdb43..15f7c6a77c 100644
--- a/src/xrc/xh_choic.cpp
+++ b/src/xrc/xh_choic.cpp
@@ -23,6 +23,8 @@
 #include "wx/choice.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxChoiceXmlHandler, wxXmlResourceHandler)
+
 wxChoiceXmlHandler::wxChoiceXmlHandler() 
 : wxXmlResourceHandler() , m_insideBox(FALSE)
 {
diff --git a/src/xrc/xh_combo.cpp b/src/xrc/xh_combo.cpp
index 2a17231c4f..03fa009eb4 100644
--- a/src/xrc/xh_combo.cpp
+++ b/src/xrc/xh_combo.cpp
@@ -25,6 +25,8 @@
 
 #if wxUSE_COMBOBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxComboBoxXmlHandler, wxXmlResourceHandler)
+
 wxComboBoxXmlHandler::wxComboBoxXmlHandler() 
 : wxXmlResourceHandler() , m_insideBox(FALSE)
 {
diff --git a/src/xrc/xh_dlg.cpp b/src/xrc/xh_dlg.cpp
index 0305962c80..ea823db964 100644
--- a/src/xrc/xh_dlg.cpp
+++ b/src/xrc/xh_dlg.cpp
@@ -24,6 +24,7 @@
 #include "wx/log.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxDialogXmlHandler, wxXmlResourceHandler)
 
 wxDialogXmlHandler::wxDialogXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/src/xrc/xh_frame.cpp b/src/xrc/xh_frame.cpp
index 467e133472..2fcbbd357f 100644
--- a/src/xrc/xh_frame.cpp
+++ b/src/xrc/xh_frame.cpp
@@ -24,6 +24,7 @@
 #include "wx/log.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxFrameXmlHandler, wxXmlResourceHandler)
 
 wxFrameXmlHandler::wxFrameXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/src/xrc/xh_gauge.cpp b/src/xrc/xh_gauge.cpp
index a52b8075aa..852f7bbd65 100644
--- a/src/xrc/xh_gauge.cpp
+++ b/src/xrc/xh_gauge.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_GAUGE
 
+IMPLEMENT_DYNAMIC_CLASS(wxGaugeXmlHandler, wxXmlResourceHandler)
+
 wxGaugeXmlHandler::wxGaugeXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_gdctl.cpp b/src/xrc/xh_gdctl.cpp
index afd71480e9..7106b598cf 100644
--- a/src/xrc/xh_gdctl.cpp
+++ b/src/xrc/xh_gdctl.cpp
@@ -26,6 +26,8 @@
 #include "wx/xrc/xh_gdctl.h"
 #include "wx/dirctrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxGenericDirCtrlXmlHandler, wxXmlResourceHandler)
+
 wxGenericDirCtrlXmlHandler::wxGenericDirCtrlXmlHandler()
 : wxXmlResourceHandler()
 {
diff --git a/src/xrc/xh_html.cpp b/src/xrc/xh_html.cpp
index 8ac26c8b9b..8fe80d2082 100644
--- a/src/xrc/xh_html.cpp
+++ b/src/xrc/xh_html.cpp
@@ -26,6 +26,7 @@
 #include "wx/html/htmlwin.h"
 #include "wx/filesys.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxHtmlWindowXmlHandler, wxXmlResourceHandler)
 
 wxHtmlWindowXmlHandler::wxHtmlWindowXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/src/xrc/xh_listb.cpp b/src/xrc/xh_listb.cpp
index c3c9004d3f..68caf3c1b8 100644
--- a/src/xrc/xh_listb.cpp
+++ b/src/xrc/xh_listb.cpp
@@ -23,6 +23,8 @@
 #include "wx/listbox.h"
 #include "wx/intl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxListBoxXmlHandler, wxXmlResourceHandler)
+
 wxListBoxXmlHandler::wxListBoxXmlHandler() 
 : wxXmlResourceHandler() , m_insideBox(FALSE)
 {
diff --git a/src/xrc/xh_listc.cpp b/src/xrc/xh_listc.cpp
index 6f9f6b2ab4..327433f030 100644
--- a/src/xrc/xh_listc.cpp
+++ b/src/xrc/xh_listc.cpp
@@ -24,6 +24,8 @@
 #include "wx/listctrl.h"
 
 
+IMPLEMENT_DYNAMIC_CLASS(wxListCtrlXmlHandler, wxXmlResourceHandler)
+
 wxListCtrlXmlHandler::wxListCtrlXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_menu.cpp b/src/xrc/xh_menu.cpp
index 8c1e79c962..5df0d5f8d5 100644
--- a/src/xrc/xh_menu.cpp
+++ b/src/xrc/xh_menu.cpp
@@ -23,6 +23,7 @@
 #include "wx/menu.h"
 #include "wx/frame.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxMenuXmlHandler, wxXmlResourceHandler)
 
 wxMenuXmlHandler::wxMenuXmlHandler() : 
         wxXmlResourceHandler(), m_insideMenu(FALSE)
@@ -110,6 +111,8 @@ bool wxMenuXmlHandler::CanHandle(wxXmlNode *node)
            );
 }
 
+IMPLEMENT_DYNAMIC_CLASS(wxMenuBarXmlHandler, wxXmlResourceHandler)
+
 wxMenuBarXmlHandler::wxMenuBarXmlHandler() : wxXmlResourceHandler()
 {
     XRC_ADD_STYLE(wxMB_DOCKABLE);
diff --git a/src/xrc/xh_notbk.cpp b/src/xrc/xh_notbk.cpp
index b8b459cc82..27d6a5ee40 100644
--- a/src/xrc/xh_notbk.cpp
+++ b/src/xrc/xh_notbk.cpp
@@ -27,6 +27,8 @@
 #include "wx/notebook.h"
 #include "wx/sizer.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxNotebookXmlHandler, wxXmlResourceHandler)
+
 wxNotebookXmlHandler::wxNotebookXmlHandler() 
 : wxXmlResourceHandler(), m_isInside(FALSE), m_notebook(NULL)
 {
diff --git a/src/xrc/xh_panel.cpp b/src/xrc/xh_panel.cpp
index 07653815f7..d71a11d752 100644
--- a/src/xrc/xh_panel.cpp
+++ b/src/xrc/xh_panel.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_panel.h"
 #include "wx/panel.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxPanelXmlHandler, wxXmlResourceHandler)
 
 wxPanelXmlHandler::wxPanelXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/src/xrc/xh_radbt.cpp b/src/xrc/xh_radbt.cpp
index a117b1b9d0..8533992393 100644
--- a/src/xrc/xh_radbt.cpp
+++ b/src/xrc/xh_radbt.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_RADIOBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxRadioButtonXmlHandler, wxXmlResourceHandler)
+
 wxRadioButtonXmlHandler::wxRadioButtonXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_radbx.cpp b/src/xrc/xh_radbx.cpp
index f2f229cd9c..0bff4dda51 100644
--- a/src/xrc/xh_radbx.cpp
+++ b/src/xrc/xh_radbx.cpp
@@ -25,6 +25,8 @@
 
 #if wxUSE_RADIOBOX
 
+IMPLEMENT_DYNAMIC_CLASS(wxRadioBoxXmlHandler, wxXmlResourceHandler)
+
 wxRadioBoxXmlHandler::wxRadioBoxXmlHandler() 
 : wxXmlResourceHandler(), m_insideBox(FALSE)
 {
diff --git a/src/xrc/xh_scrol.cpp b/src/xrc/xh_scrol.cpp
index 8077a49101..653d8ec180 100644
--- a/src/xrc/xh_scrol.cpp
+++ b/src/xrc/xh_scrol.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_scrol.h"
 #include "wx/scrolbar.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxScrollBarXmlHandler, wxXmlResourceHandler)
 
 wxScrollBarXmlHandler::wxScrollBarXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/src/xrc/xh_scwin.cpp b/src/xrc/xh_scwin.cpp
index 9aedfefe57..1450db5857 100644
--- a/src/xrc/xh_scwin.cpp
+++ b/src/xrc/xh_scwin.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_scwin.h"
 #include "wx/scrolwin.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxScrolledWindowXmlHandler, wxXmlResourceHandler)
 
 wxScrolledWindowXmlHandler::wxScrolledWindowXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/src/xrc/xh_sizer.cpp b/src/xrc/xh_sizer.cpp
index 2a1bbf8eb9..f26bac9e7a 100644
--- a/src/xrc/xh_sizer.cpp
+++ b/src/xrc/xh_sizer.cpp
@@ -27,6 +27,8 @@
 #include "wx/panel.h"
 #include "wx/tokenzr.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxSizerXmlHandler, wxXmlResourceHandler)
+
 bool wxSizerXmlHandler::IsSizerNode(wxXmlNode *node)
 {
     return (IsOfClass(node, wxT("wxBoxSizer"))) ||
diff --git a/src/xrc/xh_slidr.cpp b/src/xrc/xh_slidr.cpp
index acf894537d..10e16450cc 100644
--- a/src/xrc/xh_slidr.cpp
+++ b/src/xrc/xh_slidr.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_SLIDER
 
+IMPLEMENT_DYNAMIC_CLASS(wxSliderXmlHandler, wxXmlResourceHandler)
+
 wxSliderXmlHandler::wxSliderXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_spin.cpp b/src/xrc/xh_spin.cpp
index 6419ef5cca..5748e7443a 100644
--- a/src/xrc/xh_spin.cpp
+++ b/src/xrc/xh_spin.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_SPINBTN
 
+IMPLEMENT_DYNAMIC_CLASS(wxSpinButtonXmlHandler, wxXmlResourceHandler)
+
 wxSpinButtonXmlHandler::wxSpinButtonXmlHandler() 
 : wxXmlResourceHandler() 
 {
@@ -61,6 +63,8 @@ bool wxSpinButtonXmlHandler::CanHandle(wxXmlNode *node)
 
 #if wxUSE_SPINCTRL
 
+IMPLEMENT_DYNAMIC_CLASS(wxSpinCtrlXmlHandler, wxXmlResourceHandler)
+
 wxSpinCtrlXmlHandler::wxSpinCtrlXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_split.cpp b/src/xrc/xh_split.cpp
index 4b23f9ff60..bc6f9c5f24 100644
--- a/src/xrc/xh_split.cpp
+++ b/src/xrc/xh_split.cpp
@@ -23,6 +23,8 @@
 #include "wx/splitter.h"
 #include "wx/log.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxSplitterWindowXmlHandler, wxXmlResourceHandler)
+
 wxSplitterWindowXmlHandler::wxSplitterWindowXmlHandler() : wxXmlResourceHandler()
 {
     XRC_ADD_STYLE(wxSP_3D);
diff --git a/src/xrc/xh_stbmp.cpp b/src/xrc/xh_stbmp.cpp
index b1ccad90f5..04eb5096df 100644
--- a/src/xrc/xh_stbmp.cpp
+++ b/src/xrc/xh_stbmp.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_stbmp.h"
 #include "wx/statbmp.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticBitmapXmlHandler, wxXmlResourceHandler)
+
 wxStaticBitmapXmlHandler::wxStaticBitmapXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_stbox.cpp b/src/xrc/xh_stbox.cpp
index 1cac4fb6e3..cc357908c9 100644
--- a/src/xrc/xh_stbox.cpp
+++ b/src/xrc/xh_stbox.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_stbox.h"
 #include "wx/statbox.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticBoxXmlHandler, wxXmlResourceHandler)
+
 wxStaticBoxXmlHandler::wxStaticBoxXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_stlin.cpp b/src/xrc/xh_stlin.cpp
index 340dc4e945..7cc5abc08b 100644
--- a/src/xrc/xh_stlin.cpp
+++ b/src/xrc/xh_stlin.cpp
@@ -24,6 +24,8 @@
 
 #if wxUSE_STATLINE
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticLineXmlHandler, wxXmlResourceHandler)
+
 wxStaticLineXmlHandler::wxStaticLineXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_sttxt.cpp b/src/xrc/xh_sttxt.cpp
index 955642ed64..e94e9fdbd2 100644
--- a/src/xrc/xh_sttxt.cpp
+++ b/src/xrc/xh_sttxt.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_sttxt.h"
 #include "wx/stattext.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxStaticTextXmlHandler, wxXmlResourceHandler)
+
 wxStaticTextXmlHandler::wxStaticTextXmlHandler() 
 : wxXmlResourceHandler() 
 {
diff --git a/src/xrc/xh_text.cpp b/src/xrc/xh_text.cpp
index 32ca49658c..4d4e88413a 100644
--- a/src/xrc/xh_text.cpp
+++ b/src/xrc/xh_text.cpp
@@ -22,6 +22,8 @@
 #include "wx/xrc/xh_text.h"
 #include "wx/textctrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxTextCtrlXmlHandler, wxXmlResourceHandler)
+
 wxTextCtrlXmlHandler::wxTextCtrlXmlHandler() : wxXmlResourceHandler() 
 {
     XRC_ADD_STYLE(wxTE_PROCESS_ENTER);
diff --git a/src/xrc/xh_toolb.cpp b/src/xrc/xh_toolb.cpp
index b35ee00b14..4e472a3dc9 100644
--- a/src/xrc/xh_toolb.cpp
+++ b/src/xrc/xh_toolb.cpp
@@ -25,6 +25,8 @@
 
 #if wxUSE_TOOLBAR
 
+IMPLEMENT_DYNAMIC_CLASS(wxToolBarXmlHandler, wxXmlResourceHandler)
+
 wxToolBarXmlHandler::wxToolBarXmlHandler() 
 : wxXmlResourceHandler(), m_isInside(FALSE), m_toolbar(NULL)
 {
diff --git a/src/xrc/xh_tree.cpp b/src/xrc/xh_tree.cpp
index ada2a31489..f3ee4c65a6 100644
--- a/src/xrc/xh_tree.cpp
+++ b/src/xrc/xh_tree.cpp
@@ -22,6 +22,7 @@
 #include "wx/xrc/xh_tree.h"
 #include "wx/treectrl.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxTreeCtrlXmlHandler, wxXmlResourceHandler)
 
 wxTreeCtrlXmlHandler::wxTreeCtrlXmlHandler() 
 : wxXmlResourceHandler() 
diff --git a/src/xrc/xh_unkwn.cpp b/src/xrc/xh_unkwn.cpp
index 4d6e65263d..f093482499 100644
--- a/src/xrc/xh_unkwn.cpp
+++ b/src/xrc/xh_unkwn.cpp
@@ -77,6 +77,8 @@ void wxUnknownControlContainer::RemoveChild(wxWindowBase *child)
 }
 
 
+IMPLEMENT_DYNAMIC_CLASS(wxUnknownWidgetXmlHandler, wxXmlResourceHandler)
+
 wxUnknownWidgetXmlHandler::wxUnknownWidgetXmlHandler()
 : wxXmlResourceHandler()
 {
diff --git a/src/xrc/xh_wizrd.cpp b/src/xrc/xh_wizrd.cpp
index 958845ba64..db9e52cd10 100644
--- a/src/xrc/xh_wizrd.cpp
+++ b/src/xrc/xh_wizrd.cpp
@@ -25,6 +25,7 @@
 #include "wx/log.h"
 #include "wx/wizard.h"
 
+IMPLEMENT_DYNAMIC_CLASS(wxWizardXmlHandler, wxXmlResourceHandler)
 
 wxWizardXmlHandler::wxWizardXmlHandler() : wxXmlResourceHandler()
 {
diff --git a/src/xrc/xmlres.cpp b/src/xrc/xmlres.cpp
index c29959f119..d988aed649 100644
--- a/src/xrc/xmlres.cpp
+++ b/src/xrc/xmlres.cpp
@@ -143,6 +143,7 @@ bool wxXmlResource::Load(const wxString& filemask)
 }
 
 
+IMPLEMENT_ABSTRACT_CLASS(wxXmlResourceHandler, wxObject)
 
 void wxXmlResource::AddHandler(wxXmlResourceHandler *handler)
 {
-- 
2.47.2