CBaseStreamControl.SetFilterGraph-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 SetFilterGraph
-Methode gibt die Ereignissenke für Streamsteuerungsereignisse an.
Syntax
void SetFilterGraph(
IMediaEventSink *pSink
);
Parameter
-
pSink
-
Zeiger auf die IMediaEventSink-Schnittstelle des Filtergraph-Managers oder NULL , wenn der Filter das Filterdiagramm verlässt.
Rückgabewert
Diese Methode gibt keinen Wert zurück.
Bemerkungen
Rufen Sie diese Methode innerhalb der IBaseFilter::JoinFilterGraph-Methode des Filters auf. Die CBaseStreamControl-Klasse verwendet die IMediaEventSink-Schnittstelle , um EC_STREAM_CONTROL_STARTED und EC_STREAM_CONTROL_STOPPED Ereignisse zu senden.
Wenn Ihr Filter von CBaseFilter abgeleitet wird, rufen Sie zuerst die CBaseFilter::JoinFilterGraph-Methode auf, die die CBaseFilter:: m_pSink-Membervariable festlegt. Übergeben Sie dann m_pSink an die SetFilterGraph
-Methode. Beachten Sie, dass m_pSinkNULL ist, wenn der Filter das Diagramm verlässt. Dies ist richtig.
Beispiele
STDMETHODIMP CMyFilter::JoinFilterGraph(IFilterGraph * pGraph, LPCWSTR pName)
{
// Note: It's OK if pGraph is NULL.
HRESULT hr = CBaseFilter::JoinFilterGraph(pGraph, pName);
if (SUCCEEDED(hr))
{
m_pMyPin->SetFilterGraph(m_pSink);
}
return hr;
}
Anforderungen
Anforderung | Wert |
---|---|
Header |
|
Bibliothek |
|