Interazione con IMAPI
I passaggi seguenti descrivono un'interazione tipica tra un'applicazione e IMAPI.
- Creare un'istanza di MSDiscMasterObj (usando CoCreateInstance, puntatori intelligenti da un'importazione e così via) e richiedere l'interfaccia IDiscMaster .
- Acquisire l'accesso a IMAPI chiamando IDiscMaster::Open. Se questa chiamata ha esito positivo, l'applicazione ha accesso completo a tutte le interfacce e ai metodi implementati in MSDiscMasterObj.
- Recuperare l'enumeratore del formato master del disco usando EnumDiscMasterFormats. Enumerare il set di formati supportati dall'oggetto master del disco, quindi selezionare il formato attivo. I formati restituiti dall'enumeratore sono gli ID delle interfacce per IJolietDiscMaster e IRedbookDiscMaster.
- Recuperare l'enumeratore del registratore di dischi usando EnumDiscRecorders. Enumerare l'elenco dei registratori di dischi supportati (specifici del formato attivo), quindi selezionare il registratore attivo. L'interfaccia IDiscRecorder rappresenta un dispositivo fisico.
- Usare IDiscMaster::P rogressAdvise per registrare i callback dello stato.
- Usare l'interfaccia per il formato selezionato per compilare il contenuto. Le compilazioni di contenuto in modo incrementale, quindi è possibile aggiungere il contenuto di tracce o cartelle a un pezzo di disco in base a un pezzo. La compilazione di questo contenuto viene chiamata gestione temporanea di un'immagine. Il contenuto dell'immagine in fase non può essere eliminato in modo incrementale (non è possibile rimuovere una traccia aggiunta), ma è possibile cancellare il contenuto di un'immagine in fase in modo che la gestione temporanea possa ricominciare. Usare IDiscMaster::ClearFormatContent per riavviare la gestione temporanea.
**Per audio: **
- Usare IRedbookDiscMaster::CreateAudioTrack per indicare che viene avviata una nuova traccia audio nel disco.
- Usare IRedbookDiscMaster::AddAudioTrackBlocks per aggiungere dati audio non elaborati a una traccia. L'applicazione può usare GetAvailableAudioTrackBlocks, GetTotalAudioBlocks e GetUsedAudioBlocks per recuperare informazioni statistiche.
- Usare IRedbookDiscMaster::CloseAudioTrack per chiudere una traccia audio.
- Ripetere i passaggi da 1 a 3 fino a quando non sono state scritte tutte le tracce audio.
**Per i dati: **
- Usare IJolietDiscMaster::AddData per aggiungere il contenuto di una cartella all'immagine. Gli elementi all'interno di una cartella vengono inseriti nella radice del file di immagine. Usare GetTotalDataBlocks e GetUsedDataBlocks per recuperare informazioni statistiche.
- Ripetere il passaggio precedente fino a quando non è stato aggiunto spazio o tutti i dati.
**Per tutti i dischi: **
- Usare IDiscMaster::RecordDisc per registrare il disco.
- Chiudere la sessione IMAPI usando IDiscMaster::Close. La chiusura della sessione cancella il contenuto dello stash del disco.