int ArchiveFilter::QueryFilters(const TCHAR* lpFileName, ArchiveFilterArray& filters, bool& bStopped) { bStopped = false; for (unsigned int i = 0; i < m_pFilters.count(); i++) { ArchiveFilterEntry* pFE = m_pFilters[i]; if ( !pFE->IsEnabled() || !pFE->IsValid() ) continue; #ifdef UNICODE if ( FSF.ProcessName(pFE->GetMask(), (TCHAR*)lpFileName, 0, PN_CMPNAME|PN_SKIPPATH) ) #else if ( FSF.ProcessName(pFE->GetMask(), (TCHAR*)lpFileName, PN_CMPNAME|PN_SKIPPATH) ) #endif { if ( !pFE->IsExclude() ) filters.add(pFE); else m_pStopFilters.add(pFE); if ( !pFE->IsContinueProcessing() ) { bStopped = true; break; } } } return 0; }