다음을 통해 공유


하위 펑크 검색

다음 예제에서는 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 함수를 호출하기 전에 현재 파일 위치가 청크의 시작 부분에 있어야 합니다. 부모 청크를 지정하면 현재 파일 위치는 해당 청크의 어느 곳에나 있을 수 있습니다.

하위 펑크 검색에 실패하면 현재 파일 위치가 정의되지 않습니다. 다음 예제와 같이 부모 청크를 설명하는 MMCKINFO 구조체의 mmioSeek 함수 및 dwDataOffset 멤버를 사용하여 부모 청크의 시작 부분으로 돌아갈 수 있습니다.

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

dwDataOffset은 청크 데이터 부분의 시작 부분에 대한 오프셋을 지정하므로 dwDataOffset 이후 4바이트를 검색하여 양식 형식 다음에 파일 위치를 설정해야 합니다.