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

AcmFormatChooseHookProc

UINT ACMFORMATCHOOSEHOOKPROC acmFormatChooseHookProc( HWND hwnd, UINT uMsg, WPARAM wParam, LPARAM lParam );

Аргументы

  1. hwnd — дескриптор диалогового окна.

  2. uMsg — сообщение, посылаемое процедуре окна.

  3. wParam и lParam — аргументы сообщения.

Примечание

Функция acmFormatChooseHookProc представляет собой определённую пользователем функцию, используемую для связи с диалоговым окном, созданным функцией acmFormatChoose. Имя функции acmFormatChooseHookProc является условным и может быть заменено другим именем, не используемым другими функциями.

Если функция связи обрабатывает одно из сообщений WM_CTLCOLOR, данная функция должна возвращать дескриптор кисти, используемой для отрисовки фона элемента управления.

Для обработки выбора элементов управления диалогового окна данная функция может обрабатывать сообщение MM_ACM_FORMATCHOOSE.

Описание данной функции содержится в файле заголовка msacm.h.

AcmFormatEnum

MMRESULT acmFormatEnum( HACMDRIVER had, LPACMFORMATDETAILS pafd, ACMFORMATENUMCB fnCallback, DWORD dwInstance, DWORD fdwEnum );

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

В случае успешного завершения возвращает нулевое значение. В противном случае возвращает одно из следующих значений:

  • ACMERR_NOTPOSSIBLE — информация о формате не может быть получена.

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

  • MMSYSERR_INVALHANDLE — использован недопустимый дескриптор.

  • MMSYSERR_INVALPARAM — при вызове данной функции, по крайней мере, один из её аргументов имеет недопустимое значение.

Аргументы

  1. had — дескриптор драйвера ACM, для которого следует получить информацию об аудио формате. Если этот аргумент имеет нулевое значение, ACM передаёт информацию, касающуюся первого драйвера ACM, соответствующего выдвинутым требованиям.

  2. pafd — указатель на объект структуры ACMFORMATDETAILS, содержащий описание формата, передаваемого функции, определённой в аргументе fnCallback. Перед использованием данного объекта структуры в нём должны быть инициализированы переменные cbStruct, pwfx и cbwfx. Если установлен флаг WAVE_FORMAT_UNKNOWN или передаётся корректный тип формата, необходимо, также, инициализировать переменную dwFormatTag данного объекта структуры.

  3. fnCallback — указатель на экземпляр процедуры, определённой приложением в качестве функции обратного вызова.

  4. dwInstance — определяемая в приложении 32-разрядная величина, передаваемая в качестве аргумента функции обратного вызова вместе с информацией о формате ACM.

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

  • ACM_FORMATENUMF_CONVERT — объект структуры WAVEFORMATEX, на который указывает переменная pwfx объекта структуры ACMFORMATDETAILS, существует. При поиске просматриваются только те форматы, в которые допустимо преобразование из формата pwfx.

  • ACM_FORMATENUMF_HARDWARE — при поиске следует просматривать только форматы, являющиеся аппаратно поддерживаемыми форматами одного или нескольких установленных в системе аудио устройств. Совместно с данным флагом должен быть установлен, по крайней мере, один из флагов ACM_FORMATENUMF_INPUT или ACM_FORMATENUMF_OUTPUT. При одновременной установке флагов ACM_FORMATENUMF_INPUT и ACM_FORMATENUMF_OUTPUT при поиске просматриваются только форматы, которые могут быть использованы как для ввода, таки для вывода аудио информации. Это правило действует и в том случае, когда не установлен флаг ACM_FORMATENUMF_HARDWARE.

  • ACM_FORMATENUMF_INPUT — при поиске следует просматривать только те форматы, которые могут быть использованы для ввода (записи) аудио информации.

  • ACM_FORMATENUMF_NCHANNELS — переменная nChannels объекта структуры WAVEFORMATEX, на который указывает переменная pwfx объекта структуры ACMFORMATDETAILS, содержит корректное значение. При поиске следует просматривать только форматы, соответствующие значению данного параметра.

  • ACM_FORMATENUMF_NSAMPLESPERSEC — переменная nSamplesPerSec объекта структуры WAVEFORMATEX, на который указывает переменная pwfx объекта структуры ACMFORMATDETAILS, содержит корректное значение. При поиске следует просматривать только форматы, соответствующие значению данного параметра.

  • ACM_FORMATENUMF_OUTPUT — при поиске следует просматривать только те форматы, которые могут быть использованы для вывода (воспроизведения) аудио информации.

  • ACM_FORMATENUMF_SUGGEST — объект структуры WAVEFORMATEX, на который указывает переменная pwfx объекта структуры ACMFORMATDETAILS, существует. При поиске следует просматривать только те форматы, которые могут служить промежуточными форматами при преобразовании из формата pwfx. Этот механизм может быть использован вместо вызова функции acmFormatSuggest, позволяющего приложению выбрать наилучший из предложенных для преобразования форматов. После завершения работы функции переменная dwFormatIndex всегда будет иметь нулевое значение.

  • ACM_FORMATENUMF_WBITSPERSAMPLE — переменная wBitsPerSample объекта структуры WAVEFORMATEX, на который указывает переменная pwfx объекта структуры ACMFORMATDETAILS, содержит корректное значение. При поиске следует просматривать только форматы, соответствующие значению данного параметра.

  • ACM_FORMATENUMF_WFORMATTAG — переменная wFormatTag объекта структуры WAVEFORMATEX, на который указывает переменная pwfx объекта структуры ACMFORMATDETAILS, содержит корректное значение. При поиске следует просматривать только форматы, соответствующие значению данного параметра. Значение переменной dwFormatTag объекта структуры ACMFORMATDETAILS должно соответствовать значению переменной wFormatTag.

Примечание

Функция acmFormatEnum производит поиск аудио форматов указанного типа, используемых в драйвере ACM. Поиск завершается при просмотре всех форматов указанного типа или в том случае, когда функция обратного вызова возвращает значение FALSE.

Функция acmFormatEnum должна возвращать значение MMSYSERR_NOERROR (нулевое), если не может быть использован ни один из установленных драйверов ACM. Кроме того, в этом случае не должна вызываться функция обратного вызова.

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

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