Uso del modello di evento Media Foundation

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita da Lettore di origine e Writer sink. Lettore di origine e Writer sink sono stati ottimizzati per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi Lettore di origine e Writer sink anziché Windows Media Format 11 SDK, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

I metodi asincroni supportati dalle API estese client DRM di Windows Media usano lo stesso modello di evento usato da Media Foundation SDK. Ogni oggetto che supporta metodi asincroni implementa l'interfaccia IWMDRMEventGenerator , che può essere usata per recuperare un evento al termine di un'operazione asincrona.

L'interfaccia IWMDRMEventGenerator eredita dall'interfaccia IMFMediaEventGenerator , documentata nella documentazione di Media Foundation SDK.

Il codice di esempio nell'esempio di individualizzazione DRM usa il metodo IMFMediaEventGenerator::GetEvent per recuperare gli eventi dalla coda una alla volta. L'uso di GetEvent è più semplice dell'uso di IMFMediaEventGenerator::BeginGetEvent e FMMediaEventGenerator::EndGetEvent con un callback, che semplifica la comprensione degli esempi di codice. Se si usa GetEvent nel codice o si implementa FMAsyncCallback e si usa BeginGetEvent e EndGetEvent, la logica per gestire l'evento dopo che è stata ricevuta è la stessa.

Diversi metodi asincroni generano eventi che contengono riferimenti agli oggetti che possono essere usati per ottenere informazioni di stato più dettagliate. In questi casi, l'evento generato ha un puntatore IUnknown come valore, che può essere eseguito una query per recuperare l'interfaccia di stato. Nell'elenco seguente vengono riepilogate le relazioni tra chiamate asincrone, eventi generati e altre interfacce.

Esempio di individualizzazione DRM

Introduzione

Documentazione di Media Foundation SDK