CBaseFilter.GetState-Methode

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde von MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation abgelöst. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code mediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet, wenn möglich. Microsoft schlägt vor, dass vorhandener Code, der die Legacy-APIs verwendet, so umgeschrieben wird, dass nach Möglichkeit die neuen APIs verwendet werden.]

Die GetState -Methode ruft den Status der Filter ab (wird ausgeführt, beendet oder angehalten). Diese Methode implementiert die IMediaFilter::GetState-Methode .

Syntax

HRESULT GetState(
   DWORD        dwMilliSecsTimeout,
   FILTER_STATE *State
);

Parameter

dwMilliSecsTimeout

Timeoutintervall in Millisekunden.

State

Zeiger auf eine Variable, die einen Member des FILTER_STATE aufgezählten Typs empfängt, der den Status des Filters angibt.

Rückgabewert

Gibt S_OK oder E_POINTER zurück.

Bemerkungen

In der Basisklasse sind alle Zustandsübergänge synchron, und der dwMilliSecsTimeout-Parameter wird ignoriert. Wenn eine abgeleitete Klasse asynchrone Zustandsübergänge ausführt, sollte sie diese Methode außer Kraft setzen, um bei Zustandsübergängen mit einem Timeout von dwMilliSecsTimeout Millisekunden zu warten.

Wenn der Filter während des Angehaltenen keine Daten übermittelt, überschreiben Sie die GetState -Methode, um den Wert zurückzugeben, VFW_S_CANT_CUE, wenn der Filter angehalten wird (siehe Übermitteln von Beispielen). Beispiel:

CMyFilter::GetState(DWORD dw, FILTER_STATE *pState)
{
    CheckPointer(pState, E_POINTER);
    *pState = m_State;
    if (m_State == State_Paused)
        return VFW_S_CANT_CUE;
    else
        return S_OK;
}

Anforderungen

Anforderung Wert
Header
Amfilter.h (streams.h einschließen)
Bibliothek
Strmbase.lib (Einzelhandelsbuilds);
Strmbasd.lib (Debugbuilds)

Siehe auch

CBaseFilter-Klasse