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
- Root.cs
- RuntimeTrackingProfile.cs
- WindowProviderWrapper.cs
- DictionaryBase.cs
- SiteMapProvider.cs
- FontInfo.cs
- PeerNameResolver.cs
- TreeNodeClickEventArgs.cs
- ClusterUtils.cs
- JpegBitmapDecoder.cs
- AnonymousIdentificationSection.cs
- Char.cs
- Pair.cs
- PropertyItem.cs
- ForeignKeyFactory.cs
- SQLInt32.cs
- FontDialog.cs
- Regex.cs
- CacheRequest.cs
- DataTablePropertyDescriptor.cs
- FtpRequestCacheValidator.cs
- ValidatingReaderNodeData.cs
- MethodBuilderInstantiation.cs
- TextEditorParagraphs.cs
- KnownTypeHelper.cs
- AbstractSvcMapFileLoader.cs
- Vector3DValueSerializer.cs
- COAUTHINFO.cs
- XamlFrame.cs
- ExpanderAutomationPeer.cs
- StateBag.cs
- NullableLongSumAggregationOperator.cs
- CodeObjectCreateExpression.cs
- HtmlMobileTextWriter.cs
- SoapDocumentMethodAttribute.cs
- FixedSOMGroup.cs
- XPathDocument.cs
- TemplateControlCodeDomTreeGenerator.cs
- SynchronizationFilter.cs
- BitConverter.cs
- SearchExpression.cs
- HelpEvent.cs
- XslVisitor.cs
- MenuAdapter.cs
- Rectangle.cs
- BufferedReadStream.cs
- JsonWriterDelegator.cs
- KeyValuePairs.cs
- EntityDesignerUtils.cs
- OperationSelectorBehavior.cs
- Function.cs
- PriorityRange.cs
- SpeakInfo.cs
- Splitter.cs
- RadioButtonAutomationPeer.cs
- ProxyElement.cs
- CaseInsensitiveOrdinalStringComparer.cs
- ServerIdentity.cs
- XmlWrappingReader.cs
- EncoderFallback.cs
- ServiceDescriptionImporter.cs
- ObjectItemAssemblyLoader.cs
- RadioButtonPopupAdapter.cs
- LayoutInformation.cs
- FigureHelper.cs
- PreProcessor.cs
- ExpressionBuilder.cs
- FragmentQueryProcessor.cs
- EntityViewGenerator.cs
- ImplicitInputBrush.cs
- HierarchicalDataBoundControl.cs
- HttpCacheVaryByContentEncodings.cs
- TextTreeInsertUndoUnit.cs
- CodeDOMProvider.cs
- ProxyAttribute.cs
- Merger.cs
- basecomparevalidator.cs
- SslStream.cs
- SearchForVirtualItemEventArgs.cs
- FileStream.cs
- WebPartVerbCollection.cs
- SiteMapNode.cs
- Descriptor.cs
- TransformConverter.cs
- RandomNumberGenerator.cs
- KnownBoxes.cs
- ResourceAttributes.cs
- PreloadedPackages.cs
- GridViewColumnCollectionChangedEventArgs.cs
- SqlDependency.cs
- EdmError.cs
- Schema.cs
- GetTokenRequest.cs
- DataObjectEventArgs.cs
- XMLDiffLoader.cs
- InvokeWebService.cs
- SqlUtil.cs
- TreeNode.cs
- UpdateCommandGenerator.cs
- SchemaImporter.cs