Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / Core / CSharp / System / Windows / Media / safemediahandle.cs / 1 / safemediahandle.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All Rights Reserved. // // File: SafeMediaHandle.cs // //----------------------------------------------------------------------------- using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Collections; using System.Reflection; using MS.Internal; using MS.Win32; using System.Diagnostics; using System.Windows.Media; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using Microsoft.Win32.SafeHandles; using UnsafeNativeMethods=MS.Win32.PresentationCore.UnsafeNativeMethods; namespace System.Windows.Media { internal class SafeMediaHandle : SafeMILHandle { ////// internal SafeMediaHandle() { } ////// ////// Critical: calls SafeHandle.SetHandle which LinkDemands /// also takes arbitrary IntPtr as a handle /// [SecurityCritical] internal SafeMediaHandle(IntPtr handle) { SetHandle(handle); } ////// Critical - calls unmanaged code, not treat as safe because you must /// validate that handle is a valid COM object. /// [SecurityCritical] protected override bool ReleaseHandle() { HRESULT.Check(MILMedia.Shutdown(handle)); UnsafeNativeMethods.MILUnknown.ReleaseInterface(ref handle); return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved. //------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All Rights Reserved. // // File: SafeMediaHandle.cs // //----------------------------------------------------------------------------- using System; using System.IO; using System.Security; using System.Security.Permissions; using System.Collections; using System.Reflection; using MS.Internal; using MS.Win32; using System.Diagnostics; using System.Windows.Media; using System.Runtime.InteropServices; using System.Runtime.CompilerServices; using Microsoft.Win32.SafeHandles; using UnsafeNativeMethods=MS.Win32.PresentationCore.UnsafeNativeMethods; namespace System.Windows.Media { internal class SafeMediaHandle : SafeMILHandle { ////// internal SafeMediaHandle() { } ////// ////// Critical: calls SafeHandle.SetHandle which LinkDemands /// also takes arbitrary IntPtr as a handle /// [SecurityCritical] internal SafeMediaHandle(IntPtr handle) { SetHandle(handle); } ////// Critical - calls unmanaged code, not treat as safe because you must /// validate that handle is a valid COM object. /// [SecurityCritical] protected override bool ReleaseHandle() { HRESULT.Check(MILMedia.Shutdown(handle)); UnsafeNativeMethods.MILUnknown.ReleaseInterface(ref handle); return true; } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- ColumnResizeAdorner.cs
- ListBoxChrome.cs
- InvalidWMPVersionException.cs
- CompilerGlobalScopeAttribute.cs
- ArraySegment.cs
- IIS7WorkerRequest.cs
- TextAnchor.cs
- PropertyInformationCollection.cs
- ImageBrush.cs
- LinqDataSourceView.cs
- GlyphRun.cs
- WebPartRestoreVerb.cs
- DropShadowBitmapEffect.cs
- DeviceFilterDictionary.cs
- TransformBlockRequest.cs
- DriveNotFoundException.cs
- CatalogPartCollection.cs
- ProcessHost.cs
- StrokeNodeData.cs
- TypeValidationEventArgs.cs
- ObjectManager.cs
- ConvertEvent.cs
- LinqExpressionNormalizer.cs
- ParserStreamGeometryContext.cs
- ToolStripGrip.cs
- ImageSourceConverter.cs
- StylusButtonCollection.cs
- SqlVersion.cs
- ImageMetadata.cs
- SequenceDesignerAccessibleObject.cs
- Size3D.cs
- DataBoundControlActionList.cs
- XmlSequenceWriter.cs
- SmiEventStream.cs
- NameValueConfigurationCollection.cs
- WebPartConnectionsConfigureVerb.cs
- IdentifierService.cs
- ScriptComponentDescriptor.cs
- ObjectReferenceStack.cs
- BinHexEncoder.cs
- SimpleBitVector32.cs
- TextTreeInsertElementUndoUnit.cs
- XamlHttpHandlerFactory.cs
- UnmanagedMemoryStream.cs
- HasCopySemanticsAttribute.cs
- InfoCardSymmetricCrypto.cs
- TextEmbeddedObject.cs
- VirtualDirectoryMappingCollection.cs
- DataControlReference.cs
- MessageBox.cs
- XdrBuilder.cs
- CheckBoxDesigner.cs
- MemoryStream.cs
- DbParameterHelper.cs
- MetadataArtifactLoaderFile.cs
- RemotingAttributes.cs
- XmlQuerySequence.cs
- ConfigurationLocationCollection.cs
- SmtpFailedRecipientsException.cs
- FederatedMessageSecurityOverHttp.cs
- DesignerProperties.cs
- PointIndependentAnimationStorage.cs
- NamedPipeHostedTransportConfiguration.cs
- Gdiplus.cs
- XmlRootAttribute.cs
- TCEAdapterGenerator.cs
- DeferredReference.cs
- ApplicationFileCodeDomTreeGenerator.cs
- GZipObjectSerializer.cs
- ConfigurationManagerHelperFactory.cs
- FrameworkElement.cs
- ErrorHandler.cs
- PingReply.cs
- RegexRunnerFactory.cs
- Compress.cs
- ColorTransformHelper.cs
- ArrowControl.xaml.cs
- TextElementCollectionHelper.cs
- RegistrationContext.cs
- DataGridViewRowHeightInfoNeededEventArgs.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- RijndaelCryptoServiceProvider.cs
- XpsSerializationManager.cs
- XslCompiledTransform.cs
- NavigationPropertyEmitter.cs
- LinqTreeNodeEvaluator.cs
- URLAttribute.cs
- GenerateHelper.cs
- AnonymousIdentificationSection.cs
- ComPlusDiagnosticTraceSchemas.cs
- InputLangChangeRequestEvent.cs
- OptimizedTemplateContentHelper.cs
- SafeSecurityHelper.cs
- Accessible.cs
- EventBuilder.cs
- BezierSegment.cs
- TemplatedMailWebEventProvider.cs
- BidPrivateBase.cs
- SqlUdtInfo.cs
- HttpGetProtocolImporter.cs