Recherche d’un sous-segment
L’exemple suivant utilise la fonction mmioDescend pour rechercher le segment « fmt » dans le bloc « riff » de l’exemple précédent.
// 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.
Pour rechercher un sous-bloc (autrement dit, tout segment autre qu’un bloc « RIFF » ou « LIST »), identifiez son segment parent dans le paramètre lpckParent de la fonction mmioDescend .
Si vous ne spécifiez pas de bloc parent, la position actuelle du fichier doit se trouver au début d’un segment avant d’appeler la fonction mmioDescend . Si vous spécifiez un segment parent, la position actuelle du fichier peut se trouver n’importe où dans ce segment.
Si la recherche d’un sous-bloc échoue, la position actuelle du fichier n’est pas définie. Vous pouvez utiliser la fonction mmioSeek et le membre dwDataOffset de la structure MMCKINFO décrivant le segment parent pour effectuer une recherche au début du bloc parent, comme dans l’exemple suivant :
mmioSeek(hmmio, mmckinfoParent.dwDataOffset + 4, SEEK_SET);
Étant donné que dwDataOffset spécifie le décalage au début de la partie données du segment, vous devez rechercher 4 octets passés dwDataOffset pour définir la position du fichier après le type de formulaire.