class classWavPlay
{
//[DllImport("WinMM.dll")]
[DllImport("winmm.dll", EntryPoint="PlaySound",CharSet=CharSet.Auto)]
//public static extern bool PlaySound(byte[] wfname, int fuSound);
private static extern int PlaySound(String pszSound, int hmod, int falgs);
// flag values for SoundFlags argument on PlaySound
public int SND_SYNC = 0x0000; // play synchronously
// (default)
public int SND_ASYNC = 0x0001; // play asynchronously
public int SND_NODEFAULT = 0x0002; // silence (!default)
// if sound not found
public int SND_MEMORY = 0x0004; // pszSound points to
// a memory file
public int SND_LOOP = 0x0008; // loop the sound until
// next sndPlaySound
public int SND_NOSTOP = 0x0010; // don't stop any
// currently playing
// sound
public int SND_NOWAIT = 0x00002000; // don't wait if the
// driver is busy
public int SND_ALIAS = 0x00010000; // name is a Registry
// alias
public int SND_ALIAS_ID = 0x00110000; // alias is a predefined
// ID
public int SND_FILENAME = 0x00020000; // name is file name
public int SND_RESOURCE = 0x00040004; // name is resource name
// or atom
public int SND_PURGE = 0x0040; // purge non-static
// events for task
public int SND_APPLICATION = 0x0080; // look for application-
// specific association
//-----------------------------------------------------------------
public void Play(string wfname, int SoundFlags)
{
if (File.Exists(wfname))
{
PlaySound(wfname, 0, (int)(SND_ASYNC | SND_FILENAME | SND_NOWAIT));
}
else
{
PlaySound(null, 0,(int)(SND_ASYNC | SND_FILENAME | SND_NOWAIT ));
}
//byte[] bname = new Byte[256]; //Max path length
//bname = System.Text.Encoding.ASCII.GetBytes(wfname);
//PlaySound(bname, SoundFlags);
}
public void StopPlay()
{
PlaySound(null, 0, SND_PURGE);
}
public static void PlaySoundEvent(string pszSound)
{
//PlaySound(pszSound,0,(int)(SND_ASYNC | SND_ALIAS | SND_NOWAIT));
}
//End WAVSounds class
}