Compartilhar via


Interagindo com o IMAPI

As etapas a seguir descrevem uma interação típica entre um aplicativo e um IMAPI.

  1. Crie uma instância do MSDiscMasterObj (usando CoCreateInstance, ponteiros inteligentes de uma importação e assim por diante) e solicite a interface IDiscMaster .
  2. 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.
  3. 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.
  4. 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.
  5. Use IDiscMaster::P rogressAdvise para se registrar para retornos de chamada de progresso.
  6. 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: **

  1. Use IRedbookDiscMaster::CreateAudioTrack para indicar que uma nova faixa de áudio está sendo iniciada no disco.
  2. 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.
  3. Use IRedbookDiscMaster::CloseAudioTrack para fechar uma faixa de áudio.
  4. Repita as etapas de 1 a 3 até que o espaço ou todas as faixas de áudio tenham sido gravadas.

**Para dados: **

  1. 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.
  2. Repita a etapa acima até que o espaço ou todos os dados sejam adicionados.

**Para todos os discos: **

  1. Use IDiscMaster::RecordDisc para gravar o disco.
  2. Feche a sessão IMAPI usando IDiscMaster::Close. Fechar a sessão limpa o conteúdo do stash de disco.