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
- RawAppCommandInputReport.cs
- LinearKeyFrames.cs
- TextAdaptor.cs
- ZipIOZip64EndOfCentralDirectoryBlock.cs
- HtmlTable.cs
- PolyBezierSegmentFigureLogic.cs
- TypeResolver.cs
- VideoDrawing.cs
- StreamingContext.cs
- URLMembershipCondition.cs
- TrueReadOnlyCollection.cs
- XsltArgumentList.cs
- TypeUtil.cs
- SHA384.cs
- ParseChildrenAsPropertiesAttribute.cs
- PolyBezierSegment.cs
- BulletChrome.cs
- Operators.cs
- ParserHooks.cs
- XmlSchemaAttributeGroupRef.cs
- DataListItemEventArgs.cs
- Convert.cs
- BaseAsyncResult.cs
- FileDialog.cs
- ContextMenuService.cs
- DocumentApplicationJournalEntry.cs
- SystemEvents.cs
- BuildProviderCollection.cs
- FloaterBaseParagraph.cs
- UnaryOperationBinder.cs
- AppDomainProtocolHandler.cs
- XmlSchemaFacet.cs
- BinaryMethodMessage.cs
- QilXmlReader.cs
- GroupItemAutomationPeer.cs
- Transactions.cs
- StorageMappingItemCollection.cs
- UpdateException.cs
- MutexSecurity.cs
- ExceptionValidationRule.cs
- OleDbReferenceCollection.cs
- ControlDesignerState.cs
- XmlTextWriter.cs
- SchemaRegistration.cs
- AnnotationComponentManager.cs
- FunctionImportMapping.cs
- OleDbConnectionFactory.cs
- OneOf.cs
- InputManager.cs
- BounceEase.cs
- HostExecutionContextManager.cs
- Matrix3DStack.cs
- PartManifestEntry.cs
- ProviderCommandInfoUtils.cs
- KeyValuePair.cs
- CalendarAutoFormatDialog.cs
- TextPenaltyModule.cs
- XamlFrame.cs
- xmlglyphRunInfo.cs
- DivideByZeroException.cs
- CommaDelimitedStringAttributeCollectionConverter.cs
- WebServiceData.cs
- StringResourceManager.cs
- MeasureItemEvent.cs
- smtpconnection.cs
- SendingRequestEventArgs.cs
- ProtocolsConfigurationEntry.cs
- EtwTrace.cs
- TreeNodeBindingCollection.cs
- UIElementHelper.cs
- TextRenderer.cs
- XPathParser.cs
- CodeCommentStatement.cs
- LogoValidationException.cs
- SmtpNetworkElement.cs
- IIS7UserPrincipal.cs
- ClientBuildManagerCallback.cs
- MSAAEventDispatcher.cs
- StringBlob.cs
- ContentFilePart.cs
- ProfessionalColorTable.cs
- PlatformCulture.cs
- TdsParserStateObject.cs
- CollectionContainer.cs
- OperationCanceledException.cs
- InputDevice.cs
- ControlValuePropertyAttribute.cs
- CacheDependency.cs
- WindowsGraphics.cs
- CodeExpressionCollection.cs
- InvokePattern.cs
- CodeTypeReference.cs
- SemaphoreFullException.cs
- XmlEntity.cs
- WinFormsComponentEditor.cs
- TcpClientChannel.cs
- FileDialog_Vista.cs
- _UriTypeConverter.cs
- Maps.cs
- StructuredType.cs