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
- HttpListenerException.cs
- TypedTableBase.cs
- Tuple.cs
- DiscoveryClientProtocol.cs
- BulletedList.cs
- ColumnHeaderConverter.cs
- DataSourceDesigner.cs
- RuleSettings.cs
- HwndSource.cs
- ResetableIterator.cs
- ExtenderProviderService.cs
- basevalidator.cs
- OdbcTransaction.cs
- TextBlockAutomationPeer.cs
- PathFigure.cs
- updateconfighost.cs
- Memoizer.cs
- FreezableDefaultValueFactory.cs
- AsymmetricKeyExchangeDeformatter.cs
- CodeAttributeDeclarationCollection.cs
- DataGridClipboardCellContent.cs
- UICuesEvent.cs
- DataGridViewRowEventArgs.cs
- XmlNodeList.cs
- DropAnimation.xaml.cs
- XPathDocumentNavigator.cs
- OrderedDictionaryStateHelper.cs
- IPPacketInformation.cs
- _LazyAsyncResult.cs
- SplayTreeNode.cs
- DispatchWrapper.cs
- ReflectionUtil.cs
- BinaryMessageEncodingBindingElement.cs
- StretchValidation.cs
- UmAlQuraCalendar.cs
- ProfileGroupSettings.cs
- MouseWheelEventArgs.cs
- EntitySqlQueryBuilder.cs
- RowBinding.cs
- DataGridViewDataErrorEventArgs.cs
- SmiSettersStream.cs
- Screen.cs
- HotSpotCollection.cs
- UnmanagedMemoryStreamWrapper.cs
- Point3DValueSerializer.cs
- ListViewHitTestInfo.cs
- TextHidden.cs
- HiddenFieldPageStatePersister.cs
- DispatcherExceptionFilterEventArgs.cs
- XmlSchemaComplexContent.cs
- FlowchartStart.xaml.cs
- Subordinate.cs
- Serializer.cs
- cookiecollection.cs
- ControlBuilderAttribute.cs
- SystemIcmpV4Statistics.cs
- UriScheme.cs
- COM2FontConverter.cs
- ExecutionScope.cs
- RTLAwareMessageBox.cs
- XmlWellformedWriter.cs
- ConsumerConnectionPointCollection.cs
- SmtpDigestAuthenticationModule.cs
- XamlTreeBuilder.cs
- EventLogPermissionEntry.cs
- XmlTextReader.cs
- EventLog.cs
- DeploymentSectionCache.cs
- TemplateBindingExpressionConverter.cs
- CommandEventArgs.cs
- TransformConverter.cs
- SqlProviderManifest.cs
- PreviousTrackingServiceAttribute.cs
- TableAutomationPeer.cs
- Cursor.cs
- ScriptControl.cs
- DrawingContextWalker.cs
- SessionStateContainer.cs
- PrintPreviewGraphics.cs
- QuadraticBezierSegment.cs
- TimeSpanMinutesConverter.cs
- WebScriptEnablingElement.cs
- RegistryPermission.cs
- XPathArrayIterator.cs
- NavigationProperty.cs
- QuaternionAnimationBase.cs
- PropertyTab.cs
- FocusManager.cs
- ObjectTag.cs
- AttributeCollection.cs
- SizeF.cs
- FormCollection.cs
- TypeExtension.cs
- ProjectionQueryOptionExpression.cs
- ColumnCollection.cs
- DbDataSourceEnumerator.cs
- SqlBuffer.cs
- CatalogPart.cs
- Pens.cs
- GeneralTransform2DTo3DTo2D.cs