Freigeben über


Suchen nach einem Subchunk

Im folgenden Beispiel wird die mmioDescend-Funktion verwendet, um im Abschnitt "RIFF" des vorherigen Beispiels nach dem Abschnitt "FMT" zu suchen.

// Find the format chunk (form type "FMT"); it should be 
// a subchunk of the "RIFF" parent chunk. 
mmckinfoSubchunk.ckid = mmioFOURCC('f', 'm', 't', ' '); 
if (mmioDescend(hmmio, &mmckinfoSubchunk, &mmckinfoParent, 
    MMIO_FINDCHUNK)) 
    // Error, cannot find the "FMT" chunk. 
else 
    // "FMT" chunk found. 

Um nach einem Teilchunk zu suchen (d. h. nach einem anderen Block als einem "RIFF" oder "LIST"-Blöcken), identifizieren Sie dessen übergeordneten Blöcke im lpckParent-Parameter der mmioDescend-Funktion .

Wenn Sie keinen übergeordneten Block angeben, sollte sich die aktuelle Dateiposition am Anfang eines Blockes befinden, bevor Sie die mmioDescend-Funktion aufrufen. Wenn Sie einen übergeordneten Block angeben, kann sich die aktuelle Dateiposition an einer beliebigen Stelle in diesem Block befinden.

Wenn die Suche nach einem Teilchunk fehlschlägt, ist die aktuelle Dateiposition nicht definiert. Sie können die MmioSeek-Funktion und das dwDataOffset-Element der MMCKINFO-Struktur verwenden, die den übergeordneten Block beschreiben, um wie im folgenden Beispiel zum Anfang des übergeordneten Blöckes zurückzukehren:

mmioSeek(hmmio, mmckinfoParent.dwDataOffset + 4, SEEK_SET); 

Da dwDataOffset den Offset zum Anfang des Datenteils des Blöckes angibt, müssen Sie 4 Byte nach dwDataOffset suchen, um die Dateiposition nach dem Formulartyp festzulegen.