コード例 #1
0
BOOL CAlbumFolder::MountCollection(SHA1* pSHA1, CCollectionFile* pCollection, BOOL bForce)
{
	if ( ! bForce )
	{
		BOOL bResult = FALSE;

		for ( POSITION pos = GetFolderIterator() ; pos ; )
		{
			bResult |= GetNextFolder( pos )->MountCollection( pSHA1, pCollection, bForce );
		}

		if ( m_pSchema == NULL ) return bResult;

		if ( m_pSchema->GetContained( pCollection->GetThisURI() ) == NULL &&
			 m_sSchemaURI != CSchema::uriCollectionsFolder ) return bResult;
	}

	CAlbumFolder* pFolder = NULL;

	for ( POSITION pos = GetFolderIterator() ; pos ; )
	{
		pFolder = GetNextFolder( pos );
		if ( pFolder->m_bCollSHA1 && *pSHA1 == pFolder->m_pCollSHA1 ) break;
		pFolder = NULL;
	}

	if ( pFolder == NULL )
	{
		pFolder = AddFolder( pCollection->GetThisURI(), pCollection->GetTitle() );
	}

	pFolder->SetCollection( pSHA1, pCollection );

	m_nUpdateCookie++;
	Library.m_nUpdateCookie++;

	return TRUE;
}