CAlbumFolder* CAlbumFolder::FindFile(CLibraryFile* pFile) const { if ( m_pFiles.Find( pFile ) != NULL ) return (CAlbumFolder*)this; POSITION pos = GetFolderIterator(); CAlbumFolder* pFirst = pos ? GetNextFolder( pos ) : NULL; if ( GetFolderCount() > 1 ) { while ( pos ) { CAlbumFolder* pFolder = GetNextFolder( pos )->FindFile( pFile ); if ( pFolder != NULL ) return pFolder; } CAlbumFolder* pFolder = pFirst->FindFile( pFile ); if ( pFolder != NULL ) return pFolder; } else if ( pFirst != NULL ) { CAlbumFolder* pFolder = pFirst->FindFile( pFile ); if ( pFolder != NULL ) return pFolder; } return NULL; }