Программирование мультимедиа-систем - 53 стр.

UptoLike

Составители: 

- 53 -
нию блока данных. При использовании функции обратного вызова в пара-
метре
dwFlags следует установить флаг CALLBACK_FUNCTION.
При использовании функции обратного вызова могут возникнуть про-
блемы, связанные с имеющимися ограничениями на функционирование
подобных функций; поэтому с целью извещения приложения о возникно-
вении события заключается в посылке сообщений оконной функции. Для
этого параметр
dwCallback должен содержать идентификатор окна, а в па-
раметре
dwFlags необходимо установить флаг CALLBACK_WINDOW.
Параметр
dwCallbackInstance является идентификатором данных, пе-
редаваемым функции обратного вызова (этот параметр не используется
совместно с флагом
CALLBACK_WINDOW).
В поле
dwFlags можно указывать следующие флаги
Идентификатор флага Описание
WAVE_FORMAT_QUERY Функция waveOutOpen вызывается только с це-
лью проверки возможности использования фор-
мата звуковых данных, определенных в структу-
ре WAVEFPRMAT, адрес которой передается
через параметр lpFormat. Этим способом можно
проверить, способно ли данное устройство рабо-
тать с нестандартной частотой дискретизации
WAVE_ALLOWSYNC
Флаг необходимо использовать для открытия
синхронного устройства вывода, во время рабо-
ты которого все приложения блокируются
CALLBACK_WINDOW
Для извещения о наступлении событий исполь-
зуется окно, идентификатор которого передается
через параметр dwCallback
CALLBACK_FUNCTION
Для извещения о наступлении событий исполь-
зуется функция обратного вызова, адрес которой
передается через параметр dwCallback
При нормальном завершении функция waveOutOpen возвращает ну-
левое значение, в противном случае - описанный в нижележащей таблице
код ошибки
Код ошибки Описание ошибки
MMSYSERR_BADDEVICEID
Указан неправильный номер устройства вы-
вода
MMSYSERR_ALLOCATED
Это устройство уже открыто
MMSYSERR_NOMEM
Для выполнения операции недостаточно па-
мяти
WAVEERR_BADFORMAT
Указанный формат звуковых данных не под-
держивается драйвером устройства вывода
WAVEERR_SYNC
Была выполнена попытка открыть синхрон-
ное устройство вывода без использования
                                   - 53 -


нию блока данных. При использовании функции обратного вызова в пара-
метре dwFlags следует установить флаг CALLBACK_FUNCTION.
    При использовании функции обратного вызова могут возникнуть про-
блемы, связанные с имеющимися ограничениями на функционирование
подобных функций; поэтому с целью извещения приложения о возникно-
вении события заключается в посылке сообщений оконной функции. Для
этого параметр dwCallback должен содержать идентификатор окна, а в па-
раметре dwFlags необходимо установить флаг CALLBACK_WINDOW.
    Параметр dwCallbackInstance является идентификатором данных, пе-
редаваемым функции обратного вызова (этот параметр не используется
совместно с флагом CALLBACK_WINDOW).
    В поле dwFlags можно указывать следующие флаги

   Идентификатор флага                           Описание
WAVE_FORMAT_QUERY             Функция waveOutOpen вызывается только с це-
                              лью проверки возможности использования фор-
                              мата звуковых данных, определенных в структу-
                              ре WAVEFPRMAT, адрес которой передается
                              через параметр lpFormat. Этим способом можно
                              проверить, способно ли данное устройство рабо-
                              тать с нестандартной частотой дискретизации
WAVE_ALLOWSYNC                Флаг необходимо использовать для открытия
                              синхронного устройства вывода, во время рабо-
                              ты которого все приложения блокируются
CALLBACK_WINDOW               Для извещения о наступлении событий исполь-
                              зуется окно, идентификатор которого передается
                              через параметр dwCallback
CALLBACK_FUNCTION             Для извещения о наступлении событий исполь-
                              зуется функция обратного вызова, адрес которой
                              передается через параметр dwCallback

     При нормальном завершении функция waveOutOpen возвращает ну-
левое значение, в противном случае - описанный в нижележащей таблице
код ошибки

        Код ошибки                           Описание ошибки
MMSYSERR_BADDEVICEID            Указан неправильный номер устройства вы-
                                вода
MMSYSERR_ALLOCATED              Это устройство уже открыто
MMSYSERR_NOMEM                  Для выполнения операции недостаточно па-
                                мяти
WAVEERR_BADFORMAT               Указанный формат звуковых данных не под-
                                держивается драйвером устройства вывода
WAVEERR_SYNC                    Была выполнена попытка открыть синхрон-
                                ное устройство вывода без использования