Verwenden des Media Foundation-Ereignismodells

[Das dieser Seite zugeordnete Feature Windows Media Format 11 SDK ist ein Legacyfeature. Sie wurde durch den Quellleser und den Senkenschreiber ersetzt. Quellleser und Senkenschreiber wurden für Windows 10 und Windows 11 optimiert. Microsoft empfiehlt dringend, dass neuer Code nach Möglichkeit den Quellleser und senkenden Writer anstelle des Windows Media Format 11 SDK verwendet. Microsoft schlägt vor, vorhandenen Code, der die Legacy-APIs verwendet, um nach Möglichkeit die neuen APIs zu verwenden.]

Die von den erweiterten Windows Media DRM-Client-APIs unterstützten asynchronen Methoden verwenden dasselbe Ereignismodell, das vom Media Foundation SDK verwendet wird. Jedes Objekt, das asynchrone Methoden unterstützt, implementiert die IWMDRMEventGenerator-Schnittstelle , die zum Abrufen eines Ereignisses verwendet werden kann, wenn ein asynchroner Vorgang abgeschlossen ist.

Die IWMDRMEventGenerator-Schnittstelle erbt von der IMFMediaEventGenerator-Schnittstelle , die in der Media Foundation SDK-Dokumentation dokumentiert ist.

Der Beispielcode im DRM-Individualisierungsbeispiel verwendet die IMFMediaEventGenerator::GetEvent-Methode , um Ereignisse einzeln aus der Warteschlange abzurufen. Die Verwendung von GetEvent ist einfacher als die Verwendung von IMFMediaEventGenerator::BeginGetEvent und IMFMediaEventGenerator::EndGetEvent mit einem Rückruf, wodurch die Codebeispiele leichter verständlich sind. Unabhängig davon, ob Sie GetEvent in Ihrem Code verwenden oder IMFAsyncCallback implementieren und BeginGetEvent und EndGetEvent verwenden, ist die Logik zum Behandeln des Ereignisses nach dem Empfang identisch.

Mehrere der asynchronen Methoden generieren Ereignisse, die Verweise auf Objekte enthalten, die verwendet werden können, um detailliertere status Informationen abzurufen. In diesen Fällen verfügt das generierte Ereignis über einen IUnknown-Zeiger als Wert, der abgefragt werden kann, um die status-Schnittstelle abzurufen. In der folgenden Liste sind die Beziehungen zwischen asynchronen Aufrufen, generierten Ereignissen und anderen Schnittstellen zusammengefasst.

DRM-Einzelisierungsbeispiel

Erste Schritte

Media Foundation SDK-Dokumentation