Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Func.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
1.58 Mб
Скачать

WaveInOpen

MMRESULT waveInOpen( LPHWAVEIN phwi, UINT uDeviceID, LPWAVEFORMATEX pwfx, DWORD dwCallback, DWORD dwCallbackInstance, DWORD fdwOpen );

Возвращаемое значение

В случае успешного завершения работы возвращает значение MMSYSERR_NOERROR. В противном случае может возвращать следующие значения:

  • MMSYSERR_ALLOCATED — указанный ресурс уже распределён.

  • MMSYSERR_BADDEVICEID — указанный идентификатор устройства находится за пределами допустимого диапазона значений.

  • MMSYSERR_NODRIVER — отсутствуют драйверы устройств.

  • MMSYSERR_NOMEM — невозможно выделить или заблокировать память.

  • WAVERR_BADFORMAT — указанный аудио формат не поддерживается данным устройством.

Аргументы

  1. phwi — указатель на область памяти, в которую будет записан дескриптор открываемого аудио устройство. Этот дескриптор будет использоваться для идентификации аудио устройства при вызове функций. Если в аргументе fdwOpen установлен флаг WAVE_FORMAT_QUERY данный аргумент должен иметь нулевое значение.

  2. uDeviceID — идентификатор открываемого аудио устройства. В данном аргументе может передаваться как идентификатор устройства, так и дескриптор открытого аудио устройства ввода. В данном аргументе может указываться константа WAVE_MAPPER, указывающая на то, что функция сама выберет аудио устройство, способное записывать аудио информацию в указанном формате.

  3. pwfx — указатель на объект структуры WAVEFORMATEX, содержащей описание формата вводимой аудио информации. Этот объект структуры может быть уничтожен сразу после завершения работы функции waveInOpen.

  4. dwCallback — адрес функции обратного вызова, дескриптора события, дескриптора окна или идентификатор потока, используемых для обработки сообщений, посылаемых в процессе записи аудио информации. Если эти сообщения не нуждаются в обработке, то данный аргумент должен иметь нулевое значение. Формат функции обратного вызова должен соответствовать формату функции waveInProc.

  5. dwCallbackInstance — пользовательские данные, используемые в механизме обратного вызова. Этот аргумент не используется при обработке сообщений обратного вызова функцией окна.

  6. fdwOpen — флаги, определяющие режим открытия устройства. Определены следующие значения:

  • CALLBACK_EVENT — в аргументе dwCallback передаётся дескриптор события.

  • CALLBACK_FUNCTION — в аргументе dwCallback передаётся указатель на функцию обратного вызова.

  • CALLBACK_NULL — механизм обратного вызова не используется. Этот флаг установлен по умолчанию.

  • CALLBACK_THREAD — в аргументе dwCallback передаётся идентификатор потока.

  • CALLBACK_WINDOW — в аргументе dwCallback передаётся дескриптор окна.

  • WAVE_FORMAT_DIRECT — при вводе аудио информации не производится её преобразование драйвером ACM.

  • WAVE_FORMAT_QUERY — функция waveInOpen используется для проверки возможности работы с указанным аудио форматом. При этом никакое аудио устройство не открывается.

  • WAVE_MAPPED — аргумент uDeviceID определяет аудио устройство, выбираемое функцией.

Примечание

Функция waveInOpen открывает указанное аудио устройство для записи в него аудио информации.

Для определения числа установленных в системе аудио устройств, осуществляющих вывод информации, используется функция waveInGetNumDevs. Если в аргументе uDeviceID содержится идентификатор устройства, то он может иметь значение от нуля до величины, на единицу меньшей числа устройств ввода аудио информации, установленных в системе. В качестве идентификатора устройства может, также, использоваться константа WAVE_MAPPER.

Если в механизме обратного вызова используется функция окна или потока, то в процессе вывода аудио информации им посылаются сообщения MM_WIM_OPEN, MM_WIM_CLOSE и MM_WIM_DATA.

При использовании функции обратного в процессе вывода аудио информации ей посылаются сообщения WIM_OPEN, WIM_CLOSE и WIM_DATA.

Описание данной функции содержится в файле заголовка mmsystem.h. При работе с данной функцией следует включить в проект библиотеку winmm.lib.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]