Windows Mobile 6.5
A version of this page is also available for

This function plays a single waveform sound. To play multiple sounds simultaneously, use the waveOut* functions in the Waveform Audio API.

BOOL sndPlaySound(
  LPCTSTR lpszSoundName,
  UINT fuSound


Long pointer to a null-terminated string that specifies the sound to play. This parameter can be either an entry in the registry or in WIN.INI that identifies a system sound, or it can be the name of a waveform-audio file. (If the function does not find the entry, the parameter is treated as a file name.) If this parameter is NULL, any currently playing sound is stopped.


Flags for playing the sound. The following table shows the possible values.

Value Description


The pszSound parameter is a system-event alias in the registry or the WIN.INI file. Do not use with either SND_FILENAME or SND_RESOURCE.


The sound is played asynchronously and PlaySound returns immediately after beginning the sound. To terminate an asynchronously played waveform sound, call PlaySound with pszSound set to NULL.


The pszSound parameter is a file name.


The sound plays repeatedly until PlaySound is called again with the pszSound parameter set to NULL. You must also specify the SND_ASYNC flag to indicate an asynchronous sound event.


A sound event's file is loaded in RAM. The parameter specified by pszSound must point to an image of a sound in memory.


No default sound event is used. If the sound cannot be found, PlaySound returns silently without playing the default sound.


The specified sound event will yield to another sound event that is already playing. If a sound cannot be played because the resource needed to generate that sound is busy playing another sound, the function immediately returns FALSE without playing the requested sound.

If this flag is not specified, PlaySound attempts to stop the currently playing sound so that the device can be used to play the new sound.


Synchronous playback of a sound event. PlaySound returns after the sound event completes.

TRUE indicates success. FALSE indicates failure.

The SND_NOSTOP flag controls how the current call to sndPlaySound behaves if a previous call is still playing.

If the specified sound cannot be found, sndPlaySound plays the system default sound. If there is no system default entry in the registry or WIN.INI file, or if the default sound cannot be found, the function makes no sound and returns FALSE.

The specified sound must fit in available physical memory and be playable by an installed waveform-audio device driver.

Windows Embedded CEWindows CE 2.0 and later
Windows MobileWindows Mobile Version 5.0 and later