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
- PackageRelationshipSelector.cs
- MaxMessageSizeStream.cs
- WinFormsSecurity.cs
- FixedDSBuilder.cs
- X509CertificateValidator.cs
- ExpandSegment.cs
- TextFormatterHost.cs
- FieldNameLookup.cs
- SkipQueryOptionExpression.cs
- XhtmlStyleClass.cs
- SqlIdentifier.cs
- FontSource.cs
- PolicyException.cs
- RichTextBox.cs
- BitmapEffect.cs
- TaiwanLunisolarCalendar.cs
- Rijndael.cs
- ToolboxBitmapAttribute.cs
- XmlDocumentFragment.cs
- RootDesignerSerializerAttribute.cs
- InlineUIContainer.cs
- SingleStorage.cs
- ResXResourceSet.cs
- FlowDocumentScrollViewer.cs
- MessageBox.cs
- MetadataPropertyCollection.cs
- Help.cs
- CompilerTypeWithParams.cs
- KeyBinding.cs
- SupportsEventValidationAttribute.cs
- ScaleTransform3D.cs
- KeyPressEvent.cs
- ProfileParameter.cs
- Listener.cs
- X509AsymmetricSecurityKey.cs
- StructuralType.cs
- TraceContextEventArgs.cs
- BitmapFrameEncode.cs
- DescendantBaseQuery.cs
- OleDbSchemaGuid.cs
- Event.cs
- BinaryFormatterWriter.cs
- TextPointer.cs
- HierarchicalDataBoundControlAdapter.cs
- RuntimeConfig.cs
- SyntaxCheck.cs
- SystemParameters.cs
- XmlReader.cs
- SqlDataSourceSelectingEventArgs.cs
- ReliableSessionElement.cs
- HierarchicalDataBoundControlAdapter.cs
- ClientCultureInfo.cs
- SortQuery.cs
- NativeMethods.cs
- SQLGuid.cs
- ellipse.cs
- PropertyValue.cs
- Parser.cs
- CryptoKeySecurity.cs
- ToolStripArrowRenderEventArgs.cs
- OracleNumber.cs
- _LoggingObject.cs
- CancellationToken.cs
- ObservableCollection.cs
- KeyFrames.cs
- ParseNumbers.cs
- StorageBasedPackageProperties.cs
- TcpTransportSecurity.cs
- BufferedGraphicsManager.cs
- ApplicationBuildProvider.cs
- MemoryFailPoint.cs
- ConfigPathUtility.cs
- ScriptingSectionGroup.cs
- ComplexObject.cs
- DialogWindow.cs
- ActivityDesignerAccessibleObject.cs
- BlurBitmapEffect.cs
- FtpWebRequest.cs
- WindowsStatic.cs
- XmlAttributeOverrides.cs
- ConversionHelper.cs
- IndentTextWriter.cs
- ConstantExpression.cs
- TargetPerspective.cs
- ResourcePool.cs
- ConstraintStruct.cs
- OleDbException.cs
- ArrayExtension.cs
- MetafileHeaderWmf.cs
- SymLanguageVendor.cs
- KeyConstraint.cs
- EastAsianLunisolarCalendar.cs
- TrackingConditionCollection.cs
- SHA1Cng.cs
- ValidatorCompatibilityHelper.cs
- NamedPipeConnectionPoolSettingsElement.cs
- TraceHandler.cs
- SizeIndependentAnimationStorage.cs
- ImagingCache.cs
- Form.cs