Usando o modelo de evento do Media Foundation

Os métodos assíncronos compatíveis com as APIs estendidas do cliente drm de mídia Windows usam o mesmo modelo de evento usado pelo SDK do Media Foundation. Cada objeto que dá suporte a métodos assíncronos implementa a interface IWMDRMEventGenerator , que pode ser usada para recuperar um evento quando uma operação assíncrona é concluída.

A interface IWMDRMEventGenerator herda da interface IMFMediaEventGenerator , que está documentada na documentação do SDK do Media Foundation.

O código de exemplo no Exemplo de Individualização drm usa o método IMFMediaEventGenerator::GetEvent para recuperar eventos da fila um de cada vez. Usar GetEvent é mais simples do que usar IMFMediaEventGenerator::BeginGetEvent e IMFMediaEventGenerator::EndGetEvent com um retorno de chamada, o que torna os exemplos de código mais fáceis de entender. Se você usar GetEvent em seu código ou implementar IMFAsyncCallback e usar BeginGetEvent e EndGetEvent, a lógica para manipular o evento depois que ele tiver sido recebido é a mesma.

Vários dos métodos assíncronos geram eventos que contêm referências a objetos que podem ser usados para obter informações de status mais detalhadas. Nesses casos, o evento gerado tem um ponteiro IUnknown como seu valor, que pode ser consultado para recuperar a interface de status. A lista a seguir resume as relações entre chamadas assíncronas, eventos gerados e outras interfaces.

Exemplo de individualização do DRM

Introdução

Documentação do SDK do Media Foundation