Per creare un lettore e aprire un file

[La funzionalità associata a questa pagina, Windows Media Format 11 SDK, è una funzionalità legacy. È stata sostituita dal lettore di origine e dal 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.

Prima di poter eseguire qualsiasi operazione con il lettore, è necessario creare un oggetto lettore e caricare un file per la lettura. Per inizializzare il lettore e aprire un file, seguire questa procedura.

  1. Creare un oggetto lettore chiamando la funzione WMCreateReader . È necessario specificare il livello desiderato di rights management per il nuovo oggetto lettore. Le modalità disponibili sono elencate nel tipo di enumerazione WMT_RIGHTS.
  2. Specificare un file da leggere chiamando IWMReader::Open. È necessario specificare un'interfaccia di callback del lettore da usare per il lettore. Per altre informazioni sul callback del lettore, vedere To Implement Reader Messages in the OnStatus Callback.For more information about the reader callback, see To Implement Reader Messages in the OnStatus Callback.
  3. Attendere che il lettore apra il file. Quando si chiama Open per caricare un file, viene restituito quasi immediatamente e continua l'elaborazione in un altro thread. È necessario attendere il completamento delle operazioni segnalando un evento quando il callback OnStatus riceve il messaggio di stato WMT_OPENED.

Il lettore supporta anche l'uso dell'interfaccia COM IStream per l'apertura dei file. È possibile implementare l'interfaccia IStream in qualsiasi modo scelto. Dopo aver aperto il file desiderato in IStream, è possibile seguire i passaggi elencati in precedenza, ad eccezione del fatto che è necessario chiamare IWMReaderAdvanced2::OpenStream anziché IWMReader::Open nel passaggio 2.

Interfaccia IWMReader

Interfaccia IWMReaderAdvanced2

Interfaccia IWMStatusCallback

Lettura di file con il lettore asincrono

Utilizzo dei metodi di callback