共用方式為


搜尋子區塊

[與此頁面相關聯的功能 多媒體檔案 I/O是舊版功能。 來源讀取器已取代它。 來源讀取器 已針對 Windows 10 和 Windows 11 優化。 Microsoft強烈建議新程式碼盡可能使用 來源讀取器,而不是 多媒體檔案 I/O。 Microsoft建議使用舊版 API 的現有程式代碼,盡可能改寫成使用新的 API。]

下列範例會使用 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. 

若要搜尋 subchunk(也就是 “RIFF” 或 “LIST” 區塊以外的任何區塊),請在 mmioDescend 函式的 lpckParent 參數中識別其父區塊。

如果您未指定父區塊,則目前的檔案位置應該在區塊開頭,再呼叫 mmioDescend 函式。 如果您指定父區塊,目前的檔案位置可以是該區塊中的任何位置。

如果搜尋 subchunk 失敗,則目前檔案位置未定義。 您可以使用 mmioSeek 函式和 dwDataOffset 成員 MMCKINFO 結構,描述父區塊以回溯至父區塊開頭,如下列範例所示:

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

因為 dwDataOffset 指定區塊數據部分開頭的位移,因此您必須搜尋超過 4 個字節 dwDataOffset,才能在表單類型之後設定檔案位置。