Compartilhar via


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.