#include "wx/dynarray.h"
 #include "wx/log.h"
 
+#if wxUSE_LISTBOX
+
 #if wxUSE_OWNER_DRAWN
     #include  "wx/ownerdrw.h"
 #endif
 
-#if !USE_SHARED_LIBRARY
   IMPLEMENT_DYNAMIC_CLASS(wxListBox, wxControl)
-#endif
 
 // ============================================================================
 // list box item declaration and implementation
 
 #if wxUSE_OWNER_DRAWN
     delete m_aItems[N];
-    m_aItems.Remove(N);
+    m_aItems.RemoveAt(N);
 #else // !wxUSE_OWNER_DRAWN
     if ( HasClientObjectData() )
     {
 
     void *oldData = NULL;
     wxClientData *oldObjData = NULL;
-    if ( m_clientDataItemsType == ClientData_Void )
+    if ( m_clientDataItemsType == wxClientData_Void )
         oldData = GetClientData(N);
-    else if ( m_clientDataItemsType == ClientData_Object )
+    else if ( m_clientDataItemsType == wxClientData_Object )
         oldObjData = GetClientObject(N);
 // TODO:
 /*
 */
 }
 
-wxSize wxListBox::DoGetBestSize()
+wxSize wxListBox::DoGetBestSize() const
 {
     // find the widest string
     int wLine;
 
     // the listbox should be slightly larger than the widest string
     int cx, cy;
-    wxGetCharSize(GetHWND(), &cx, &cy, &GetFont());
+    wxGetCharSize(GetHWND(), &cx, &cy, (wxFont*)&GetFont());
 
     wListbox += 3*cx;
 
 }
 #endif
     // wxUSE_OWNER_DRAWN
+
+#endif //wxUSE_LISTBOX