@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: Plays a sound For playing files: !!!!C# Signature: [DllImport("winmm.dll", SetLastError = true)] public static extern int PlaySound( string szSound, IntPtr hModule, int flags); !!!!VB Signature: <DllImport("winmm.dll", SetLastError = True)> _ Public Shared Function PlaySound( _ ByVal szSound As String, _ ByVal hModule As IntPtr, _ ByVal flags As Integer) As Integer End Function For playing streams/bytearrays: !!!!C# Signature: [DllImport("winmm.dll", SetLastError = true)] public static extern int PlaySound( byte[] szSound, IntPtr hModule, int flags); !!!!VB Signature: <DllImport("winmm.dll", SetLastError = True)> _ Public Shared Function PlaySound( _ ByVal szSound() As Byte, _ ByVal hModule As IntPtr, _ ByVal flags As Integer) As Integer End Function (correct function is in coredll) Private Declare Function PlaySound Lib "coredll" Alias "PlaySoundW" (ByVal szSound As String, ByVal hModule As IntPtr, ByVal flags As PlaySoundFlags) As Boolean Private Declare Function PlaySound Lib "coredll" (ByVal szSound As Byte(), ByVal hModule As IntPtr, ByVal flags As PlaySoundFlags) As Boolean !!!!VB PlaySoundFlags Enumeration: Private Enum PlaySoundFlags As UInt32 SND_SYNC = &H0 ' play synchronously (default) SND_ASYNC = &H1 ' play asynchronously SND_NODEFAULT = &H2 ' silence (!default) if sound not found SND_MEMORY = &H4 ' pszSound points to a memory file SND_LOOP = &H8 ' loop the sound until next sndPlaySound SND_NOSTOP = &H10 ' don't stop any currently playing sound SND_NOWAIT = &H2000 ' don't wait if the driver is busy SND_ALIAS = &H10000 ' name is a registry alias SND_ALIAS_ID = &H110000 ' alias is a predefined ID SND_FILENAME = &H20000 ' name is file name SND_RESOURCE = &H40004 ' name is resource name or atom End Enum !!!!C# PlaySoundFlags Enumeration: public enum PlaySoundFlags : uint { SND_SYNC = 0x0, // play synchronously (default) SND_ASYNC = 0x1, // play asynchronously SND_NODEFAULT = 0x2, // silence (!default) if sound not found SND_MEMORY = 0x4, // pszSound points to a memory file SND_LOOP = 0x8, // loop the sound until next sndPlaySound SND_NOSTOP = 0x10, // don't stop any currently playing sound SND_NOWAIT = 0x2000, // don't wait if the driver is busy SND_ALIAS = 0x10000, // name is a registry alias SND_ALIAS_ID = 0x110000, // alias is a predefined ID SND_FILENAME = 0x20000, // name is file name SND_RESOURCE = 0x40004, // name is resource name or atom }; !!!!Notes: Returns True (e.g. 1) for success and False (0) for error. If the function returns True but there is no sound, check Settings / Sounds & Notifications / Enable sounds for / Programs / Notifications on your PDA !!!!Tips & Tricks: Please add some! !!!!C# Sample Code using System; using System.ComponentModel; using System.Runtime.InteropServices; using System.Windows.Forms; namespace Sound { public enum PlaySoundFlags : int { SND_SYNC = 0x0, // play synchronously (default) SND_ASYNC = 0x1, // play asynchronously SND_NODEFAULT = 0x2, // silence (!default) if sound not found SND_MEMORY = 0x4, // pszSound points to a memory file SND_LOOP = 0x8, // loop the sound until next sndPlaySound SND_NOSTOP = 0x10, // don't stop any currently playing sound SND_NOWAIT = 0x2000, // don't wait if the driver is busy SND_ALIAS = 0x10000, // name is a registry alias SND_ALIAS_ID = 0x110000,// alias is a predefined ID SND_FILENAME = 0x20000, // name is file name SND_RESOURCE = 0x40004, // name is resource name or atom }; public class Sound { [DllImport("winmm.dll", SetLastError = true)] public static extern int PlaySound( string szSound, IntPtr hModule, int flags); public static void Beep() { Play(@"\Windows\Voicbeep"); } public static void Play(string fileName) { try { PlaySound(fileName, IntPtr.Zero, (PlaySoundFlags.SND_FILENAME | PlaySoundFlags.SND_SYNC)); } catch (Exception ex) { MessageBox.Show("Can't play sound file. " + ex.ToString()); } } } } !!!!VB Sample Code Imports System Imports System.Diagnostics Imports System.IO Imports System.Runtime.InteropServices Public Class Sounds <Flags()> _ Private Enum PlaySoundFlags SND_SYNC = &H0 ' play synchronously (default) SND_ASYNC = &H1 ' play asynchronously SND_NODEFAULT = &H2 ' silence (!default) if sound not found SND_MEMORY = &H4 ' pszSound points to a memory file SND_LOOP = &H8 ' loop the sound until next sndPlaySound SND_NOSTOP = &H10 ' don't stop any currently playing sound SND_NOWAIT = &H2000 ' don't wait if the driver is busy SND_ALIAS = &H10000 ' name is a registry alias SND_ALIAS_ID = &H110000 ' alias is a predefined ID SND_FILENAME = &H20000 ' name is file name SND_RESOURCE = &H40004 ' name is resource name or atom End Enum <DllImport("winmm.dll", SetLastError = True)> _ Public Shared Function PlaySound( _ ByVal szSound As String, _ ByVal hModule As IntPtr, _ ByVal flags As Integer) As Integer End Function Public Shared Sub Play(ByVal fileName As String) Try PlaySound(fileName, IntPtr.Zero, PlaySoundFlags.SND_FILENAME Or _ PlaySoundFlags.SND_SYNC) Catch ex As Exception MessageBox.Show("Can't play sound file. " & ex.ToString) End Try End Sub End Class !!!!Alternative Managed API: None. Documentation: PlaySound@msdn on MSDN
Edit coredll.PlaySound
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.