Bagikan melalui


Mencari Subchunk

Contoh berikut menggunakan fungsi mmioDescend untuk mencari gugus "FMT" dalam gugus "RIFF" dari contoh sebelumnya.

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

Untuk mencari subchunk (yaitu, gugus apa pun selain gugus "RIFF" atau "LIST"), identifikasi gugus induknya dalam parameter lpckParent dari fungsi mmioDescend .

Jika Anda tidak menentukan gugus induk, posisi file saat ini harus berada di awal gugus sebelum Anda memanggil fungsi mmioDescend . Jika Anda menentukan potongan induk, posisi file saat ini dapat berada di mana saja dalam gugus tersebut.

Jika pencarian subchunk gagal, posisi file saat ini tidak terdefinisi. Anda dapat menggunakan fungsi mmioSeek dan anggota dwDataOffset dari struktur MMCKINFO yang menjelaskan potongan induk untuk mencari kembali ke awal gugus induk, seperti dalam contoh berikut:

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

Karena dwDataOffset menentukan offset ke awal bagian data dari gugus, Anda harus mencari 4 byte melewati dwDataOffset untuk mengatur posisi file setelah jenis formulir.