Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / Imaging / UnknownBitmapDecoder.cs / 1 / UnknownBitmapDecoder.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation, All Rights Reserved // // File: UnknownBitmapDecoder.cs // //----------------------------------------------------------------------------- using System; using System.IO; using System.Collections; using System.Security; using System.Security.Permissions; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using Microsoft.Win32.SafeHandles; using MS.Internal; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Runtime.InteropServices; namespace System.Windows.Media.Imaging { #region UnknownBitmapDecoder ////// The built-in Microsoft Unknown (Bitmap) Decoder. /// internal sealed class UnknownBitmapDecoder : BitmapDecoder { ////// This class is to allow us to call CoInitialize when the UnknownBitmapDecoder /// is created, so that the unmanaged dll does not get unload until we are. /// private class CoInitSafeHandle : SafeMILHandle { ////// Critical - accesses critical code. /// TreatAsSafe - No inputs, does not touch any critical data with external input. /// [SecurityCritical, SecurityTreatAsSafe] public CoInitSafeHandle() { MS.Win32.PresentationCore.UnsafeNativeMethods.WICCodec.CoInitialize(IntPtr.Zero); } ////// Critical - accesses critical code. /// TreatAsSafe - No inputs, does not touch any critical data with external input. /// [SecurityCritical, SecurityTreatAsSafe] protected override bool ReleaseHandle() { MS.Win32.PresentationCore.UnsafeNativeMethods.WICCodec.CoUninitialize(); return true; } } ////// Don't allow construction of a decoder with no params /// private UnknownBitmapDecoder() { } ////// Internal Constructor /// internal UnknownBitmapDecoder( SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, bool insertInDecoderCache, bool originalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle ) : base(decoderHandle, decoder, baseUri, uri, stream, createOptions, cacheOption, insertInDecoderCache, originalWritable, uriStream, unmanagedMemoryStream, safeFilehandle) { } #region Internal Abstract /// Need to implement this to derive from the "sealed" object internal override void SealObject() { throw new NotImplementedException(); } #endregion ////// Store a safe handle to take care of calling CoInitialize /// and CoUninitialize for us when the object is created/disposed. /// private CoInitSafeHandle _safeHandle = new CoInitSafeHandle(); } #endregion } // 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
- KeyValuePairs.cs
- TextTreeDeleteContentUndoUnit.cs
- Transform3DGroup.cs
- ParserHooks.cs
- TwoPhaseCommit.cs
- CreatingCookieEventArgs.cs
- ExtensibleClassFactory.cs
- AuthenticationServiceManager.cs
- PostBackOptions.cs
- ParseChildrenAsPropertiesAttribute.cs
- TreeViewDesigner.cs
- CommonProperties.cs
- IPEndPointCollection.cs
- Substitution.cs
- CodeLabeledStatement.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- Roles.cs
- ContextBase.cs
- TreeViewBindingsEditor.cs
- ValueTypeFieldReference.cs
- TdsParserHelperClasses.cs
- ElasticEase.cs
- Itemizer.cs
- FileDialog_Vista.cs
- MetafileHeaderWmf.cs
- CompoundFileDeflateTransform.cs
- CalendarDesigner.cs
- AttachedPropertyMethodSelector.cs
- PropertyValueUIItem.cs
- Serializer.cs
- SplashScreen.cs
- XmlSerializationReader.cs
- StyleSelector.cs
- SettingsSavedEventArgs.cs
- DependencyPropertyValueSerializer.cs
- IntSecurity.cs
- Accessible.cs
- ISessionStateStore.cs
- ModuleBuilder.cs
- StringExpressionSet.cs
- LocalizableAttribute.cs
- DrawingCollection.cs
- TextDecorationUnitValidation.cs
- TypeDescriptionProvider.cs
- UriExt.cs
- ISAPIWorkerRequest.cs
- FacetValues.cs
- DefaultClaimSet.cs
- ContainerUtilities.cs
- GenericWebPart.cs
- XmlSchemaIdentityConstraint.cs
- WebDescriptionAttribute.cs
- EntitySqlException.cs
- GifBitmapDecoder.cs
- ImageKeyConverter.cs
- DirectoryInfo.cs
- EmptyCollection.cs
- ProfileGroupSettings.cs
- Point3DCollection.cs
- ExternalException.cs
- IisHelper.cs
- RelatedPropertyManager.cs
- DbConnectionInternal.cs
- SqlClientWrapperSmiStream.cs
- EntityTypeBase.cs
- ArgumentNullException.cs
- PageAsyncTaskManager.cs
- SequentialOutput.cs
- CellConstant.cs
- GridViewCellAutomationPeer.cs
- filewebresponse.cs
- Item.cs
- StateFinalizationActivity.cs
- DriveNotFoundException.cs
- Solver.cs
- PhysicalAddress.cs
- HttpListenerContext.cs
- SqlMethods.cs
- Calendar.cs
- DynamicMethod.cs
- HttpSocketManager.cs
- CompModSwitches.cs
- ResourcePool.cs
- ScriptRef.cs
- CodeGeneratorAttribute.cs
- RemotingHelper.cs
- DatatypeImplementation.cs
- StringAttributeCollection.cs
- ToolZoneDesigner.cs
- DynamicMetaObjectBinder.cs
- Latin1Encoding.cs
- X509Utils.cs
- InternalConfigConfigurationFactory.cs
- ColorBlend.cs
- DefaultAsyncDataDispatcher.cs
- DtdParser.cs
- AsyncInvokeOperation.cs
- MailAddress.cs
- DateTimeSerializationSection.cs
- Transform3DCollection.cs