Status „Wird angehalten“

Alle Filterzustandsänderungen müssen die Filtersperre enthalten. Erstellen Sie in der Pause-Methode alle Ressourcen, die der Filter benötigt:

HRESULT CMyFilter::Pause()
{
    CAutoLock lock_it(m_pLock);

    /* Create filter resources. */

    return CBaseFilter::Pause();
}

Die CBaseFilter::P ause-Methode legt den richtigen Zustand für den Filter fest (State _ Paused) und ruft die CBasePin::Active-Methode für jeden verbundenen Pin im Filter auf. Die Active-Methode informiert den Pin darüber, dass der Filter aktiv geworden ist. Wenn der Pin Ressourcen erstellt, überschreiben Sie die Active-Methode wie folgt:

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