Code:
/ FX-1434 / FX-1434 / 1.0 / untmp / whidbey / REDBITS / ndp / fx / src / Sys / System / Media / SystemSounds.cs / 1 / SystemSounds.cs
using System;
using System.ComponentModel;
using System.Diagnostics.CodeAnalysis;
using System.Runtime.InteropServices;
using System.Security.Permissions;
namespace System.Media {
///
[HostProtection(UI = true)]
public sealed class SystemSounds {
static SystemSound asterisk;
static SystemSound beep;
static SystemSound exclamation;
static SystemSound hand;
static SystemSound question;
private SystemSounds() {
}
///
public static SystemSound Asterisk {
get {
if (asterisk == null) {
asterisk = new SystemSound(NativeMethods.MB_ICONASTERISK);
}
return asterisk;
}
}
///
public static SystemSound Beep {
get {
if (beep == null) {
beep = new SystemSound(0);
}
return beep;
}
}
///
public static SystemSound Exclamation {
get {
if (exclamation == null) {
exclamation = new SystemSound(NativeMethods.MB_ICONEXCLAMATION);
}
return exclamation;
}
}
///
public static SystemSound Hand {
get {
if (hand == null) {
hand = new SystemSound(NativeMethods.MB_ICONHAND);
}
return hand;
}
}
///
public static SystemSound Question {
get {
if (question == null) {
question = new SystemSound(NativeMethods.MB_ICONQUESTION);
}
return question;
}
}
private class NativeMethods {
// Constructor added because of FxCop rules
private NativeMethods() {}
internal const int MB_ICONHAND = 0x000010,
MB_ICONQUESTION = 0x000020,
MB_ICONEXCLAMATION = 0x000030,
MB_ICONASTERISK = 0x000040;
}
}
///
[HostProtection(UI = true)]
public class SystemSound {
private int soundType;
internal SystemSound(int soundType) {
this.soundType = soundType;
}
///
[SuppressMessage("Microsoft.Security", "CA2106:SecureAsserts")]
public void Play() {
IntSecurity.UnmanagedCode.Assert();
try {
SafeNativeMethods.MessageBeep(soundType);
} finally {
System.Security.CodeAccessPermission.RevertAssert();
}
}
private class SafeNativeMethods {
// Constructor added because of FxCop rules
private SafeNativeMethods() {}
[DllImport(ExternDll.User32, ExactSpelling=true, CharSet=System.Runtime.InteropServices.CharSet.Auto)]
internal static extern bool MessageBeep(int type);
}
}
}
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- VisualStateChangedEventArgs.cs
- GridLength.cs
- CodeNamespace.cs
- TrackingProfileSerializer.cs
- AnonymousIdentificationSection.cs
- Token.cs
- ScriptingJsonSerializationSection.cs
- AttributeUsageAttribute.cs
- ClipboardData.cs
- ExcludePathInfo.cs
- LayoutTableCell.cs
- FastEncoderWindow.cs
- Underline.cs
- RequestCacheEntry.cs
- ToolStripSeparator.cs
- DoubleAnimation.cs
- Int32CollectionValueSerializer.cs
- DesignerSelectionListAdapter.cs
- FunctionDescription.cs
- Rule.cs
- EmptyControlCollection.cs
- XPathPatternParser.cs
- InvokePatternIdentifiers.cs
- ContextMenuAutomationPeer.cs
- ConfigXmlCDataSection.cs
- WindowPattern.cs
- Scene3D.cs
- Typeface.cs
- ValueType.cs
- ChannelManagerService.cs
- AnimatedTypeHelpers.cs
- IRCollection.cs
- RegistryPermission.cs
- NonClientArea.cs
- PrefixQName.cs
- DbConnectionPoolOptions.cs
- SoapDocumentMethodAttribute.cs
- Misc.cs
- HybridDictionary.cs
- ReadOnlyTernaryTree.cs
- Profiler.cs
- TextEmbeddedObject.cs
- GeometryCombineModeValidation.cs
- ObjectAnimationUsingKeyFrames.cs
- ComponentEditorPage.cs
- TransactionState.cs
- XamlFilter.cs
- StandardToolWindows.cs
- Console.cs
- KeyManager.cs
- CachedTypeface.cs
- InstanceValue.cs
- DataGridHeaderBorder.cs
- ResourceManager.cs
- CodeTypeDeclaration.cs
- Base64Stream.cs
- LinkButton.cs
- GC.cs
- Mouse.cs
- ColumnWidthChangedEvent.cs
- TextReader.cs
- ImageListUtils.cs
- ImageSourceValueSerializer.cs
- UnsignedPublishLicense.cs
- EDesignUtil.cs
- AccessedThroughPropertyAttribute.cs
- Visual3D.cs
- Environment.cs
- SpeechEvent.cs
- CallbackDebugElement.cs
- SafeWaitHandle.cs
- ToolStripContextMenu.cs
- RepeatBehaviorConverter.cs
- WindowsListViewItem.cs
- ModelTreeEnumerator.cs
- StylusCollection.cs
- StateChangeEvent.cs
- DiscriminatorMap.cs
- DSACryptoServiceProvider.cs
- DesignerVerb.cs
- TypeCacheManager.cs
- Point3DKeyFrameCollection.cs
- DefaultSettingsSection.cs
- CompressionTransform.cs
- XslCompiledTransform.cs
- BaseCodeDomTreeGenerator.cs
- RequestReplyCorrelator.cs
- DesignOnlyAttribute.cs
- ImageSource.cs
- CallbackTimeoutsBehavior.cs
- GridViewPageEventArgs.cs
- SchemaDeclBase.cs
- GridViewPageEventArgs.cs
- HandlerBase.cs
- PlacementWorkspace.cs
- AssemblyHash.cs
- SplitContainer.cs
- AttributeAction.cs
- TcpTransportElement.cs
- Helper.cs