void OnLeftUp(wxMouseEvent& event);
 
 private:
+    friend class wxComboBox; // it accesses our DoGetItemClientData()
+
     DECLARE_EVENT_TABLE()
 };
 
     wxComboCtrl::SetValue(value);
 }
 
+void wxComboBox::WriteText(const wxString& value)
+{
+    if ( GetTextCtrl() ) GetTextCtrl()->WriteText(value);
+}
+
 void wxComboBox::Copy()
 {
     if ( GetTextCtrl() ) GetTextCtrl()->Copy();
     if ( GetTextCtrl() ) GetTextCtrl()->SetSelection(from, to);
 }
 
+void wxComboBox::GetSelection(long *from, long *to) const
+{
+    if ( GetTextCtrl() ) GetTextCtrl()->GetSelection(from, to);
+}
+
 void wxComboBox::SetEditable(bool editable)
 {
     if ( GetTextCtrl() ) GetTextCtrl()->SetEditable(editable);
 #endif
 }
 
+wxString wxComboBox::GetStringSelection() const
+{
+    return GetLBox()->GetStringSelection();
+}
+
+wxClientDataType wxComboBox::GetClientDataType() const
+{
+    return GetLBox()->GetClientDataType();
+}
+
+void wxComboBox::SetClientDataType(wxClientDataType clientDataItemsType)
+{
+    GetLBox()->SetClientDataType(clientDataItemsType);
+}
+
 int wxComboBox::DoInsertItems(const wxArrayStringsAdapter & items,
                               unsigned int pos,
                               void **clientData, wxClientDataType type)
 
 void wxComboBox::DoSetItemClientData(unsigned int n, void* clientData)
 {
-    GetLBox()->SetClientData(n, clientData);
+    GetLBox()->DoSetItemClientData(n, clientData);
 }
 
 void *wxComboBox::DoGetItemClientData(unsigned int n) const
 {
-    return GetLBox()->GetClientData(n);
+    return GetLBox()->DoGetItemClientData(n);
 }
 
 bool wxComboBox::IsEditable() const