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

Приложение Глобальные функции acmDriverAdd

MMRESULT acmDriverAdd( LPHACMDRIVERID phadid, HINSTANCE hinstModule, LPARAM lParam, DWORD dwPriority, DWORD fdwAdd );

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

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

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

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

  • MMSYSERR_NOMEM — система не в состоянии разместить в памяти требуемые ресурсы.

Аргументы

  1. phadid — указатель на переменную, в которую будет помещён дескриптор устанавливаемого драйвера. Этот дескриптор используется для идентификации драйвера в функциях ACM.

  2. hinstModule — дескриптор экземпляра модуля, чей исполнительный файл или библиотека динамической компоновки (DLL) соäержит функцию обращения к данному драйверу.

  3. lParam — в зависимости от флагов, установленных в перемененной fdwAdd, в данном аргументе содержится указатель на функцию драйвера или дескриптор окна, которому посылается сообщение.

  4. dwPriority —сообщение, посылаемое окнам для извещения. Этот аргумент используется только в том случае, если установлен флаг ACM_DRIVERADDF_NOTIFYHWND. Все остальные флаги требуют, чтобы этот аргумент имел нулевое значение.

  5. fdwAdd — флаги включения драйвера ACM. Определены следующие флаги:

  • ACM_DRIVERADDF_FUNCTION — в аргументе lParam содержится указатель на функцию драйвера, имеющую формат функции acmDriverProc. Эта функция должна располагаться в исполняемом файле или в файле библиотеки динамической компоновки (DLL).

  • ACM_DRIVERADDF_GLOBAL — обеспечивает совместимость с 16-разрядными приложениями. При использовании Win32 API драйвер ACM, подключённый с использованием функции acmDriverAdd, может использоваться только тем приложением, которое его подключило. При этом состояние флага ACM_DRIVERADDF_GLOBAL игнорируется.

  • ACM_DRIVERADDF_LOCAL — ACM автоматически устанавливает для локального драйвера более высокий приоритет, чем для глобального драйвера, при их поиске.

  • ACM_DRIVERADDF_NOTIFYHWND — в аргументе lParam содержится дескриптор окна, которому будет послано сообщение при изменении приоритета и состояния глобального драйвера. Сообщение, которое будет получено окном, определяется приложением и должно передаваться в аргументе dwPriority. Аргументы wParam и lParam данного сообщения зарезервированы для дальнейшего использования и их значения должны игнорироваться. Этот флаг несовместим с флагом ACM_DRIVERADDF_GLOBAL.

Примечание

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

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

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