Verwenden des Media Foundation-Ereignismodells

Die asynchronen Methoden, die von den Windows Media DRM Client Extended APIs unterstützt werden, verwenden dasselbe Ereignismodell, das vom Media Foundation SDK verwendet wird. Jedes Objekt, das asynchrone Methoden unterstützt, implementiert die IWMDRMEventGenerator-Schnittstelle , die verwendet werden kann, um ein Ereignis abzurufen, 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 aus der Warteschlange einzeln abzurufen. Die Verwendung von GetEvent ist einfacher als die Verwendung von IMFMediaEventGenerator::BeginGetEvent und IMFMediaEventGenerator::EndGetEvent mit einem Rückruf, wodurch die Codebeispiele einfacher zu verstehen sind. Ganz gleich, ob Sie GetEvent in Ihrem Code verwenden oder IMFAsyncCallback implementieren und BeginGetEvent und EndGetEvent verwenden, die Logik, um das Ereignis zu behandeln, nachdem es empfangen wurde.

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

DRM-Individualisierungsbeispiel

Erste Schritte

Media Foundation SDK-Dokumentation