mmioDescend 함수(mmiscapi.h)

mmioDescend 함수는 mmioOpen 함수를 사용하여 연 RIFF 파일의 청크로 내림차순입니다. 지정된 청크를 검색할 수도 있습니다.

구문

MMRESULT mmioDescend(
  HMMIO          hmmio,
  LPMMCKINFO     pmmcki,
  const MMCKINFO *pmmckiParent,
  UINT           fuDescend
);

매개 변수

hmmio

열려 있는 RIFF 파일의 파일 핸들입니다.

pmmcki

MMCKINFO 구조를 수신하는 버퍼에 대한 포인터입니다.

pmmckiParent

검색할 청크의 부모를 식별하는 선택적 애플리케이션 정의 MMCKINFO 구조체에 대한 포인터입니다. 이 매개 변수가 NULL이 아닌 경우 mmioDescend는 mmioDescend가 부모 청크로 내림 차순으로 호출될 때 참조하는 MMCKINFO 구조가 채워진 것으로 가정하고 mmioDescend는 부모 청크 내에서 청크를 검색합니다. 부모 청크가 지정되지 않은 경우 이 매개 변수를 NULL 로 설정합니다.

fuDescend

검색 플래그. 플래그를 지정하지 않으면 mmioDescend 가 현재 파일 위치에서 시작하는 청크로 내림합니다. 다음 값이 정의됩니다.

의미
MMIO_FINDCHUNK 지정된 청크 식별자를 사용하여 청크를 검색합니다.
MMIO_FINDLIST 청크 식별자 "LIST"와 지정된 양식 형식의 청크를 검색합니다.
MMIO_FINDRIFF 청크 식별자 "RIFF"와 지정된 양식 형식의 청크를 검색합니다.

반환 값

성공하거나 오류가 있으면 MMSYSERR_NOERROR 반환합니다. 가능한 오류 값은 다음과 같습니다.

반환 코드 설명
MMIOERR_CHUNKNOTFOUND
원하는 청크를 발견하기 전에 파일의 끝(또는 부모 청크의 끝(지정된 경우)에 도달했습니다.

설명

"RIFF" 청크는 4바이트 청크 식별자( FOURCC 형식) 다음에 4바이트 청크 크기( DWORD 형식)로 구성되고, 그 뒤에 청크의 데이터 부분, 데이터 부분의 크기가 홀수인 경우 null 패드 바이트가 뒤따릅니다. 청크 식별자가 "RIFF" 또는 "LIST"인 경우 청크 데이터 부분의 처음 4바이트가 폼 형식 또는 목록 형식( FOURCC 형식)입니다.

mmioDescend를 사용하여 청크를 검색하는 경우 함수를 호출하기 전에 파일 위치가 청크의 시작 부분에 있는지 확인합니다. 검색은 현재 파일 위치에서 시작하여 파일의 끝까지 계속됩니다. 부모 청크를 지정하면 mmioDescend를 호출하기 전에 파일 위치가 부모 청크 내 어딘가에 있어야 합니다. 이 경우 검색은 현재 파일 위치에서 시작하여 부모 청크의 끝까지 계속됩니다.

mmioDescend가 청크를 검색하는 데 실패하면 현재 파일 위치가 정의되지 않습니다. mmioDescend가 성공하면 현재 파일 위치가 변경됩니다. 청크가 "RIFF" 또는 "LIST" 청크인 경우 새 파일 위치는 양식 유형 또는 목록 형식(청크 시작부터 12바이트) 바로 뒤가 됩니다. 다른 청크의 경우 새 파일 위치는 청크의 데이터 부분(청크 시작부터 8바이트)의 시작 위치가 됩니다.

mmioDescend 함수는 lpck 매개 변수가 가리키는 MMCKINFO 구조를 다음 정보로 채웁니다.

  • ckid 멤버는 청크입니다. wFlags에 대해 MMIO_FINDCHUNK, MMIO_FINDRIFF 또는 MMIO_FINDLIST 플래그를 지정하면 MMCKINFO 구조체도 매개 변수를 mmioDescend에 전달하는 데 사용됩니다. 이 경우 ckid 멤버는 검색할 청크 식별자, 양식 형식 또는 목록 형식의 4자 코드를 지정합니다.
  • cksize 멤버는 청크의 데이터 부분 크기(바이트)입니다. 크기는 양식 유형 또는 목록 형식(있는 경우)을 포함하지만 데이터 끝에 있는 8바이트 청크 헤더 또는 패드 바이트(있는 경우)는 포함하지 않습니다.
  • fccType 멤버는 ckid가 "RIFF"인 경우 양식 형식이거나, ckid가 "LIST"인 경우 목록 형식입니다. 그렇지 않으면 NULL입니다.
  • dwDataOffset 멤버는 청크의 데이터 부분 시작 부분의 파일 오프셋입니다. 청크가 "RIFF" 청크 또는 "LIST" 청크인 경우 이 멤버는 양식 유형 또는 목록 형식의 오프셋입니다.
  • dwFlags 멤버는 청크에 대한 다른 정보를 포함합니다. 현재 이 정보는 사용되지 않으며 0으로 설정됩니다.

요구 사항

   
지원되는 최소 클라이언트 Windows 2000 Professional[데스크톱 앱만]
지원되는 최소 서버 Windows 2000 Server[데스크톱 앱만]
대상 플랫폼 Windows
헤더 mmiscapi.h(Mmiscapi.h, Windows.h 포함)
라이브러리 Winmm.lib
DLL Winmm.dll