Interagindo com o IMAPI
As etapas a seguir descrevem uma interação típica entre um aplicativo e um IMAPI.
- Crie uma instância do MSDiscMasterObj (usando CoCreateInstance, ponteiros inteligentes de uma importação e assim por diante) e solicite a interface IDiscMaster .
- Adquira acesso ao IMAPI chamando IDiscMaster::Open. Se essa chamada for bem-sucedida, o aplicativo terá acesso total a todas as interfaces e métodos implementados no MSDiscMasterObj.
- Recupere o enumerador de formato master disco usando EnumDiscMasterFormats. Enumere o conjunto de formatos aos quais o disco master objeto dá suporte e selecione o formato ativo. Os formatos retornados do enumerador são os IIDs das interfaces para IJolietDiscMaster e IRedbookDiscMaster.
- Recupere o enumerador de gravador de disco usando EnumDiscRecorders. Enumerar a lista de gravadores de disco com suporte (específicos para o formato ativo) e, em seguida, selecione o gravador ativo. A interface IDiscRecorder representa um dispositivo físico.
- Use IDiscMaster::P rogressAdvise para se registrar para retornos de chamada de progresso.
- Use a interface para o formato selecionado para compilar o conteúdo. O conteúdo é compilado incrementalmente, de modo que as faixas ou o conteúdo da pasta podem ser adicionados a um disco por peça. A compilação desse conteúdo é chamada de preparo de uma imagem. O conteúdo da imagem preparada não pode ser excluído incrementalmente (você não pode remover uma faixa que foi adicionada), mas é possível limpar o conteúdo de uma imagem preparada para que o preparo possa ser iniciado novamente. Use IDiscMaster::ClearFormatContent para reiniciar o preparo.
**Para áudio: **
- Use IRedbookDiscMaster::CreateAudioTrack para indicar que uma nova faixa de áudio está sendo iniciada no disco.
- Use IRedbookDiscMaster::AddAudioTrackBlocks para adicionar dados de áudio brutos a uma faixa. O aplicativo pode usar GetAvailableAudioTrackBlocks, GetTotalAudioBlocks e GetUsedAudioBlocks para recuperar informações estatísticas.
- Use IRedbookDiscMaster::CloseAudioTrack para fechar uma faixa de áudio.
- Repita as etapas de 1 a 3 até que o espaço ou todas as faixas de áudio tenham sido gravadas.
**Para dados: **
- Use IJolietDiscMaster::AddData para adicionar o conteúdo de uma pasta à imagem. Os itens dentro de uma pasta são colocados na raiz do arquivo de imagem. Use GetTotalDataBlocks e GetUsedDataBlocks para recuperar informações estatísticas.
- Repita a etapa acima até que o espaço ou todos os dados sejam adicionados.
**Para todos os discos: **
- Use IDiscMaster::RecordDisc para gravar o disco.
- Feche a sessão IMAPI usando IDiscMaster::Close. Fechar a sessão limpa o conteúdo do stash de disco.