다음을 통해 공유


midiOutPrepareHeader 함수(mmeapi.h)

midiOutPrepareHeader 함수는 출력을 위해 MIDI 시스템 전용 또는 스트림 버퍼를 준비합니다.

구문

MMRESULT midiOutPrepareHeader(
  HMIDIOUT  hmo,
  LPMIDIHDR pmh,
  UINT      cbmh
);

매개 변수

hmo

MIDI 출력 디바이스에 대한 핸들입니다. 디바이스 핸들을 얻으려면 midiOutOpen을 호출합니다. 이 매개 변수는 HMIDIOUT 형식으로 캐스팅된 MIDI 스트림의 핸들일 수도 있습니다.

pmh

준비할 버퍼를 식별하는 MIDIHDR 구조체에 대한 포인터입니다.

함수를 호출하기 전에 MIDIHDR 구조체의 lpData, dwBufferLengthdwFlags 멤버를 설정합니다. dwFlags 멤버는 0으로 설정해야 합니다.

cbmh

MIDIHDR 구조체의 크기(바이트)입니다.

반환 값

성공하면 MMSYSERR_NOERROR 반환하고, 그렇지 않으면 오류를 반환합니다. 가능한 오류 값은 다음과 같습니다.

반환 코드 설명
MMSYSERR_INVALHANDLE
지정한 디바이스 핸들이 잘못되었습니다.
MMSYSERR_INVALPARAM
지정된 주소가 잘못되었거나 지정된 스트림 버퍼가 64K보다 큽니다.
MMSYSERR_NOMEM
시스템에서 메모리를 할당하거나 잠글 수 없습니다.

설명

MIDI 데이터 블록을 디바이스 드라이버에 전달하기 전에 midiOutPrepareHeader 함수에 전달하여 버퍼를 준비해야 합니다. 헤더가 준비되면 버퍼를 수정하지 마세요. 버퍼를 사용하여 드라이버를 완료한 후 midiOutUnprepareHeader 함수를 호출합니다.

애플리케이션은 동일한 버퍼를 다시 사용하거나 여러 버퍼를 할당하고 각 버퍼에 대해 midiOutPrepareHeader 를 호출할 수 있습니다. 동일한 버퍼를 다시 사용하는 경우 매번 버퍼를 준비할 필요가 없습니다. 처음에 midiOutPrepareHeader를 한 번 호출한 다음, 끝에 midiOutUnprepareHeader를 한 번 호출할 수 있습니다.

스트림 버퍼는 64K보다 클 수 없습니다.

이미 준비된 헤더를 준비해도 아무런 효과가 없으며 함수는 MMSYSERR_NOERROR 반환합니다.

요구 사항

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

추가 정보

MIDI 데이터 블록 할당 및 준비

MIDI 함수

midiOutUnprepareHeader