Auf Englisch lesen

Freigeben über


IMediaEvent::GetEventHandle-Methode (control.h)

[Das dieser Seite zugeordnete Feature DirectShow ist ein Legacyfeature. Es wurde durch MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation ersetzt. Diese Features wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit MediaPlayer, IMFMediaEngine und Audio/Video Capture in Media Foundation anstelle von DirectShow verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die GetEventHandle -Methode ruft ein Handle für ein Ereignis zum manuellen Zurücksetzen ab, das signalisiert bleibt, während die Warteschlange Ereignisbenachrichtigungen enthält.

Syntax

HRESULT GetEventHandle(
  [out] OAEVENT *hEvent
);

Parameter

[out] hEvent

Zeiger auf eine Variable, die das Ereignishandle empfängt.

Rückgabewert

Gibt S_OK zurück.

Hinweise

Der Filter Graph-Manager behält ein Manuelles Zurücksetzungsereignis bei, das den Zustand der Ereigniswarteschlange widerspiegelt. Wenn die Warteschlange Ereignisbenachrichtigungen enthält, wird das Ereignis zum manuellen Zurücksetzen signalisiert. Wenn die Warteschlange leer ist, setzt die IMediaEvent::GetEvent-Methode das Ereignis zurück.

Eine Anwendung kann dieses Ereignis verwenden, um den Zustand der Warteschlange zu bestimmen. Rufen Sie GetEventHandle zuerst auf, um ein Handle für das Ereignis abzurufen. Warten Sie mithilfe einer Funktion wie WaitForSingleObject, bis das Ereignis signalisiert wird. Wenn das Ereignis signalisiert wird, rufen Sie die IMediaEvent::GetEvent-Methode auf, um die nächste Ereignisbenachrichtigung aus der Warteschlange abzurufen. Der Filter Graph Manager behält das Ereignis so lange bei, bis die Warteschlange leer ist. anschließend wird das Ereignis zurückgesetzt.

Schließen Sie das von dieser Methode zurückgegebene Ereignishandle nicht, da das Ereignishandle intern vom Filterdiagramm verwendet wird. Verwenden Sie das Handle auch nicht, nachdem Sie den Filter Graph-Manager freigegeben haben, da das Handle ungültig wird, nachdem der Filter Graph-Manager zerstört wurde. (Um diesen Fehler zu vermeiden, empfiehlt es sich, das Handle durch Aufrufen von DuplicateHandle zu duplizieren und anstelle des ursprünglichen Handle das Duplikat zu verwenden. Schließen Sie das doppelte Handle, wenn Sie fertig sind.)

Für die Automatisierungskompatibilität verwendet diese Methode einen Zeiger auf einen OAEVENT-Typ . Deklarieren Sie in C++ eine Variable vom Typ HANDLE , und wandeln Sie sie wie folgt in einen OAEVENT-Zeiger um:


HANDLE hEvent;
GetEventHandle( (OAEVENT*) &hEvent );

Eine weitere Möglichkeit für Anwendungen, die Ereigniswarteschlange zu überwachen, besteht darin, die IMediaEventEx::SetNotifyWindow-Methode aufzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile control.h (include Dshow.h)
Bibliothek Strmiids.lib

Weitere Informationen

Fehler- und Erfolgscodes

IMediaEvent-Schnittstelle