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
- FileLogRecordStream.cs
- CreateUserWizard.cs
- WindowsComboBox.cs
- ConnectionString.cs
- SegmentTree.cs
- PropertySegmentSerializer.cs
- WindowsGrip.cs
- StringCollectionMarkupSerializer.cs
- MessageQueueEnumerator.cs
- DebugView.cs
- GridViewDesigner.cs
- ConditionalAttribute.cs
- TitleStyle.cs
- LeftCellWrapper.cs
- SqlParameter.cs
- XXXInfos.cs
- RoleGroupCollectionEditor.cs
- ImportedNamespaceContextItem.cs
- GridViewDeleteEventArgs.cs
- ChildTable.cs
- TreeNodeStyleCollection.cs
- SqlRowUpdatingEvent.cs
- TypeTypeConverter.cs
- TextStore.cs
- SqlDataAdapter.cs
- XmlSchemaSubstitutionGroup.cs
- DescendantBaseQuery.cs
- ELinqQueryState.cs
- Documentation.cs
- MarkupExtensionSerializer.cs
- GradientStop.cs
- MessageDesigner.cs
- DataErrorValidationRule.cs
- LabelDesigner.cs
- TextReader.cs
- _BaseOverlappedAsyncResult.cs
- SerializableTypeCodeDomSerializer.cs
- TcpTransportSecurity.cs
- ValueTypeFixupInfo.cs
- XmlSchemaFacet.cs
- AttributeCollection.cs
- VisualBrush.cs
- StateDesigner.TransitionInfo.cs
- SHA384CryptoServiceProvider.cs
- JavaScriptString.cs
- MonikerUtility.cs
- TimeStampChecker.cs
- AssociationSetMetadata.cs
- _emptywebproxy.cs
- DeclaredTypeValidator.cs
- StringAttributeCollection.cs
- TypeNameConverter.cs
- WsrmMessageInfo.cs
- UpdateTranslator.cs
- XmlArrayItemAttributes.cs
- SmiEventSink.cs
- ClientTargetCollection.cs
- EdmScalarPropertyAttribute.cs
- ReadOnlyDataSource.cs
- RequestStatusBarUpdateEventArgs.cs
- ListMarkerSourceInfo.cs
- TextEditorCharacters.cs
- FamilyTypeface.cs
- UnicodeEncoding.cs
- GlobalItem.cs
- complextypematerializer.cs
- XslTransform.cs
- IPAddressCollection.cs
- MimeReflector.cs
- ErrorCodes.cs
- Emitter.cs
- ArgumentOutOfRangeException.cs
- WebPartConnectionCollection.cs
- ScriptManagerProxy.cs
- GorillaCodec.cs
- ImageFormat.cs
- InternalPolicyElement.cs
- XmlSerializationGeneratedCode.cs
- ReadOnlyPropertyMetadata.cs
- Site.cs
- TemplateColumn.cs
- ExportOptions.cs
- XmlBinaryReader.cs
- PageThemeParser.cs
- ShapingWorkspace.cs
- DataObjectFieldAttribute.cs
- SecurityElement.cs
- BuildManagerHost.cs
- QueueProcessor.cs
- ToolStripPanelCell.cs
- MULTI_QI.cs
- DBCommand.cs
- DataObjectFieldAttribute.cs
- SendReply.cs
- RSACryptoServiceProvider.cs
- TileBrush.cs
- Function.cs
- QilTypeChecker.cs
- WebConfigurationHostFileChange.cs
- TargetConverter.cs