Servizi personalizzati

[La funzionalità associata a questa pagina, I/O dei file multimediali , è una funzionalità legacy. È stato sostituito da lettore di origine. lettore di origine è stato ottimizzato per Windows 10 e Windows 11. Microsoft consiglia vivamente che il nuovo codice usi lettore di origine invece di file multimediali, quando possibile. Microsoft suggerisce che il codice esistente che usa le API legacy venga riscritto per usare le nuove API, se possibile.

I servizi di I/O file multimediali usano procedure di I/O per gestire l'input fisico e l'output associati alla lettura e alla scrittura in diversi tipi di sistemi di archiviazione, ad esempio sistemi di archiviazione file e sistemi di archiviazione di database. Esistono procedure di I/O predefinite per i file system standard e per i file di memoria, ma è possibile fornire una procedura di I/O personalizzata per accedere a un sistema di archiviazione univoco usando la funzione mmioInstallIOProc.

Per aprire un file usando una routine di I/O personalizzata, utilizzare la funzionemmioOpen. Includere un segno più (+) o la costante CFSEPCHAR nel nome file per separare il nome del file fisico dal nome dell'elemento del file che si desidera aprire. Nell'esempio seguente viene aperto un elemento file denominato "element" da un file denominato FILENAME. ARCO:

mmioOpen("filename.arc+element", NULL, MMIO_READ); 

Quando il gestore di I/O del file rileva un segno più un nome file, esamina l'estensione del nome file per determinare la procedura di I/O da associare al file. Nell'esempio precedente, il gestore di I/O del file tenterebbe di usare la routine di I/O associata a . Estensione del nome file ARC; questa procedura di I/O sarebbe stata installata usando mmioInstallIOProc. Se non è installata alcuna procedura di I/O, mmioOpen restituisce un errore.

Le procedure di I/O devono rispondere ai messaggi seguenti:

È anche possibile creare messaggi personalizzati e inviarli alla routine di I/O usando la funzione mmioSendMessage. Se si definiscono messaggi personalizzati, assicurarsi che siano definiti al di sopra o al di sopra del valore definito dalla costante MMIOM_USER.

Oltre all'elaborazione dei messaggi, una routine di I/O deve mantenere il membro lDiskOffset della strutturaMMIOINFO(a cui punta il parametro lpmmioinfo mmioPen). Il membro lDiskOffset deve contenere sempre l'offset del file nel percorso a cui accederà il MMIOM_READ successivo o MMIOM_WRITE messaggio. L'offset viene specificato in byte ed è relativo all'inizio del file. La procedura di I/O può utilizzare il membro adwInfo per mantenere le informazioni sullo stato necessarie. La procedura di I/O non deve modificare altri membri nella struttura MMIOINFO.