Операционные системы. Учебное пособие. Марапулец Ю.В. - 227 стр.

UptoLike

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

DWORD dwFlags ); // опции воспроизведения
Функция интерпретирует первый параметр в соответствии с установленными фла-
гами.
SND_ALIAS - Воспроизводит звук, заданный в системном реестре. Первый параметр
представляет собой псевдоним, записанный в реестре, например SystemAsterisk или Sys-
temHand.
SND_FILENAME - Воспроизводит звук, записанный в WAV-файле, по аналогии с
функцией sndPlaySound(). Первый параметр указывает имя файла.
SND_RESOURCE - Воспроизводит звук, содержащийся в программном ресурсе. Пер-
вый параметр представляет собой идентификатор ресурса, который возвращается мак-
рокомандой MAKEINTRESOURCE.
Эти три флага являются взаимоисключающими. Кроме них функция PlaySound()
распознает некоторые флаги, определенные для sndPlaySound(), например
SND_NODEFAULT и SND_ASYNC. Флаг SND_MEMORY она не распознает.
Если в составе параметра dwFlags отсутствует флаг SND_RESOURCE, второй па-
раметр, hModule, игнорируется. В противном случае параметр hModule идентифицирует
программу, ресурсы которой включают звукозапись, указанную аргументом lpszSound-
Name. Данный дескриптор может быть получен с помощью функции GetModuleHandle(),
LoadLibrary() или GetWindowLong().
В Windows не определено ключевое слово WAVE, которое могло бы использовать-
ся в файлах ресурсов по аналогии с ключевыми словами ICON и BITMAP, но вы всегда
можете самостоятельно определить собственный тип ресурса [12].
<имя ресурса> WAVE <имя файла> // добавить звукозапись к ресурсам программы
Параметр <имя ресурса> представляет собой имя, используемое для нового ресур-
са, а параметр <имя файла> указывает на WAV-файл. Функция PlaySound() всегда
ищет ресурсы, тип которых определен как WAVE.
Функции PlaySound(), MessageBeep() и sndPlaySound() просты в использовании, но
им присущ ряд ограничений. Чтобы задавать точку начала воспроизведения, записывать
и микшировать звуки, изменять уровень громкости, нужны дополнительные команды.
Основным средством мультимедийного программирования является MCI - интерфейс,
который описан ниже.
MCI-операции организованы в виде командных сообщений, которые передаются
устройствам. В общем случае операция начинается с открытия устройства; затем посы-
лается команда, например MCI_PLAY или MCI_STOP, которая заставляет устройство
начать воспроизведение, остановиться, начать запись, "перемотку" и т.д. Наконец, про-
исходит закрытие устройства.
Самой важной и многоцелевой среди MCI-функций является функция mciSend-
Command(). Она служит для передачи устройству одного из многочисленных сигналов.
MCIERROR mciSendCommand( MCIDEVICEID mciDeviceID,
// идентификатор устройства
HINT uMessage, // номер сообщения
DWORD dwFlags, // флаги DWORD
dwParamBlock ); // информационная структура
Первый параметр mciDeviceID, представляет собой адрес конкретного устройст-
ва. При открытии устройства команда mciSendCommand возвращает его идентификатор,
229
             DWORD dwFlags );                 // опции воспроизведения

     Функция интерпретирует первый параметр в соответствии с установленными фла-
гами.
SND_ALIAS - Воспроизводит звук, заданный в системном реестре. Первый параметр
представляет собой псевдоним, записанный в реестре, например SystemAsterisk или Sys-
temHand.
SND_FILENAME - Воспроизводит звук, записанный в WAV-файле, по аналогии с
функцией sndPlaySound(). Первый параметр указывает имя файла.
SND_RESOURCE - Воспроизводит звук, содержащийся в программном ресурсе. Пер-
вый параметр представляет собой идентификатор ресурса, который возвращается мак-
рокомандой MAKEINTRESOURCE.
      Эти три флага являются взаимоисключающими. Кроме них функция PlaySound()
распознает некоторые флаги, определенные для sndPlaySound(), например
SND_NODEFAULT и SND_ASYNC. Флаг SND_MEMORY она не распознает.
      Если в составе параметра dwFlags отсутствует флаг SND_RESOURCE, второй па-
раметр, hModule, игнорируется. В противном случае параметр hModule идентифицирует
программу, ресурсы которой включают звукозапись, указанную аргументом lpszSound-
Name. Данный дескриптор может быть получен с помощью функции GetModuleHandle(),
LoadLibrary() или GetWindowLong().
      В Windows не определено ключевое слово WAVE, которое могло бы использовать-
ся в файлах ресурсов по аналогии с ключевыми словами ICON и BITMAP, но вы всегда
можете самостоятельно определить собственный тип ресурса [12].

<имя ресурса> WAVE <имя файла> // добавить звукозапись к ресурсам программы

      Параметр <имя ресурса> представляет собой имя, используемое для нового ресур-
са, а параметр <имя файла> указывает на WAV-файл. Функция PlaySound() всегда
ищет ресурсы, тип которых определен как WAVE.
      Функции PlaySound(), MessageBeep() и sndPlaySound() просты в использовании, но
им присущ ряд ограничений. Чтобы задавать точку начала воспроизведения, записывать
и микшировать звуки, изменять уровень громкости, нужны дополнительные команды.
Основным средством мультимедийного программирования является MCI - интерфейс,
который описан ниже.
      MCI-операции организованы в виде командных сообщений, которые передаются
устройствам. В общем случае операция начинается с открытия устройства; затем посы-
лается команда, например MCI_PLAY или MCI_STOP, которая заставляет устройство
начать воспроизведение, остановиться, начать запись, "перемотку" и т.д. Наконец, про-
исходит закрытие устройства.
      Самой важной и многоцелевой среди MCI-функций является функция mciSend-
Command(). Она служит для передачи устройству одного из многочисленных сигналов.

MCIERROR mciSendCommand( MCIDEVICEID mciDeviceID,
                                           // идентификатор устройства
                  HINT uMessage,           // номер сообщения
                  DWORD dwFlags,           // флаги DWORD
                  dwParamBlock );          // информационная структура

     Первый параметр mciDeviceID, представляет собой адрес конкретного устройст-
ва. При открытии устройства команда mciSendCommand возвращает его идентификатор,



                                        229