搜索 Subchunk

以下示例使用 mmioDescend 函数在上一个示例的“RIFF”区块中搜索“FMT”区块。

// 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. 

若要搜索子 (即“RIFF”或“LIST”区块) 以外的任何区块,请在 mmioDescend 函数的 lpckParent 参数中标识其父区块。

如果未指定父区块,在调用 mmioDescend 函数之前,当前文件位置应位于区块的开头。 如果指定父区块,则当前文件位置可以位于该区块中的任意位置。

如果搜索子丘克失败,则当前文件位置未定义。 可以使用 mmioSeek 函数和描述父区块的 MMCKINFO 结构的 dwDataOffset 成员来回溯到父区块的开头,如以下示例所示:

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

由于 dwDataOffset 指定到区块数据部分开头的偏移量,因此必须查找 dwDataOffset 之后的 4 个字节,以在窗体类型之后设置文件位置。