Riprodurre suoni di sistema con P/Invoke in Silverlight 5

di Alessio Leoncini, in Silverlight 5.0,

In Silverlight 5 è possibile eseguire codice nativo (API Win32) attraverso la funzionalità nota come P/Invoke. Il suo utilizzo si basa sull'attributo DllImport, di System.Runtime.InteropServices, che permette di specificare la DLL di codice nativo.

Nell'esempio andiamo ad utilizzare la User32.dll la cui funzione MessageBeep ci permette di riprodurre i comuni suoni informativi, definiti a livello di sistema operativo, quindi personalizzati anche dall'utente.

[DllImport("User32.dll")]
private static extern Boolean MessageBeep(UInt32 beepType);

private void ICONINFORMATION_Click(object sender, RoutedEventArgs e)
{
    uint t = Convert.ToUInt32("0x00000040", 16); //ICONINFORMATION
    MessageBeep(t);
}

private void ICONWARNING_Click(object sender, RoutedEventArgs e)
{
    uint t = Convert.ToUInt32("0x00000030", 16); //ICONWARNING
    MessageBeep(t);
}

Come possiamo vedere nello snippet precedente, la funzione MessageBeep accetta un UInt32 come parametro, che corrisponde ad uno dei suoni di sistema: "0x00000030" per il warning, "0x00000010" per lo stop, ecc..

Tutti i dettagli di MessageBeep e degli altri suoi si possono trovare all'indirizzo
http://msdn.microsoft.com/en-us/library/ms680356%28v=vs.85%29.aspx .

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi