Pesquisando por um Subchunk
O exemplo a seguir usa a função mmioDescend para pesquisar a parte "FMT" na parte "RIFF" do exemplo 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 pesquisar um subchunk (ou seja, qualquer parte diferente de uma parte "RIFF" ou "LIST"), identifique sua parte pai no parâmetro lpckParent da função mmioDescend .
Se você não especificar uma parte pai, a posição atual do arquivo deverá estar no início de uma parte antes de chamar a função mmioDescend . Se você especificar uma parte pai, a posição do arquivo atual poderá estar em qualquer lugar nessa parte.
Se a pesquisa por um subchunk falhar, a posição do arquivo atual será indefinida. Você pode usar a função mmioSeek e o membro dwDataOffset da estrutura MMCKINFO que descreve a parte pai para buscar de volta ao início da parte pai, como no exemplo a seguir:
mmioSeek(hmmio, mmckinfoParent.dwDataOffset + 4, SEEK_SET);
Como dwDataOffset especifica o deslocamento para o início da parte de dados da parte, você deve buscar 4 bytes após dwDataOffset para definir a posição do arquivo após o tipo de formulário.