Suspension en cours

[La fonctionnalité associée à cette page, DirectShow, est une fonctionnalité héritée. Il a été remplacé par MediaPlayer, IMFMediaEngine et Audio/Video Capture in Media Foundation. Ces fonctionnalités ont été optimisées pour Windows 10 et Windows 11. Microsoft recommande vivement que le nouveau code utilise MediaPlayer, IMFMediaEngine et Audio/Video Capture dans Media Foundation au lieu de DirectShow, si possible. Microsoft suggère que le code existant qui utilise les API héritées soit réécrit pour utiliser les nouvelles API si possible.]

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 dans le 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()
}