LRESULT CLibraryFileView::OnServiceDone(WPARAM wParam, LPARAM lParam) { CString strStatus; LoadString( strStatus, IDS_TIP_STATUS ); strStatus.TrimRight( ':' ); LPCTSTR pszMessage = (LPCTSTR)lParam; CMetaList* pPanelData = (CMetaList*)wParam; m_bServiceFailed = FALSE; if ( pPanelData == NULL ) { m_nCurrentPage = 0; m_bRequestingService = FALSE; ClearServicePages(); } else if ( pszMessage == NULL ) { pPanelData->Remove( strStatus ); } else { CMetaItem* pItem = pPanelData->Find( strStatus ); if ( pItem ) pItem->m_sValue = pszMessage; m_bServiceFailed = TRUE; } CLibraryFrame* pFrame = GetFrame(); if ( pFrame->GetPanelData() != NULL ) pFrame->SetPanelData( pPanelData ); m_bRequestingService = FALSE; return 0; }