Búsqueda de un subchunk
En el ejemplo siguiente se usa la función mmioDescend para buscar el fragmento "FMT" en el fragmento "RIFF" del ejemplo anterior.
// 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.
Para buscar una subcunk (es decir, cualquier fragmento distinto de un fragmento "RIFF" o "LIST"), identifique su fragmento primario en el parámetro lpckParent de la función mmioDescend .
Si no especifica un fragmento primario, la posición del archivo actual debe estar al principio de un fragmento antes de llamar a la función mmioDescend . Si especifica un fragmento primario, la posición del archivo actual puede estar en cualquier parte de ese fragmento.
Si se produce un error en la búsqueda de una subchunk, la posición del archivo actual no está definida. Puede usar la función mmioSeek y el miembro dwDataOffset de la estructura MMCKINFO que describe el fragmento primario para volver a buscar al principio del fragmento primario, como en el ejemplo siguiente:
mmioSeek(hmmio, mmckinfoParent.dwDataOffset + 4, SEEK_SET);
Dado que dwDataOffset especifica el desplazamiento al principio de la parte de datos del fragmento, debe buscar 4 bytes más allá de dwDataOffset para establecer la posición del archivo después del tipo de formulario.