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 |
|
Bibliothek |
|