-    wxArrayString GetValue() const { return m_value; }
-    void SetValue(const wxArrayString& value) { m_value = value; }
-
-    virtual void Copy(wxVariantData& data);
-    virtual bool Eq(wxVariantData& data) const;
-#if wxUSE_STD_IOSTREAM
-    virtual bool Write(wxSTD ostream& str) const;
-#endif
-    virtual bool Write(wxString& str) const;
-#if wxUSE_STD_IOSTREAM
-    virtual bool Read(wxSTD istream& str);
-#endif
-    virtual bool Read(wxString& str);
-    virtual wxString GetType() const { return wxT("arrstring"); };
-    virtual wxVariantData* Clone() { return new wxVariantDataArrayString; }
-
-protected:
-    wxArrayString m_value;
-
-    DECLARE_DYNAMIC_CLASS(wxVariantDataArrayString)
-};
-
-IMPLEMENT_DYNAMIC_CLASS(wxVariantDataArrayString, wxVariantData)
-
-void wxVariantDataArrayString::Copy(wxVariantData& data)
-{
-    wxASSERT_MSG( data.GetType() == GetType(), wxT("wxVariantDataArrayString::Copy: Can't copy to this type of data") );
-
-    wxVariantDataArrayString& otherData = (wxVariantDataArrayString&) data;
-
-    otherData.m_value = m_value;
-}
-
-
-bool wxVariantDataArrayString::Eq(wxVariantData& data) const
-{
-    wxASSERT_MSG( data.GetType() == GetType(), wxT("wxVariantDataArrayString::Eq: argument mismatch") );
-
-    wxVariantDataArrayString& otherData = (wxVariantDataArrayString&) data;
-
-    return otherData.m_value == m_value;
-}
-
-
-#if wxUSE_STD_IOSTREAM
-bool wxVariantDataArrayString::Write(wxSTD ostream& WXUNUSED(str)) const
-{
-    // Not implemented
-    return false;
-}
-#endif
-
-
-bool wxVariantDataArrayString::Write(wxString& str) const
-{
-    size_t count = m_value.GetCount();
-    for ( size_t n = 0; n < count; n++ )
-    {
-        if ( n )
-            str += _T(';');
-
-        str += m_value[n];
-    }
-
-    return true;
-}
-
-
-#if wxUSE_STD_IOSTREAM
-bool wxVariantDataArrayString::Read(wxSTD istream& WXUNUSED(str))
-{
-    // Not implemented
-    return false;
-}
-#endif
-
-
-bool wxVariantDataArrayString::Read(wxString& str)
-{
-    wxStringTokenizer tk(str, _T(";"));
-    while ( tk.HasMoreTokens() )
-    {
-        m_value.Add(tk.GetNextToken());
-    }
-
-    return true;
-}
-
-
-
-/*
- * wxVariant
- */
-
-IMPLEMENT_DYNAMIC_CLASS(wxVariant, wxObject)
-
-// Construction & destruction
-wxVariant::wxVariant()
-{
-    m_data = (wxVariantData*) NULL;
-}
-
-wxVariant::wxVariant(double val, const wxString& name)
-{
-    m_data = new wxVariantDataReal(val);
-    m_name = name;
-}
-
-wxVariant::wxVariant(long val, const wxString& name)
-{
-    m_data = new wxVariantDataLong(val);
-    m_name = name;
-}
-
-#ifdef HAVE_BOOL
-wxVariant::wxVariant(bool val, const wxString& name)
-{
-    m_data = new wxVariantDataBool(val);
-    m_name = name;
-}
-#endif
-
-wxVariant::wxVariant(char val, const wxString& name)
-{
-    m_data = new wxVariantDataChar(val);
-    m_name = name;
-}
-
-wxVariant::wxVariant(const wxString& val, const wxString& name)
-{
-    m_data = new wxVariantDataString(val);
-    m_name = name;
-}
-
-wxVariant::wxVariant(const wxChar* val, const wxString& name)
-{
-    m_data = new wxVariantDataString(wxString(val));
-    m_name = name;
-}
-
-#if WXWIN_COMPATIBILITY_2_4
-
-wxVariant::wxVariant(const wxStringList& val, const wxString& name)
-{
-    m_data = new wxVariantDataStringList(val);
-    m_name = name;
-}
-
-#endif
-
-wxVariant::wxVariant(const wxList& val, const wxString& name) // List of variants
-{
-    m_data = new wxVariantDataList(val);
-    m_name = name;
-}
-
-wxVariant::wxVariant( void* val, const wxString& name)
-{
-    m_data = new wxVariantDataVoidPtr(val);
-    m_name = name;
-}
-
-wxVariant::wxVariant( wxObject* val, const wxString& name)
-{
-    m_data = new wxVariantDataWxObjectPtr(val);
-    m_name = name;
-}
-
-#if wxUSE_DATETIME
-wxVariant::wxVariant(const wxDateTime& val, const wxString& name) // Date
-{
-    m_data = new wxVariantDataDateTime(val);
-    m_name = name;
-}
-#endif // wxUSE_DATETIME
-
-#if wxUSE_ODBC
-wxVariant::wxVariant(const TIME_STRUCT* valptr, const wxString& name) // Date
-{
-    m_data = new wxVariantDataDateTime(valptr);
-    m_name = name;
-}
-
-wxVariant::wxVariant(const TIMESTAMP_STRUCT* valptr, const wxString& name) // Date
-{
-    m_data = new wxVariantDataDateTime(valptr);
-    m_name = name;
-}