midiOutMessage 함수는 MIDI 디바이스 드라이버에 메시지를 보냅니다. 이 함수는 MIDI API에서 지원되지 않는 드라이버 관련 메시지에만 사용됩니다.
Syntax
MMRESULT midiOutMessage(
HMIDIOUT hmo,
UINT uMsg,
DWORD_PTR dw1,
DWORD_PTR dw2
);
매개 변수
hmo
메시지를 받는 MIDI 디바이스의 식별자입니다. 디바이스 ID를 HMIDIOUT 핸들 형식으로 캐스팅해야 합니다. 디바이스 ID 대신 핸들을 제공하는 경우 함수가 실패하고 MMSYSERR_NOSUPPORT 오류 코드를 반환합니다.
uMsg
보낼 메시지입니다.
dw1
메시지 매개 변수입니다.
dw2
메시지 매개 변수입니다.
반환 값
오디오 디바이스 드라이버에서 반환된 값을 반환합니다.
비고
메시지는 DRV_QUERYDEVICEINTERFACEwaveIn, waveOut, midiIn, midiOut 또는 믹서 디바이스의 디바이스 인터페이스 이름을 쿼리합니다.
의 경우 DRV_QUERYDEVICEINTERFACEdwParam1은 함수가 디바이스 인터페이스 이름을 포함하는 null로 종료된 유니코드 문자열을 작성하는 호출자 할당 버퍼에 대한 포인터입니다. 디바이스에 디바이스 인터페이스가 없는 경우 문자열 길이는 0입니다.
의 경우 DRV_QUERYDEVICEINTERFACEdwParam2는 버퍼 크기를 바이트 단위로 지정합니다. 함수에 대한 입력 매개 변수입니다. 호출자는 DRV_QUERYDEVICEINTERFACESIZE 메시지에서 검색한 버퍼 크기보다 크거나 같은 크기를 지정해야 합니다.
DRV_QUERYDEVICEINTERFACE 메시지는 Windows Me 및 Windows 2000 이상에서 지원됩니다. 이 메시지는 waveInMessage, waveOutMessage, midiInMessage, midiOutMessage 및 mixerMessage 함수에만 유효합니다. 시스템은 이 메시지를 가로채고 디바이스 드라이버에 메시지를 보내지 않고 적절한 값을 반환합니다. 시스템 차단 xxxMessage 함수에 대한 일반적인 내용은 System-Intercepted 디바이스 메시지를 참조하세요.
다음 두 메시지 상수는 디바이스 인터페이스 이름을 가져오기 위해 함께 사용됩니다.
- DRV_QUERYDEVICEINTERFACESIZE
- DRV_QUERYDEVICEINTERFACE
자세한 내용은 디바이스 인터페이스 이름 가져오기를 참조하세요.
메시지는 DRV_QUERYDEVICEINTERFACESIZE 디바이스 인터페이스 이름을 보유하는 데 필요한 버퍼의 크기를 쿼리합니다.
의 경우 DRV_QUERYDEVICEINTERFACESIZEdwParam1은 버퍼 크기에 대한 포인터입니다. 이 매개 변수는 함수가 필요한 버퍼 크기를 바이트 단위로 쓰는 ULONG 변수를 가리킵니다. 크기에는 이름 문자열의 종료 null에 대한 스토리지 공간이 포함됩니다. 디바이스 ID가 디바이스 인터페이스가 없는 디바이스를 식별하는 경우 크기는 0입니다.
의 경우 DRV_QUERYDEVICEINTERFACESIZEdwParam2는 사용되지 않습니다. 이 매개 변수를 0으로 설정합니다.
이 메시지는 waveInMessage, waveOutMessage, midiInMessage, midiOutMessage 및 mixerMessage 함수에만 유효합니다. 시스템은 이 메시지를 가로채고 디바이스 드라이버에 메시지를 보내지 않고 적절한 값을 반환합니다. 시스템 차단 xxxMessage 함수에 대한 일반적인 내용은 System-Intercepted 디바이스 메시지를 참조하세요.
이 메시지에서 검색한 버퍼 크기는 바이트 수로 표현됩니다. 디바이스 인터페이스 이름을 포함하는 null로 끝나는 유니코드 문자열을 보유하는 데 필요한 버퍼의 크기를 지정합니다. 호출자는 지정된 크기의 버퍼를 할당하고 DRV_QUERYDEVICEINTERFACE 메시지를 사용하여 디바이스 인터페이스 이름 문자열을 검색합니다.
자세한 내용은 디바이스 인터페이스 이름 가져오기를 참조하세요.
이 DRV_QUERYDEVNODE 메시지는 플러그 앤 플레이 관리자가 디바이스에 할당한 devnode 번호를 쿼리합니다.
의 경우 DRV_QUERYDEVNODEdwParam1은 함수가 devnode 번호를 쓰는 호출자 할당 DWORD 변수에 대한 포인터입니다. 디바이스에 devnode가 할당되지 않은 경우 함수는 이 변수를 0으로 설정합니다.
의 경우 DRV_QUERYDEVNODEdwParam2는 사용되지 않습니다. 이 매개 변수를 0으로 설정합니다.
Windows 2000 이상에서는 메시지가 항상 MMSYSERR_NOTSUPPORTED 반환합니다. 이 메시지는 waveInMessage, waveOutMessage, midiInMessage, midiOutMessage 및 mixerMessage 함수에만 유효합니다. 시스템은 이 메시지를 가로채고 디바이스 드라이버에 메시지를 보내지 않고 적절한 값을 반환합니다. 시스템 차단 xxxMessage 함수에 대한 일반적인 내용은 System-Intercepted 디바이스 메시지를 참조하세요.
메시지는 DRV_QUERYMAPPABLE 매퍼에서 지정된 디바이스를 사용할 수 있는지 여부를 쿼리합니다.
의 경우 DRV_QUERYMAPPABLEdwParam1은 사용되지 않습니다. 이 매개 변수를 0으로 설정합니다.
의 경우 DRV_QUERYMAPPABLEdwParam2는 사용되지 않습니다. 이 매개 변수를 0으로 설정합니다.
이 메시지는 waveInMessage, waveOutMessage, midiInMessage, midiOutMessage, mixerMessage 및 auxOutMessage 함수에만 유효합니다. 시스템은 이 메시지를 가로채고 디바이스 드라이버에 메시지를 보내지 않고 적절한 값을 반환합니다. 시스템 차단 xxxMessage 함수에 대한 일반적인 내용은 System-Intercepted 디바이스 메시지를 참조하세요.
애플리케이션 프로그램에서 특정 오디오 디바이스 대신 매퍼를 열면 시스템에서 애플리케이션과 사용 가능한 디바이스 사이에 매퍼를 삽입합니다. 매퍼는 애플리케이션의 요구 사항을 사용 가능한 디바이스 중 하나에 매핑하여 적절한 디바이스를 선택합니다. 매퍼에 대한 자세한 내용은 Microsoft Windows SDK 설명서를 참조하세요.
메시지는 DRVM_MAPPER_CONSOLEVOICECOM_GET 기본 음성 통신 디바이스의 디바이스 ID를 검색합니다.
의 경우 DRVM_MAPPER_CONSOLEVOICECOM_GETdwParam1은 디바이스 ID에 대한 포인터입니다. 이 매개 변수는 함수가 현재 기본 설정된 음성 통신 디바이스의 디바이스 ID를 작성하는 DWORD 변수를 가리킵니다. 이 함수는 기본 음성 통신 디바이스로 한정되는 디바이스를 사용할 수 없는 경우 값(-1)을 씁니다.
의 경우 DRVM_MAPPER_CONSOLEVOICECOM_GETdwParam2는 상태 플래그에 대한 포인터입니다. 이 매개 변수는 함수가 디바이스 상태 플래그를 작성하는 DWORD 변수를 가리킵니다. 현재 DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY 하나의 플래그 비트만 정의되어 있습니다.
이 메시지는 waveInMessage 및 waveOutMessage 함수에 만 유효합니다. 호출자가 DRVM_MAPPER_CONSOLEVOICECOM_GET 메시지를 사용하여 이러한 두 함수를 호출하는 경우 호출자는 디바이스 ID를 WAVE_MAPPER 지정한 다음 이 값을 적절한 핸들 형식으로 캐스팅해야 합니다. waveInMessage, waveOutMessage, midiInMessage, midiOutMessage 또는 mixerMessage 함수의 경우 호출자는 각각 HWAVEIN, HWAVEOUT, HMIDIIN, HMIDIOUT 또는 HMIXER 형식의 핸들로 디바이스 ID를 캐스팅해야 합니다. 호출자가 이 매개 변수에 대한 디바이스 ID 대신 유효한 핸들을 제공하는 경우 함수가 실패하고 오류 코드 MMSYSERR_NOSUPPORT 반환합니다.
시스템은 이 메시지를 가로채고 디바이스 드라이버에 메시지를 보내지 않고 적절한 값을 반환합니다. 시스템 차단 xxxMessage 함수에 대한 일반적인 내용은 System-Intercepted 디바이스 메시지를 참조하세요.
이 메시지는 다른 모든 오디오 기능에 선호되는 디바이스를 결정하는 DRVM_MAPPER_PREFERRED_GET 메시지와 달리 음성 통신에 특히 선호되는 디바이스를 결정하는 방법을 제공합니다.
예를 들어 음성 통신을 위한 기본 waveOut 디바이스는 헤드셋의 이어피스일 수 있지만 다른 모든 오디오 기능에 대해 선호하는 waveOut 디바이스는 스테레오 스피커 집합일 수 있습니다.
dwParam2가 가리키는 DWORD 위치에 DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY 플래그 비트가 설정되면 waveIn 및 waveOut API는 현재 선호하는 음성 통신 디바이스만 사용하고 기본 설정 디바이스를 사용할 수 없는 경우 사용 가능한 다른 디바이스를 검색하지 않습니다. waveInMessage 또는 waveOutMessage 호출에 의해 출력되는 플래그는 waveInMessage 또는 waveOutMessage에 대한 호출이 이루어지는지 여부에 관계없이 waveIn 및 waveOut API 모두에 대한 기본 음성 통신 디바이스에 적용됩니다. 자세한 내용은 기본 Voice-Communications 디바이스 ID를 참조하세요.
메시지는 DRVM_MAPPER_PREFERRED_GET 기본 설정 오디오 디바이스의 디바이스 ID를 검색합니다.
의 경우 DRVM_MAPPER_PREFERRED_GETdwParam1은 디바이스 ID에 대한 포인터입니다. 이 매개 변수는 함수가 현재 기본 설정 디바이스의 디바이스 ID를 쓰는 DWORD 변수를 가리킵니다. 이 함수는 기본 설정 디바이스로 자격이 있는 디바이스를 사용할 수 없는 경우 값(-1)을 씁니다.
의 경우 DRVM_MAPPER_PREFERRED_GETdwParam2는 상태 플래그에 대한 포인터입니다. 이 매개 변수는 함수가 디바이스 상태 플래그를 작성하는 DWORD 변수를 가리킵니다. 현재 하나의 플래그 비트만 정의되어 있습니다( waveInMessage 및 waveOutMessage 호출에 대해서만) DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY.
이 메시지는 waveInMessage, waveOutMessage 및 midiOutMessage 함수에 만 유효합니다. 호출자가 DRVM_MAPPER_PREFERRED_GET 메시지를 사용하여 이러한 함수를 호출하는 경우 호출자는 먼저 디바이스 ID를 WAVE_MAPPER( waveInMessage 또는 waveOutMessage의 경우) 또는 MIDI_MAPPER( midiOutMessage의 경우)로 지정한 다음 이 값을 적절한 핸들 형식으로 캐스팅해야 합니다. waveInMessage, waveOutMessage 또는 midiOutMessage 함수의 경우 호출자는 디바이스 ID를 각각 HWAVEIN, HWAVEOUT 또는 HMIDIOUT 핸들 형식으로 캐스팅해야 합니다. 호출자가 이 매개 변수에 대한 디바이스 ID 대신 유효한 핸들을 제공하는 경우 함수가 실패하고 오류 코드 MMSYSERR_NOSUPPORT 반환합니다.
시스템은 이 메시지를 가로채고 디바이스 드라이버에 메시지를 보내지 않고 적절한 값을 반환합니다. 시스템 차단 xxxMessage 함수에 대한 일반적인 내용은 System-Intercepted 디바이스 메시지를 참조하세요.
이 메시지는 음성 통신에 특별히 선호되는 디바이스를 결정하는 DRVM_MAPPER_CONSOLEVOICECOM_GET 메시지와 달리 일반적으로 오디오 기능에 선호되는 디바이스를 결정하는 방법을 제공합니다.
dwParam2가 가리키는 DWORD 위치에 DRVM_MAPPER_PREFERRED_FLAGS_PREFERREDONLY 플래그 비트가 설정되면 waveIn 및 waveOut API는 현재 기본 설정 디바이스만 사용하고 기본 설정 디바이스를 사용할 수 없는 경우 사용 가능한 다른 디바이스를 검색하지 않습니다. midiOutMessage 함수는 이 플래그를 출력하지 않습니다. midiOut API는 항상 기본 설정 디바이스만 사용합니다. waveInMessage 또는 waveOutMessage 호출에 의해 출력되는 플래그는 waveInMessage 또는 waveOutMessage 호출에 대해 호출되었는지 여부에 관계없이 waveIn 및 waveOut API 모두에 대한 기본 설정 디바이스에 적용됩니다.
xxxMessage 함수는 애플리케이션이 먼저 디바이스를 열지 않고도 기본 디바이스 ID를 확인할 수 있도록 유효한 디바이스 핸들 대신 이 값을 허용합니다. 자세한 내용은 기본 설정 디바이스 ID 액세스를 참조하세요.
요구 사항
| 요구 사항 | 가치 |
|---|---|
| 지원되는 최소 클라이언트 | Windows 2000 Professional [데스크톱 앱만 해당] |
| 지원되는 최소 서버 | Windows 2000 Server [데스크톱 앱만 해당] |
| 대상 플랫폼 | 윈도우즈 |
| Header | mmeapi.h(Windows.h 포함) |
| Library | Winmm.lib |
| DLL | Winmm.dll |