Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Core / System / Windows / Media / Imaging / UnmanagedBitmapWrapper.cs / 1 / UnmanagedBitmapWrapper.cs
//------------------------------------------------------------------------------ // Microsoft Avalon // Copyright (c) Microsoft Corporation. All Rights Reserved. // // File: UnmanagedBitmapWrapper.cs // //----------------------------------------------------------------------------- using System; using System.IO; using System.Collections; using System.Collections.Generic; using System.ComponentModel; using System.ComponentModel.Design.Serialization; using System.Reflection; using MS.Internal; using MS.Win32.PresentationCore; using System.Security; using System.Security.Permissions; using System.Diagnostics; using System.Windows.Media; using System.Globalization; using System.Runtime.InteropServices; using System.Windows; using System.Windows.Media.Animation; using System.Windows.Media.Composition; using MS.Internal.PresentationCore; using SR = MS.Internal.PresentationCore.SR; using SRID = MS.Internal.PresentationCore.SRID; namespace System.Windows.Media.Imaging { internal sealed class UnmanagedBitmapWrapper : System.Windows.Media.Imaging.BitmapSource { ////// Critical - calls critical code method BitmapSource.UpdateCachedSettings /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] public UnmanagedBitmapWrapper(BitmapSourceSafeMILHandle bitmapSource) : base(true) { _bitmapInit.BeginInit(); bitmapSource.CalculateSize(); WicSourceHandle = bitmapSource; _bitmapInit.EndInit(); UpdateCachedSettings(); } #region Protected Methods ////// Critical - eventually access'es critical resources (_wicSource) /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] internal UnmanagedBitmapWrapper(bool initialize) : base(true) { // Call BeginInit and EndInit if initialize is true. if (initialize) { _bitmapInit.BeginInit(); _bitmapInit.EndInit(); } } ////// Critical - calls critical code method BitmapSource.UpdateCachedSettings /// TreatAsSafe - all inputs are checked /// [SecurityCritical, SecurityTreatAsSafe] internal void UpdateBitmapSource(BitmapSource bitmapSource, DUCE.Channel channel) { WicSourceHandle = bitmapSource.WicSourceHandle; UpdateCachedSettings(); _needsUpdate = true; UpdateResource(channel, true /* skip "on channel" check - we already know that we're on channel */ ); } ////// Implementation of protected override Freezable CreateInstanceCore() { return new UnmanagedBitmapWrapper(false); } private void CopyCommon(UnmanagedBitmapWrapper sourceBitmap) { _bitmapInit.BeginInit(); _bitmapInit.EndInit(); } ///Freezable.CreateInstanceCore . ////// Implementation of protected override void CloneCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.CloneCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.CloneCore . ////// Implementation of protected override void CloneCurrentValueCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.CloneCurrentValueCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.CloneCurrentValueCore . ////// Implementation of protected override void GetAsFrozenCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.GetAsFrozenCore(sourceFreezable); CopyCommon(sourceBitmap); } ///Freezable.GetAsFrozenCore . ////// Implementation of protected override void GetCurrentValueAsFrozenCore(Freezable sourceFreezable) { UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; base.GetCurrentValueAsFrozenCore(sourceFreezable); CopyCommon(sourceBitmap); } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.Freezable.GetCurrentValueAsFrozenCore . ///
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- GridPattern.cs
- RoleGroupCollection.cs
- FileSystemEnumerable.cs
- XsltCompileContext.cs
- TemplateBaseAction.cs
- XPathNavigatorKeyComparer.cs
- PixelFormatConverter.cs
- ControlValuePropertyAttribute.cs
- DesignerCapabilities.cs
- PasswordDeriveBytes.cs
- SoapMessage.cs
- RecommendedAsConfigurableAttribute.cs
- InvalidOleVariantTypeException.cs
- ColumnHeaderConverter.cs
- ResolveNameEventArgs.cs
- Profiler.cs
- SelectedDatesCollection.cs
- TableLayoutSettings.cs
- ProfileServiceManager.cs
- TextContainerChangedEventArgs.cs
- UInt16.cs
- AudioBase.cs
- ButtonPopupAdapter.cs
- Condition.cs
- ProgressBarRenderer.cs
- UpDownEvent.cs
- X509SecurityTokenProvider.cs
- FileNotFoundException.cs
- PreloadedPackages.cs
- ObjectDataSourceDisposingEventArgs.cs
- UnsafeNativeMethods.cs
- GeneralTransform3DTo2D.cs
- PrinterUnitConvert.cs
- TextReturnReader.cs
- DecimalAnimationUsingKeyFrames.cs
- BasicBrowserDialog.cs
- SchemaImporterExtensionElementCollection.cs
- Rfc2898DeriveBytes.cs
- UInt32Storage.cs
- Thickness.cs
- DataMemberConverter.cs
- Soap.cs
- EditCommandColumn.cs
- GACIdentityPermission.cs
- EmbossBitmapEffect.cs
- LayoutInformation.cs
- EditorPart.cs
- SchemaDeclBase.cs
- DbParameterHelper.cs
- PointConverter.cs
- ProfileService.cs
- Pen.cs
- CellLabel.cs
- DrawingGroup.cs
- WebPartChrome.cs
- PartitionResolver.cs
- StorageSetMapping.cs
- WebPartDescription.cs
- NavigatorInput.cs
- XPathScanner.cs
- SkinBuilder.cs
- ToolStripTextBox.cs
- WindowsNonControl.cs
- XmlSchemaRedefine.cs
- WebPartEditorOkVerb.cs
- CommentEmitter.cs
- ProofTokenCryptoHandle.cs
- InternalMappingException.cs
- InternalConfigConfigurationFactory.cs
- PeerResolver.cs
- BasicAsyncResult.cs
- ConfigurationLocationCollection.cs
- VirtualDirectoryMappingCollection.cs
- HMAC.cs
- IdentityReference.cs
- RemotingConfigParser.cs
- ArgumentOutOfRangeException.cs
- CodeMethodMap.cs
- XmlWriter.cs
- SchemaTypeEmitter.cs
- AstTree.cs
- ToolStripItem.cs
- PersonalizationStateQuery.cs
- RectangleConverter.cs
- SharedHttpsTransportManager.cs
- ErrorWrapper.cs
- CustomPopupPlacement.cs
- TraceUtility.cs
- CultureTable.cs
- KeyEvent.cs
- ProviderBase.cs
- OperatingSystem.cs
- TemplateControlParser.cs
- BitmapEffectOutputConnector.cs
- ConsoleCancelEventArgs.cs
- BoolExpression.cs
- ModifierKeysValueSerializer.cs
- JapaneseCalendar.cs
- InstanceDataCollection.cs
- CroppedBitmap.cs