358______________________________________________Глава 5

SND_NOSTOP Если заданный звук не может быть воспроизведен, поскольку
ресурсы, необходимые для воспроизведения, заняты воспроиз-
ведением другого звука, функция PlaySound немедленно вер-
нет false, не воспроизводя заданного звука. Если данный флаг
не указан, функция PlaySound пытается остановить воспроиз-
ведение другого звука, чтобы устройство могло быть использо-
вано для воспроизведения нового звука

SND_NOWAIT Если драйвер занят, функция сразу вернется без воспроизве-
дения заданного звука

SND_PURGE   Останавливается воспроизведение любых звуков, вызванных в
данной задаче. Если pszSound не 0, останавливаются все эк-
земпляры указанного звука. Если pszSound равен 0, то оста-
навливаются все звуки, связанные с данной задачей

SND_SYNC    Синхронное воспроизведение звука события. Функция PlaySo-
und возвращается только после окончания воспроизведения

Флаги могут комбинироваться операцией or.

Звук, указанный параметром pszSound, должен помещаться в доступную па-
мять и должен подходить для установленного драйвера устройства воспроизведе-
ния волновых файлов. Функция PlaySound ищет файл звука в следующих катало-
гах: текущем, каталоге Windows, системном каталоге Windows, каталогах, пере-
численных в переменной среды PATH, в списке каталогов, предоставляемых сетью.
Если указанный звук не находится, функция PlaySound воспроизводит системный
звук по умолчанию. Если функция не может найти и его, то воспроизведения не
будет, а вернется значение false.

Приведем примеры использования функции PlaySound.

Оператор

PlaySound("С:\\Windows\\Media\\3ByK Microsoft.wav",О,SND_ASYNC) ;

воспроизводит асинхронно и однократно стандартный звук Microsoft, который вы
обычно можете слышать при открытии Windows. В процессе воспроизведения про-
должается выполнение приложения.

Чтобы опробовать функцию PlaySound, введите в свое приложение диалог
OpenDialog и кнопку со следующим обработчиком щелчка:

if (OpenDialogl->Execute())

PlaySound(OpenDialogl->FileName.c_str(),0,SND_ASYNC) ;

Запустите приложение, выберите файл какой-нибудь приятной музыки и ра-
ботайте со своим приложением, наслаждаясь попутно выбранной мелодией.

В предыдущих примерах звук задавался именем его волнового файла. Функ-
ция PlaySound позволяет воспроизводить и системные звуки, просто называя их
псевдонимы. Например, оператор

PlaySound("SystemStart",О,SND_ASYNC) ;

воспроизведет тот же звук открытия Windows, что и приведенный ранее оператор,
указывавший имя и путь к нему.
Оператор

PlaySound("С:\\Windows\\Media\\3ByK Microsoft.wav". О,
SND_ASYNC I SND_LOOP);

многократно асинхронно воспроизводит стандартный звук Microsoft, начиная его
снова и снова, как только он заканчивается. Если вы ввели в свое приложение по-
добный оператор (пусть даже и с очень приятной музыкой), вам надо предусмот-