Uso del modelo de eventos de Media Foundation

Los métodos asincrónicos admitidos por las API extendidas del cliente DRM de Windows media usan el mismo modelo de eventos que usa el SDK de Media Foundation. Cada objeto que admite métodos asincrónicos implementa la interfaz IWMDRMEventGenerator , que se puede usar para recuperar un evento cuando se completa una operación asincrónica.

La interfaz IWMDRMEventGenerator hereda de la interfaz IMFMediaEventGenerator , que se documenta en la documentación del SDK de Media Foundation.

El código de ejemplo del ejemplo de individualización drm usa el método IMFMediaEventGenerator::GetEvent para recuperar eventos de la cola de uno en uno. Usar GetEvent es más sencillo que usar IMFMediaEventGenerator::BeginGetEvent y IMFMediaEventGenerator::EndGetEvent con una devolución de llamada, lo que facilita la comprensión de los ejemplos de código. Tanto si usa GetEvent en el código como si implementa IMFAsyncCallback y usa BeginGetEvent y EndGetEvent, la lógica para controlar el evento una vez recibido es el mismo.

Varios de los métodos asincrónicos generan eventos que contienen referencias a objetos que se pueden usar para obtener información de estado más detallada. En estos casos, el evento generado tiene un puntero IUnknown como su valor, que se puede consultar para recuperar la interfaz de estado. En la lista siguiente se resumen las relaciones entre llamadas asincrónicas, eventos generados y otras interfaces.

Ejemplo de individualización de DRM

Introducción

Documentación del SDK de Media Foundation