Share via


mixerOpen 함수(mmeapi.h)

mixerOpen 함수는 지정된 믹서 디바이스를 열고 애플리케이션이 핸들을 닫을 때까지 디바이스가 제거되지 않도록 합니다.

구문

MMRESULT mixerOpen(
  LPHMIXER  phmx,
  UINT      uMxId,
  DWORD_PTR dwCallback,
  DWORD_PTR dwInstance,
  DWORD     fdwOpen
);

매개 변수

phmx

열린 믹서 디바이스를 식별하는 핸들을 수신할 변수에 대한 포인터입니다. 다른 오디오 믹서 함수를 호출할 때 이 핸들을 사용하여 디바이스를 식별합니다. 이 매개 변수는 NULL일 수 없습니다.

uMxId

열 믹서 디바이스의 식별자입니다. 유효한 디바이스 식별자 또는 HMIXEROBJ 를 사용합니다(mixer 개체 핸들에 대한 설명은 mixerGetID 함수 참조). 오디오 믹서 디바이스에 대한 "매퍼"가 현재 존재하지 않으므로 -1의 믹서 디바이스 식별자가 유효하지 않습니다.

dwCallback

열려 있는 디바이스와 연결된 오디오 라인 및/또는 컨트롤의 상태가 변경될 때 호출되는 창에 대한 핸들입니다. 콜백 메커니즘을 사용하지 않는 경우 이 매개 변수에 NULL 을 지정합니다.

dwInstance

예약되어 있습니다. 0이어야 합니다.

fdwOpen

디바이스를 열기 위한 플래그입니다. 다음 값이 정의됩니다.

의미
CALLBACK_WINDOW dwCallback 매개 변수는 창 핸들(HWND)으로 간주됩니다.
MIXER_OBJECTF_AUX uMxId 매개 변수는 auxGetNumDevs 함수에서 반환하는 디바이스 수보다 0~1개 미만인 보조 디바이스 식별자입니다.
MIXER_OBJECTF_HMIDIIN uMxId 매개 변수는 MIDI 입력 디바이스의 핸들입니다. 이 핸들은 midiInOpen 함수에서 반환되어야 합니다.
MIXER_OBJECTF_HMIDIOUT uMxId 매개 변수는 MIDI 출력 디바이스의 핸들입니다. 이 핸들은 midiOutOpen 함수에서 반환되어야 합니다.
MIXER_OBJECTF_HMIXER uMxId 매개 변수는 mixerOpen 함수에서 반환된 믹서 디바이스 핸들입니다. 이 플래그는 선택 사항입니다.
MIXER_OBJECTF_HWAVEIN uMxId 매개 변수는 waveInOpen 함수에서 반환하는 파형 오디오 입력 핸들입니다.
MIXER_OBJECTF_HWAVEOUT uMxId 매개 변수는 waveOutOpen 함수에서 반환하는 파형 오디오 출력 핸들입니다.
MIXER_OBJECTF_MIDIIN uMxId 매개 변수는 MIDI 입력 디바이스의 식별자입니다. 이 식별자는 midiInGetNumDevs 함수에서 반환하는 디바이스 수보다 0에서 1까지의 범위에 있어야 합니다.
MIXER_OBJECTF_MIDIOUT uMxId 매개 변수는 MIDI 출력 디바이스의 식별자입니다. 이 식별자는 midiOutGetNumDevs 함수에서 반환하는 디바이스 수보다 0에서 1까지의 범위에 있어야 합니다.
MIXER_OBJECTF_MIXER uMxId 매개 변수는 mixerGetNumDevs 함수에서 반환된 디바이스 수보다 0~1개 미만의 믹서 디바이스 식별자입니다. 이 플래그는 선택 사항입니다.
MIXER_OBJECTF_WAVEIN uMxId 매개 변수는 waveInGetNumDevs 함수에서 반환된 디바이스 수보다 0~1보다 작은 파형 오디오 입력 디바이스의 식별자입니다.
MIXER_OBJECTF_WAVEOUT uMxId 매개 변수는 waveOutGetNumDevs 함수에서 반환된 디바이스 수보다 0~1보다 작은 파형 오디오 출력 디바이스의 식별자입니다.

반환 값

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

반환 코드 설명
MMSYSERR_ALLOCATED
지정된 리소스는 가능한 최대 클라이언트 수로 이미 할당되어 있습니다.
MMSYSERR_BADDEVICEID
uMxId 매개 변수는 잘못된 디바이스 식별자를 지정합니다.
MMSYSERR_INVALFLAG
하나 이상의 플래그가 잘못되었습니다.
MMSYSERR_INVALHANDLE
uMxId 매개 변수는 잘못된 핸들을 지정합니다.
MMSYSERR_INVALPARAM
하나 이상의 매개 변수가 잘못되었습니다.
MMSYSERR_NODRIVER
uMxId로 지정된 개체에 사용할 수 있는 믹서 디바이스가 없습니다. uMxId에서 참조하는 위치에는 –1 값도 포함됩니다.
MMSYSERR_NOMEM
리소스를 할당할 수 없습니다.

설명

mixerGetNumDevs 함수를 사용하여 시스템에 있는 오디오 믹서 디바이스의 수를 확인합니다. uMxId로 지정된 디바이스 식별자는 존재하는 디바이스 수보다 0개에서 1개씩 다릅니다.

창이 콜백 정보를 수신하도록 선택되면 MM_MIXM_LINE_CHANGEMM_MIXM_CONTROL_CHANGE 메시지가 창 프로시저 함수로 전송되어 오디오 라인 또는 컨트롤 상태가 변경되는 시기를 나타냅니다. 두 메시지 모두 wParam 매개 변수는 믹서 디바이스의 핸들입니다. lParam 매개 변수는 MM_MIXM_LINE_CHANGE 대한 줄 식별자 또는 상태를 변경한 MM_MIXM_CONTROL_CHANGE 대한 컨트롤 식별자입니다.

오디오 믹서 지원 또는 미디어 디바이스를 쿼리하려면 mixerGetID 함수를 사용합니다.

uMxId 매개 변수가 32비트로 잘리기 때문에 64비트 시스템에서는 uMxId 매개 변수에 64비트 LPHWAVEOUT 포인터를 전달하는 상황에서 이 함수가 예상대로 작동하지 않을 수 있습니다.

요구 사항

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

참고 항목

오디오 믹서 함수

오디오 믹서