Pausando
[O recurso associado a esta página, DirectShow, é um recurso herdado. Ele foi substituído por MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo na Media Foundation. Esses recursos foram otimizados para Windows 10 e Windows 11. A Microsoft recomenda fortemente que o novo código use MediaPlayer, IMFMediaEngine e Captura de Áudio/Vídeo no Media Foundation em vez de DirectShow, quando possível. A Microsoft sugere que o código existente que usa as APIs herdadas seja reescrito para usar as novas APIs, se possível.]
Todas as alterações de estado do filtro devem manter o bloqueio de filtro. No método Pause , crie todos os recursos necessários para o filtro:
HRESULT CMyFilter::Pause()
{
CAutoLock lock_it(m_pLock);
/* Create filter resources. */
return CBaseFilter::Pause();
}
O método CBaseFilter::P ause define o estado correto no filtro (State_Paused) e chama o método CBasePin::Active em cada pin conectado no filtro. O método Active informa ao pino que o filtro se tornou ativo. Se o pin criar recursos, substitua o método Active da seguinte maneira:
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()
}