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
- diagnosticsswitches.cs
- ActivityBuilder.cs
- ImageIndexEditor.cs
- ConfigXmlSignificantWhitespace.cs
- ByteStreamGeometryContext.cs
- NonBatchDirectoryCompiler.cs
- RC2CryptoServiceProvider.cs
- SecurityRuntime.cs
- OptimizedTemplateContent.cs
- LogWriteRestartAreaAsyncResult.cs
- Pair.cs
- LocalizationComments.cs
- TreeNodeCollection.cs
- ConnectionStringSettingsCollection.cs
- InvokeHandlers.cs
- UnmanagedMemoryStream.cs
- HttpResponseWrapper.cs
- WinInetCache.cs
- QueryOperator.cs
- AttributeAction.cs
- CharUnicodeInfo.cs
- EventLogTraceListener.cs
- SrgsText.cs
- EventSinkActivity.cs
- X509CertificateRecipientClientCredential.cs
- PriorityBinding.cs
- TypeUsageBuilder.cs
- ObjectManager.cs
- SelectedDatesCollection.cs
- ListDictionary.cs
- TraceContextRecord.cs
- WSHttpBindingBase.cs
- MdImport.cs
- Paragraph.cs
- AssociationTypeEmitter.cs
- DummyDataSource.cs
- MultiTargetingUtil.cs
- FontNamesConverter.cs
- DbProviderFactoriesConfigurationHandler.cs
- ProfileSection.cs
- StreamGeometryContext.cs
- _SslStream.cs
- BodyWriter.cs
- WinHttpWebProxyFinder.cs
- LinqDataSourceInsertEventArgs.cs
- ReverseQueryOperator.cs
- GeometryCombineModeValidation.cs
- MethodCallConverter.cs
- PeerName.cs
- ListViewCommandEventArgs.cs
- TreeViewCancelEvent.cs
- SchemaImporterExtension.cs
- PreviewControlDesigner.cs
- GacUtil.cs
- LogExtentCollection.cs
- XmlStreamNodeWriter.cs
- BulletedListEventArgs.cs
- IdleTimeoutMonitor.cs
- LinkTarget.cs
- KeyEvent.cs
- EarlyBoundInfo.cs
- BaseTemplateCodeDomTreeGenerator.cs
- TransformConverter.cs
- IDataContractSurrogate.cs
- HandlerBase.cs
- PseudoWebRequest.cs
- ObjectDataSource.cs
- WorkflowQueuingService.cs
- FixedTextBuilder.cs
- DataSetUtil.cs
- SelectionProcessor.cs
- DelimitedListTraceListener.cs
- WebPartEditorOkVerb.cs
- StorageMappingItemCollection.cs
- TreeIterator.cs
- DataTemplateSelector.cs
- DBCommandBuilder.cs
- TypeSystemProvider.cs
- DataGridViewRowsAddedEventArgs.cs
- CodeVariableDeclarationStatement.cs
- DrawingContextWalker.cs
- Rotation3D.cs
- RandomNumberGenerator.cs
- ConfigurationLockCollection.cs
- RadioButtonRenderer.cs
- TextSimpleMarkerProperties.cs
- DecoderBestFitFallback.cs
- NavigateUrlConverter.cs
- ParentUndoUnit.cs
- WebPartTransformerCollection.cs
- DataGridColumnCollection.cs
- DbMetaDataColumnNames.cs
- ProviderConnectionPointCollection.cs
- ServiceControllerDesigner.cs
- BigInt.cs
- LogEntrySerializationException.cs
- RenderOptions.cs
- DataGridViewColumnDesigner.cs
- DBConnectionString.cs
- _IPv4Address.cs