다음을 통해 공유


midiOutOpen 함수(mmeapi.h)

midiOutOpen 함수는 재생을 위해 MIDI 출력 디바이스를 엽니다.

구문

MMRESULT midiOutOpen(
  LPHMIDIOUT phmo,
  UINT       uDeviceID,
  DWORD_PTR  dwCallback,
  DWORD_PTR  dwInstance,
  DWORD      fdwOpen
);

매개 변수

phmo

HMIDIOUT 핸들에 대한 포인터입니다. 이 위치는 열린 MIDI 출력 디바이스를 식별하는 핸들로 채워집니다. 핸들은 다른 MIDI 출력 함수에 대한 호출에서 디바이스를 식별하는 데 사용됩니다.

uDeviceID

열 MIDI 출력 디바이스의 식별자입니다.

dwCallback

재생 진행률과 관련된 메시지를 처리하기 위해 MIDI 재생 중에 호출된 창 또는 스레드의 콜백 함수, 이벤트 핸들, 스레드 식별자 또는 핸들에 대한 포인터입니다. 콜백이 필요한 경우 이 매개 변수에 대해 NULL 을 지정합니다. 콜백 함수에 대한 자세한 내용은 MidiOutProc을 참조하세요.

dwInstance

콜백에 전달된 사용자 instance 데이터입니다. 이 매개 변수는 창 콜백 또는 스레드와 함께 사용되지 않습니다.

fdwOpen

디바이스를 열기 위한 콜백 플래그입니다. 다음 값일 수 있습니다.

의미
CALLBACK_EVENT dwCallback 매개 변수는 이벤트 핸들입니다. 이 콜백 메커니즘은 출력 전용입니다.
CALLBACK_FUNCTION dwCallback 매개 변수는 콜백 함수 주소입니다.
CALLBACK_NULL 콜백 메커니즘이 없습니다. 이 값은 기본 설정입니다.
CALLBACK_THREAD dwCallback 매개 변수는 스레드 식별자입니다.
CALLBACK_WINDOW dwCallback 매개 변수는 창 핸들입니다.

반환 값

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

반환 코드 설명
MIDIERR_NODEVICE
MIDI 포트를 찾을 수 없습니다. 이 오류는 매퍼가 열릴 때만 발생합니다.
MMSYSERR_ALLOCATED
지정된 리소스가 이미 할당되어 있습니다.
MMSYSERR_BADDEVICEID
지정된 디바이스 식별자가 범위를 벗어났습니다.
MMSYSERR_INVALPARAM
지정한 포인터 또는 구조체가 잘못되었습니다.
MMSYSERR_NOMEM
시스템에서 메모리를 할당하거나 잠글 수 없습니다.

설명

시스템에 있는 MIDI 출력 디바이스 수를 확인하려면 midiOutGetNumDevs 함수를 사용합니다. wDeviceID로 지정된 디바이스 식별자는 존재하는 디바이스 수보다 0개에서 1개씩 다릅니다. MIDI_MAPPER 디바이스 식별자로 사용할 수도 있습니다.

창 또는 스레드가 콜백 정보를 수신하도록 선택된 경우 창 프로시저 또는 스레드로 전송되어 MIDI 출력의 진행률을 나타내는 MM_MOM_OPEN, MM_MOM_CLOSEMM_MOM_DONE.

콜백 정보를 수신하도록 함수를 선택한 경우 MIDI 출력의 진행률을 나타내기 위해 함수로 전송됩니다. MOM_OPEN, MOM_CLOSEMOM_DONE.

요구 사항

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

참고 항목

MIDI 함수