+// NOTE: There is no guarantee that the button drawn fills the entire rect (XP
+// default theme, for example), so the caller should have cleared button's
+// background before this call. This is quite likely a wxMSW-specific thing.
+void
+wxRendererXP::DrawComboBoxDropButton(wxWindow * win,
+                                      wxDC& dc,
+                                      const wxRect& rect,
+                                      int flags)
+{
+    wxUxThemeHandle hTheme(win, L"COMBOBOX");
+    if ( hTheme )
+    {
+        RECT r;
+        r.left = rect.x;
+        r.top = rect.y;
+        r.right = rect.x + rect.width;
+        r.bottom = rect.y + rect.height;
+
+        int state;
+        if ( flags & wxCONTROL_PRESSED )
+            state = CBXS_PRESSED;
+        else if ( flags & wxCONTROL_CURRENT )
+            state = CBXS_HOT;
+        else if ( flags & wxCONTROL_DISABLED )
+            state = CBXS_DISABLED;
+        else
+            state = CBXS_NORMAL;
+
+        wxUxThemeEngine::Get()->DrawThemeBackground
+                                (
+                                    hTheme,
+                                    dc.GetHDC(),
+                                    CP_DROPDOWNBUTTON,
+                                    state,
+                                    &r,
+                                    NULL
+                                );
+
+    }
+}
+