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
- HttpProxyTransportBindingElement.cs
- CollectionBuilder.cs
- Style.cs
- Module.cs
- DataGridColumnDropSeparator.cs
- HttpFileCollectionWrapper.cs
- LeafCellTreeNode.cs
- TextClipboardData.cs
- UInt32Storage.cs
- XPathNodeInfoAtom.cs
- UriScheme.cs
- CommandField.cs
- PropertyKey.cs
- SourceFileBuildProvider.cs
- cookieexception.cs
- Method.cs
- EventMappingSettings.cs
- OfTypeExpression.cs
- AttributeCollection.cs
- DefaultPerformanceCounters.cs
- StrokeNodeEnumerator.cs
- ClientSponsor.cs
- DiffuseMaterial.cs
- HtmlInputPassword.cs
- TableLayoutColumnStyleCollection.cs
- Transform.cs
- CoTaskMemHandle.cs
- HTMLTextWriter.cs
- XmlSchemaSimpleTypeRestriction.cs
- ObjectDataSourceDisposingEventArgs.cs
- ButtonStandardAdapter.cs
- ShapingEngine.cs
- DictionaryKeyPropertyAttribute.cs
- Table.cs
- BodyWriter.cs
- WindowsStatic.cs
- SharedMemory.cs
- TabControlAutomationPeer.cs
- AttributeUsageAttribute.cs
- WindowsTitleBar.cs
- BooleanExpr.cs
- SelectionPattern.cs
- _TransmitFileOverlappedAsyncResult.cs
- OleDbReferenceCollection.cs
- IISUnsafeMethods.cs
- SQLConvert.cs
- ListViewInsertedEventArgs.cs
- ContractValidationHelper.cs
- BufferedOutputStream.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- TileBrush.cs
- Wildcard.cs
- TypeUsageBuilder.cs
- TextViewSelectionProcessor.cs
- BlobPersonalizationState.cs
- Parser.cs
- XPathDocumentNavigator.cs
- ApplicationContext.cs
- GridPattern.cs
- EventLogPermission.cs
- ErrorHandler.cs
- DifferencingCollection.cs
- ActivitySurrogateSelector.cs
- UserControlParser.cs
- ImageClickEventArgs.cs
- XmlNode.cs
- AnimationLayer.cs
- CursorEditor.cs
- EventsTab.cs
- UniqueEventHelper.cs
- LocalFileSettingsProvider.cs
- DataGridViewElement.cs
- DbModificationCommandTree.cs
- PeerEndPoint.cs
- ProviderCollection.cs
- RegexGroup.cs
- StylusDevice.cs
- WeakReadOnlyCollection.cs
- SamlConditions.cs
- TransformGroup.cs
- webeventbuffer.cs
- CompositeDuplexBindingElementImporter.cs
- XmlNodeChangedEventArgs.cs
- DataMemberAttribute.cs
- NameValueSectionHandler.cs
- GroupBox.cs
- Char.cs
- SqlLiftIndependentRowExpressions.cs
- LayoutUtils.cs
- ImageFormat.cs
- CompilerScope.Storage.cs
- ParameterCollectionEditor.cs
- ConfigurationSchemaErrors.cs
- SqlDataReader.cs
- HostingEnvironmentException.cs
- DateTimeSerializationSection.cs
- FormsAuthentication.cs
- DockAndAnchorLayout.cs
- RowToFieldTransformer.cs
- DllHostInitializer.cs