Ressourcenaustausch-Dateiformatdienste

Das bevorzugte Format für Multimediadateien ist das RESOURCE INTERCHANGE-Dateiformat (Resource Interchange File Format). Die E/A-Funktionen für DIE -Datei funktionieren mit den grundlegenden gepufferten und ungepufferten Datei-E/A-Diensten. Sie können DIE-Dateien auf die gleiche Weise wie andere Dateitypen öffnen, lesen und schreiben. Ausführliche Informationen zu AVI finden Sie unter AVIFile-Funktionen und -Makros.

DIE-Dateien verwenden Vier-Zeichen-Codes, um Dateielemente zu identifizieren. Diese Codes sind 32-Bit-Mengen, die eine Sequenz von einem bis vier alphanumerischen ASCII-Zeichen darstellen, die rechts mit Leerzeichen auffüllt werden. Der Datentyp für Vier-Zeichen-Codes ist FOURCC. Verwenden Sie das Makro mmioFOURCC, um vier Zeichen in einen Vier-Zeichen-Code zu konvertieren. Verwenden Sie die mmioStringToFOURCC-Funktion, um eine auf NULL terminierte Zeichenfolge in einen code mit vier Zeichen zu konvertieren.

Der grundlegende Baustein einerUNK-Datei ist ein Block. Ein Block ist eine logische Einheit von Multimediadaten, z. B. ein einzelner Frame in einem Videoclip. Jeder Block enthält die folgenden Felder:

  • Ein code mit vier Zeichen, der den Blockbezeichner ankn.)
  • Ein Doublewordwert, der die Größe des Datenmitglieds im Block ankn.)
  • Ein Datenfeld

In der folgenden Abbildung ist ein Block "UNK" dargestellt, der zwei Unterchunks enthält.

-Block, der zwei Unterchunkbilder enthält

Ein in einem anderen Block enthaltener Block ist ein Unterchunk. Die einzigen Chunks, die Unterchunks enthalten dürfen, sind diejenigen mit dem Blockbezeichner "BEZEICHNER" oder "LIST". Ein Block, der einen anderen Block enthält, wird als übergeordneter Block bezeichnet. Der erste Block in einerUNK-Datei muss ein BLOCK VOM-Block sein. Alle anderen Chunks in der Datei sind Teilchunks des BLOCKES.

DIE-Blocke enthalten ein zusätzliches Feld in den ersten vier Bytes des Datenfelds. Dieses zusätzliche Feld gibt den Formulartyp des Felds an. Der Formulartyp ist ein code mit vier Zeichen, der das Format der in der Datei gespeicherten Daten identifiziert. Microsoft Waveform-Audiodateien haben beispielsweise den Formulartyp "WAVE".

"LIST"-Chunks enthalten auch ein zusätzliches Feld in den ersten vier Bytes des Datenfelds. Dieses zusätzliche Feld enthält den Listentyp des Felds. Der Listentyp ist ein code mit vier Zeichen, der den Inhalt der Liste identifiziert. Beispielsweise kann ein List-Block mit dem Listentyp "INFO" die Chunks "ICOP" und "ICRD" enthalten, die Copyright- und Erstellungsdatumsinformationen bereitstellen. Die folgende Abbildung zeigt einen Block "UNK", der einen LIST-Block und einen anderen Unterchunk enthält (der List-Block enthält zwei Unterchunks).

-Block, der ein Listen chunk-Bild enthält

Multimediadatei-E/A-Dienste enthalten zwei Funktionen, die Sie verwenden können, um zwischen Blocken in einerÄND-Datei zu navigieren: mmioAscend und mmioDescend. Sie können diese Funktionen als Suchfunktionen auf hoher Ebene verwenden. Wenn Sie in einen Block absteigen, wird die Dateiposition auf das Datenfeld des Blockes festgelegt (8 Bytes ab dem Anfang des Blockes). Für DIE- und LIST-Chunks wird die Dateiposition auf den Speicherort festgelegt, der dem Formulartyp oder Listentyp folgt (12 Byte ab dem Anfang des Blockes). Wenn Sie aus einem Block aufsteigen, wird die Dateiposition auf den Speicherort nach dem Ende des Blockes festgelegt.

Um einen neuen Block zu erstellen, verwenden Sie die mmioCreateChunk-Funktion, um einen Blockheader an der aktuellen Position in einer geöffneten Datei zu schreiben. Die MmioAscend-, mmioDescend- und mmioCreateChunk-Funktionen verwenden die MMCKINFO-Struktur, um Informationen zu "ÄND"-Blocken anzugeben und abzurufen.