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
- ServiceErrorHandler.cs
- Atom10FeedFormatter.cs
- ExpandCollapseProviderWrapper.cs
- SqlCharStream.cs
- SizeConverter.cs
- BamlRecordWriter.cs
- BindingManagerDataErrorEventArgs.cs
- WebScriptServiceHost.cs
- DefaultMemberAttribute.cs
- HttpModuleAction.cs
- VBCodeProvider.cs
- EDesignUtil.cs
- wgx_sdk_version.cs
- MatrixCamera.cs
- ImportContext.cs
- CodeAttributeDeclarationCollection.cs
- _SslState.cs
- WrapPanel.cs
- UserControl.cs
- BufferedResponseStream.cs
- ReflectEventDescriptor.cs
- MenuEventArgs.cs
- CatalogZoneBase.cs
- HtmlCalendarAdapter.cs
- Table.cs
- KnownBoxes.cs
- MetadataWorkspace.cs
- XmlChoiceIdentifierAttribute.cs
- DataFormat.cs
- WindowsTokenRoleProvider.cs
- InvalidateEvent.cs
- EventListenerClientSide.cs
- BoundColumn.cs
- FreezableCollection.cs
- CustomErrorsSectionWrapper.cs
- ProcessModule.cs
- CacheVirtualItemsEvent.cs
- BoolExpression.cs
- BuildResult.cs
- FacetChecker.cs
- PhysicalFontFamily.cs
- BasicKeyConstraint.cs
- UmAlQuraCalendar.cs
- DataTableReaderListener.cs
- StreamResourceInfo.cs
- RowType.cs
- BaseTemplateBuildProvider.cs
- CookieProtection.cs
- AdornerHitTestResult.cs
- Point4DConverter.cs
- Button.cs
- SimplePropertyEntry.cs
- OutputWindow.cs
- EventSetterHandlerConverter.cs
- Soap12ProtocolReflector.cs
- SimplePropertyEntry.cs
- SymmetricKey.cs
- ModuleElement.cs
- AppSettingsExpressionEditor.cs
- BaseCollection.cs
- AdjustableArrowCap.cs
- SignerInfo.cs
- SerializerDescriptor.cs
- XPathDescendantIterator.cs
- ResXFileRef.cs
- FusionWrap.cs
- XPathNodeList.cs
- BookmarkScope.cs
- Int16Storage.cs
- ExpressionBindingsDialog.cs
- GroupBox.cs
- PopupRootAutomationPeer.cs
- FlagsAttribute.cs
- MD5CryptoServiceProvider.cs
- ProcessModule.cs
- DesignerAttribute.cs
- WebConfigurationHost.cs
- XsdDateTime.cs
- WmpBitmapEncoder.cs
- RawMouseInputReport.cs
- ILGen.cs
- MobileDeviceCapabilitiesSectionHandler.cs
- TreeNodeSelectionProcessor.cs
- HttpCookie.cs
- TypedDataSetSchemaImporterExtension.cs
- DynamicValidatorEventArgs.cs
- SqlTriggerAttribute.cs
- SqlCommand.cs
- SequenceDesigner.cs
- ScrollChrome.cs
- MailWriter.cs
- mediaeventargs.cs
- FragmentQueryKB.cs
- DebuggerService.cs
- LocationUpdates.cs
- ExpressionBuilderCollection.cs
- Merger.cs
- SwitchLevelAttribute.cs
- AccessText.cs
- BuildProvider.cs