Compartir a través de


Interacción con IMAPI

En los pasos siguientes se describe una interacción típica entre una aplicación e IMAPI.

  1. Cree una instancia de MSDiscMasterObj (mediante CoCreateInstance, punteros inteligentes desde una importación, etc.) y solicite la interfaz IDiscMaster .
  2. Obtenga acceso a IMAPI llamando a IDiscMaster::Open. Si esta llamada se realiza correctamente, la aplicación tiene acceso total a todas las interfaces y métodos implementados en MSDiscMasterObj.
  3. Recupere el enumerador de formato maestro de disco mediante EnumDiscMasterFormats. Enumere el conjunto de formatos que admite el objeto maestro de disco y, a continuación, seleccione el formato activo. Los formatos devueltos por el enumerador son los IID de las interfaces para IJolietDiscMaster e IRedbookDiscMaster.
  4. Recupere el enumerador de la grabadora de discos mediante EnumDiscRecorders. Enumere la lista de grabadoras de disco admitidas (específicas del formato activo) y, a continuación, seleccione la grabadora activa. La interfaz IDiscRecorder representa un dispositivo físico.
  5. Use IDiscMaster::P rogressAdvise para registrar las devoluciones de llamada de progreso.
  6. Use la interfaz para el formato seleccionado para crear contenido. El contenido se compila incrementalmente, por lo que las pistas o el contenido de la carpeta se pueden agregar a un disco por pieza. La creación de este contenido se denomina almacenamiento provisional de una imagen. El contenido de la imagen almacenada provisionalmente no se puede eliminar incrementalmente (no se puede quitar una pista que se ha agregado), pero es posible borrar el contenido de una imagen almacenada provisionalmente para que el almacenamiento provisional pueda empezar de nuevo. Use IDiscMaster::ClearFormatContent para reiniciar el almacenamiento provisional.

**Para audio: **

  1. Use IRedbookDiscMaster::CreateAudioTrack para indicar que se está iniciando una nueva pista de audio en el disco.
  2. Use IRedbookDiscMaster::AddAudioTrackBlocks para agregar datos de audio sin procesar a una pista. La aplicación puede usar GetAvailableAudioTrackBlocks, GetTotalAudioBlocks y GetUsedAudioBlocks para recuperar información estadística.
  3. Use IRedbookDiscMaster::CloseAudioTrack para cerrar una pista de audio.
  4. Repita los pasos del 1 al 3 hasta que no haya espacio o se hayan escrito todas las pistas de audio.

**Para datos: **

  1. Use IJolietDiscMaster::AddData para agregar el contenido de una carpeta a la imagen. Los elementos de una carpeta se colocan en la raíz del archivo de imagen. Use GetTotalDataBlocks y GetUsedDataBlocks para recuperar información estadística.
  2. Repita el paso anterior hasta que no haya espacio o se hayan agregado todos los datos.

**Para todos los discos: **

  1. Use IDiscMaster::RecordDisc para grabar el disco.
  2. Cierre la sesión de IMAPI mediante IDiscMaster::Close. Al cerrar la sesión, se borra el contenido del disco.