void CXTPSkinObjectFrame::UpdateButtons()
{
    DWORD dwExStyle = GetExStyle();
    DWORD dwStyle = GetStyle();

    if (m_dwStyle == dwStyle && m_dwExStyle == dwExStyle)
        return;

    m_dwExStyle = dwExStyle;
    m_dwStyle = dwStyle;

    RemoveButtons();

    if (HasCaption())
    {
        BOOL bToolWindow = (dwExStyle & WS_EX_TOOLWINDOW) == WS_EX_TOOLWINDOW;
        BOOL bMaximized = (dwStyle & WS_MAXIMIZE) == WS_MAXIMIZE;
        BOOL bMinimized = (dwStyle & WS_MINIMIZE) == WS_MINIMIZE;

        BOOL bSysMenu = (dwStyle & WS_SYSMENU);
        BOOL bDialogFrame = (dwStyle & WS_DLGFRAME || dwExStyle & WS_EX_DLGMODALFRAME);

        BOOL bEnableClose = TRUE;
        BOOL bEnabledMaximize = ((dwStyle & WS_MAXIMIZEBOX) == WS_MAXIMIZEBOX);
        BOOL bEnabledMinimize = ((dwStyle & WS_MINIMIZEBOX) == WS_MINIMIZEBOX);
        BOOL bShowMinMaxButtons = !bToolWindow && bSysMenu && (bEnabledMaximize || bEnabledMinimize);

        if (bSysMenu && !bToolWindow && ((m_dwExStyle & WS_EX_MDICHILD) == 0))
        {
            HMENU hMenu = ::GetSystemMenu(m_hWnd, FALSE);
            if (::GetMenuState(hMenu, SC_CLOSE, MF_BYCOMMAND) & (MF_DISABLED | MF_GRAYED)) bEnableClose = FALSE;
        }

        UpdateButton(SC_CLOSE, !bDialogFrame || bSysMenu,
                     bEnableClose, HTCLOSE, bToolWindow? WP_SMALLCLOSEBUTTON: WP_CLOSEBUTTON);

        UpdateButton(SC_MAXIMIZE, !bMaximized && bShowMinMaxButtons,
                     bEnabledMaximize, HTMAXBUTTON, WP_MAXBUTTON);

        if (bMinimized)
        {
            UpdateButton(SC_RESTORE, bShowMinMaxButtons,
                         bEnabledMinimize, HTMINBUTTON, WP_RESTOREBUTTON);
        }
        else
        {
            UpdateButton(SC_RESTORE,  bMaximized && bShowMinMaxButtons,
                         bEnabledMaximize, HTMAXBUTTON, WP_RESTOREBUTTON);

            UpdateButton(SC_MINIMIZE, bShowMinMaxButtons,
                         bEnabledMinimize, HTMINBUTTON, WP_MINBUTTON);
        }

        UpdateButton(SC_CONTEXTHELP, ((dwExStyle & WS_EX_CONTEXTHELP) == WS_EX_CONTEXTHELP) && !bToolWindow && bSysMenu,
                     TRUE, HTHELP, WP_HELPBUTTON);
    }

}
void COXHistoryCombo::RefreshToolbar()
{
	ASSERT_VALID(this);

	// First reload the toolbar
	ASSERT(m_pToolbar != NULL);
	ASSERT(m_pToolbar->m_hWnd != NULL);
	VERIFY(m_pToolbar->LoadToolBar(m_lpszToolbarResource));

	// Remove buttons that are marked as invisible
	RemoveButtons();

	// Reposition the toolbar (extra buttons may have become visible)
	PositionToolbar(GetToolbarPosition());

	ASSERT_VALID(this);
}
CXTPSkinObjectFrame::~CXTPSkinObjectFrame()
{
    RemoveButtons();
}