Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- DataErrorValidationRule.cs
- SqlServer2KCompatibilityAnnotation.cs
- XmlBaseWriter.cs
- ProjectionCamera.cs
- ExpressionConverter.cs
- AssemblyBuilder.cs
- SinglePageViewer.cs
- InternalConfigSettingsFactory.cs
- ZipFileInfoCollection.cs
- DataKeyCollection.cs
- Rfc2898DeriveBytes.cs
- EntityDesignerUtils.cs
- EnvironmentPermission.cs
- Currency.cs
- StatusBarDrawItemEvent.cs
- CodeParameterDeclarationExpression.cs
- LifetimeServices.cs
- ResourceContainer.cs
- AsymmetricKeyExchangeFormatter.cs
- Transform3D.cs
- UInt16Storage.cs
- PerformanceCounterManager.cs
- PackageProperties.cs
- DragCompletedEventArgs.cs
- StatusStrip.cs
- ToolBarButtonDesigner.cs
- Compiler.cs
- SvcMapFileSerializer.cs
- SqlRemoveConstantOrderBy.cs
- WorkItem.cs
- NotSupportedException.cs
- StringCollection.cs
- DbConnectionPoolOptions.cs
- UInt64.cs
- CleanUpVirtualizedItemEventArgs.cs
- Scripts.cs
- xsdvalidator.cs
- StreamReader.cs
- WebPartTransformer.cs
- _BasicClient.cs
- CultureTableRecord.cs
- RemotingService.cs
- TokenBasedSetEnumerator.cs
- ListenerElementsCollection.cs
- UriScheme.cs
- SpnegoTokenProvider.cs
- WebPartsSection.cs
- FontInfo.cs
- DataReaderContainer.cs
- ObjectQuery_EntitySqlExtensions.cs
- FixedSOMGroup.cs
- OleDbTransaction.cs
- __TransparentProxy.cs
- SessionParameter.cs
- WaitHandle.cs
- BooleanFacetDescriptionElement.cs
- FillBehavior.cs
- ExpressionPrefixAttribute.cs
- AppDomainCompilerProxy.cs
- WindowsAuthenticationEventArgs.cs
- ZoneMembershipCondition.cs
- MILUtilities.cs
- SafePointer.cs
- TextOnlyOutput.cs
- UserControlBuildProvider.cs
- DataGridSortCommandEventArgs.cs
- SimpleTypeResolver.cs
- AlignmentYValidation.cs
- InvalidAsynchronousStateException.cs
- SystemEvents.cs
- ExtensionQuery.cs
- FunctionImportMapping.cs
- ExclusiveNamedPipeTransportManager.cs
- SchemaNotation.cs
- TCPClient.cs
- DbParameterCollection.cs
- DataServiceQuery.cs
- EntityDataSourceQueryBuilder.cs
- FlowPosition.cs
- PropertyValueUIItem.cs
- XdrBuilder.cs
- ControlValuePropertyAttribute.cs
- ToolBarTray.cs
- IndexerNameAttribute.cs
- PseudoWebRequest.cs
- ContentPropertyAttribute.cs
- TextDecorationUnitValidation.cs
- DataControlPagerLinkButton.cs
- MarkedHighlightComponent.cs
- BaseTemplateBuildProvider.cs
- MissingManifestResourceException.cs
- IRCollection.cs
- TextElement.cs
- TextUtf8RawTextWriter.cs
- ApplicationGesture.cs
- ControlCachePolicy.cs
- ToolStripHighContrastRenderer.cs
- TextServicesHost.cs
- CompoundFileReference.cs
- SBCSCodePageEncoding.cs