Suspension en cours
Toutes les modifications d’état de filtre doivent contenir le verrou de filtre. Dans la méthode Pause , créez les ressources dont le filtre a besoin :
HRESULT CMyFilter::Pause()
{
CAutoLock lock_it(m_pLock);
/* Create filter resources. */
return CBaseFilter::Pause();
}
La méthode CBaseFilter::P ause définit l’état correct sur le filtre (State_Paused) et appelle la méthode CBasePin::Active sur chaque broche connectée du filtre. La méthode Active informe l’épingle que le filtre est devenu actif. Si l’épingle crée des ressources, remplacez la méthode Active , comme suit :
HRESULT CMyInputPin::Active()
{
// You do not need to hold the filter lock here. It is already held in Pause.
/* Create pin resources. */
return CBaseInputPin::Active()
}