функция mixerOpen (mmeapi.h)
Функция mixerOpen открывает указанное устройство микшера и гарантирует, что устройство не будет удалено, пока приложение не закроет дескриптор.
Синтаксис
MMRESULT mixerOpen(
LPHMIXER phmx,
UINT uMxId,
DWORD_PTR dwCallback,
DWORD_PTR dwInstance,
DWORD fdwOpen
);
Параметры
phmx
Указатель на переменную, которая получит дескриптор, определяющий открытое устройство микшера. Используйте этот дескриптор для идентификации устройства при вызове других функций аудиомиксера. Этот параметр не может иметь значение NULL.
uMxId
Идентификатор открываемого микшерного устройства. Используйте допустимый идентификатор устройства или любой HMIXEROBJ (описание дескрипторов объектов микшера см. в разделе Функция mixerGetID ). "Средство сопоставления" для аудио-микшерных устройств в настоящее время не существует, поэтому идентификатор устройства микшера с значением -1 недопустим.
dwCallback
Обработка окна, вызываемого при изменении состояния звуковой строки и (или) элемента управления, связанного с открываемым устройством. Укажите значение NULL для этого параметра, если не требуется использовать механизм обратного вызова.
dwInstance
Зарезервировано. Должен равняться нулю.
fdwOpen
Флаги для открытия устройства. Определены следующие значения.
Значение | Значение |
---|---|
CALLBACK_WINDOW | Параметр dwCallback считается дескриптором окна (HWND). |
MIXER_OBJECTF_AUX | Параметр uMxId — это вспомогательный идентификатор устройства в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией auxGetNumDevs . |
MIXER_OBJECTF_HMIDIIN | Параметр uMxId — это дескриптор устройства ввода MIDI. Этот дескриптор должен быть возвращен функцией midiInOpen . |
MIXER_OBJECTF_HMIDIOUT | Параметр uMxId — это дескриптор устройства вывода MIDI. Этот дескриптор должен быть возвращен функцией midiOutOpen . |
MIXER_OBJECTF_HMIXER | Параметр uMxId — это дескриптор устройства микшера, возвращаемый функцией mixerOpen . Этот флаг является необязательным. |
MIXER_OBJECTF_HWAVEIN | Параметр uMxId — это дескриптор входных данных waveform-audio, возвращаемый функцией waveInOpen . |
MIXER_OBJECTF_HWAVEOUT | Параметр uMxId — это дескриптор вывода waveform-audio, возвращаемый функцией waveOutOpen . |
MIXER_OBJECTF_MIDIIN | Параметр uMxId — это идентификатор устройства ввода MIDI. Этот идентификатор должен находиться в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией midiInGetNumDevs . |
MIXER_OBJECTF_MIDIOUT | Параметр uMxId — это идентификатор устройства вывода MIDI. Этот идентификатор должен находиться в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией midiOutGetNumDevs . |
MIXER_OBJECTF_MIXER | Параметр uMxId — это идентификатор устройства микшера в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией mixerGetNumDevs . Этот флаг является необязательным. |
MIXER_OBJECTF_WAVEIN | Параметр uMxId — это идентификатор устройства ввода waveform-audio в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией waveInGetNumDevs . |
MIXER_OBJECTF_WAVEOUT | Параметр uMxId — это идентификатор устройства вывода waveform-audio в диапазоне от нуля до единицы меньше числа устройств, возвращаемых функцией waveOutGetNumDevs . |
Возвращаемое значение
Возвращает MMSYSERR_NOERROR в случае успешного выполнения или ошибки в противном случае. Возможные значения ошибок:
Код возврата | Описание |
---|---|
|
Указанный ресурс уже выделен максимально возможным количеством клиентов. |
|
Параметр uMxId указывает недопустимый идентификатор устройства. |
|
Один или несколько флагов недопустимы. |
|
Параметр uMxId указывает недопустимый дескриптор. |
|
Один или несколько параметров недопустимы. |
|
Для объекта, указанного uMxId, устройство микшера недоступно. Обратите внимание, что расположение, на которое ссылается uMxId, также будет содержать значение –1. |
|
Не удается выделить ресурсы. |
Комментарии
Используйте функцию mixerGetNumDevs , чтобы определить количество устройств аудиомиксера, присутствующих в системе. Идентификатор устройства, указанный с помощью uMxId , варьируется от нуля до единицы меньше числа присутствующих устройств.
Если окно выбрано для получения сведений о обратном вызове, MM_MIXM_LINE_CHANGE и MM_MIXM_CONTROL_CHANGE сообщения отправляются в функцию процедуры окна, чтобы указать, когда изменяется состояние звуковой строки или элемента управления. Для обоих сообщений параметр wParam является дескриптором устройства микшера. Параметр lParam — это идентификатор строки для MM_MIXM_LINE_CHANGE или идентификатор элемента управления для MM_MIXM_CONTROL_CHANGE , изменивших состояние.
Чтобы запросить поддержку аудиомиксера или мультимедийное устройство, используйте функцию mixerGetID .
В 64-разрядных системах эта функция может не работать должным образом в ситуациях, когда вы передаете 64-разрядный указатель LPHWAVEOUT в параметр uMxId , так как параметр uMxId усекается до 32 бит.
Требования
Минимальная версия клиента | Windows 2000 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | mmeapi.h (включая Windows.h) |
Библиотека | Winmm.lib |
DLL | Winmm.dll |