Interagieren mit IMAPI
Die folgenden Schritte beschreiben eine typische Interaktion zwischen einer Anwendung und IMAPI.
- Erstellen Sie eine Instanz von MSDiscMasterObj (mithilfe von CoCreateInstance, intelligenten Zeigern aus einem Import und so weiter), und fordern Sie die IDiscMaster-Schnittstelle an.
- Rufen Sie IDiscMaster::Openauf, um Zugriff auf IMAPI zu erhalten. Wenn dieser Aufruf erfolgreich ist, hat die Anwendung Vollzugriff auf alle Schnittstellen und Methoden, die in MSDiscMasterObj implementiert sind.
- Rufen Sie den Datenträgermasterformat-Enumerator mithilfe von EnumDiscMasterFormats ab. Enumerieren Sie den Satz von Formaten, die das Datenträgermasterobjekt unterstützt, und wählen Sie dann das aktive Format aus. Die vom Enumerator zurückgegebenen Formate sind die IIDs der Schnittstellen für IJolietDiscMaster und IRedbookDiscMaster.
- Rufen Sie den Datenträgeraufzeichnungs-Enumerator mithilfe von EnumDiscRecorders ab. Listen Sie die Liste der unterstützten Datenträgeraufzeichnungen auf (spezifisch für das aktive Format), und wählen Sie dann die aktive Aufzeichnung aus. Die IDiscRecorder-Schnittstelle stellt ein physisches Gerät dar.
- Verwenden Sie IDiscMaster::P rogressAdvise, um sich für Statusrückrufe zu registrieren.
- Verwenden Sie die -Schnittstelle für das ausgewählte Format, um Inhalt zu erstellen. Der Inhalt wird inkrementell erstellt, sodass Titel oder Ordnerinhalte einem Datenträger stückweise hinzugefügt werden können. Das Erstellen dieses Inhalts wird als Staging eines Images bezeichnet. Der Inhalt des gestagten Bilds kann nicht inkrementell gelöscht werden (Sie können eine hinzugefügte Spur nicht entfernen), aber es ist möglich, den Inhalt eines gestagten Bilds zu löschen, damit das Staging erneut gestartet werden kann. Verwenden Sie IDiscMaster::ClearFormatContent, um das Staging neu zu starten.
**Für Audio: **
- Verwenden Sie IRedbookDiscMaster::CreateAudioTrack, um anzugeben, dass eine neue Audiospur auf dem Datenträger gestartet wird.
- Verwenden Sie IRedbookDiscMaster::AddAudioTrackBlocks, um unformatierte Audiodaten zu einer Spur hinzuzufügen. Die Anwendung kann GetAvailableAudioTrackBlocks, GetTotalAudioBlocksund GetUsedAudioBlocks verwenden, um statistische Informationen abzurufen.
- Verwenden Sie IRedbookDiscMaster::CloseAudioTrack, um eine Audiospur zu schließen.
- Wiederholen Sie die Schritte 1 bis 3, bis kein Speicherplatz mehr zur Verfügung steht oder alle Audiospuren geschrieben wurden.
**Für Daten: **
- Verwenden Sie IJolietDiscMaster::AddData, um dem Bild den Inhalt eines Ordners hinzuzufügen. Die Elemente in einem Ordner werden im Stammverzeichnis der Imagedatei platziert. Verwenden Sie GetTotalDataBlocks und GetUsedDataBlocks, um statistische Informationen abzurufen.
- Wiederholen Sie den obigen Schritt, bis nicht mehr Speicherplatz zur Verfügung steht oder alle Daten hinzugefügt wurden.
**Für alle Datenträger: **
- Verwenden Sie IDiscMaster::RecordDisc, um den Datenträger aufzeichnen.
- Schließen Sie die IMAPI-Sitzung mithilfe von IDiscMaster::Close. Wenn Sie die Sitzung schließen, wird der Inhalt des Datenträgerstashs gelöscht.