Use Flags and Constants
The uFlags argument in sndPlaySound is an example of another common C convention: you can often specify options using a long integer comprised of bit flags
. I discussed those back in Chapter 3, but they haven’t been much use up till now. Bit flags are numeric constants that can be combined into a single number. The following code demonstrates using bit flags to play a sound over and over again:
Public Declare Function sndPlaySound Lib "winmm.dll" Alias _
"sndPlaySoundA" (ByVal lpszSoundName As String, ByVal uFlags As Long) _
As Long
Public Const SND_ASYNC = &H1 ' play asynchronously
Public Const SND_LOOP = &H8 ' loop the sound until next sndPlaySound
Public Const SND_SYNC = &H0 ' play synchronously (default)
Sub BeginBouncing( )
sndPlaySound "boing", SND_ASYNC Or SND_LOOP
End Sub
Sub StopBouncing( )
sndPlaySound "boing", SND_SYNC
End SubI included StopBouncing because listening to boing.wav over and over again gets really annoying. You can find constants for each function by searching for the function by name at http://msdn.microsoft.com, then you can find the corresponding values for those constants using the API Viewer or by searching WIN32API.TXT.
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access