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
- Transform.cs
- ContextStack.cs
- StatusBar.cs
- SimpleTypesSurrogate.cs
- ItemsControl.cs
- FragmentNavigationEventArgs.cs
- NominalTypeEliminator.cs
- TextDecorationCollection.cs
- ButtonFlatAdapter.cs
- DispatchProxy.cs
- BitmapCodecInfoInternal.cs
- PointKeyFrameCollection.cs
- Qualifier.cs
- MetadataArtifactLoaderXmlReaderWrapper.cs
- MenuItemAutomationPeer.cs
- CorrelationInitializer.cs
- PropertyDescriptorGridEntry.cs
- PropertyItemInternal.cs
- XmlMembersMapping.cs
- SmtpAuthenticationManager.cs
- FileLoadException.cs
- CachedBitmap.cs
- NativeBuffer.cs
- DefaultValueTypeConverter.cs
- MetafileHeaderWmf.cs
- InputProcessorProfiles.cs
- TraceHandlerErrorFormatter.cs
- DeclarativeConditionsCollection.cs
- PauseStoryboard.cs
- CLSCompliantAttribute.cs
- EmptyStringExpandableObjectConverter.cs
- TextEditor.cs
- DataGridParentRows.cs
- TdsParameterSetter.cs
- ConfigUtil.cs
- Convert.cs
- XmlDocument.cs
- SqlFormatter.cs
- BufferAllocator.cs
- Process.cs
- WindowsRichEdit.cs
- filewebresponse.cs
- XmlLanguage.cs
- IPipelineRuntime.cs
- OleDbEnumerator.cs
- SafeBuffer.cs
- TreeNodeCollection.cs
- TdsParserStateObject.cs
- PersonalizationProviderCollection.cs
- DPAPIProtectedConfigurationProvider.cs
- LOSFormatter.cs
- ISO2022Encoding.cs
- WebScriptMetadataInstanceContextProvider.cs
- ITreeGenerator.cs
- ActiveDocumentEvent.cs
- EntityDataSourceDataSelection.cs
- webproxy.cs
- DataMember.cs
- EntityDataSourceUtil.cs
- XhtmlBasicCommandAdapter.cs
- ForeignKeyFactory.cs
- ButtonFieldBase.cs
- Clock.cs
- DBParameter.cs
- WebBaseEventKeyComparer.cs
- XmlSerializableReader.cs
- mda.cs
- SimpleFileLog.cs
- ResourceContainer.cs
- PageBuildProvider.cs
- MatrixTransform.cs
- HyperLinkField.cs
- EventItfInfo.cs
- SortQuery.cs
- SessionParameter.cs
- WebServiceErrorEvent.cs
- FrameworkObject.cs
- BufferedOutputStream.cs
- Point3D.cs
- DataTableMapping.cs
- ObjectFullSpanRewriter.cs
- ItemTypeToolStripMenuItem.cs
- RegistrationContext.cs
- IConvertible.cs
- SecurityPermission.cs
- XamlInt32CollectionSerializer.cs
- FixedSOMLineRanges.cs
- DataTableTypeConverter.cs
- HMACSHA512.cs
- TextElement.cs
- ExpandSegmentCollection.cs
- AdapterDictionary.cs
- DataGridPagerStyle.cs
- __Filters.cs
- PrinterSettings.cs
- FormClosedEvent.cs
- SinglePhaseEnlistment.cs
- TimeSpan.cs
- ProcessModule.cs
- CodeGenerator.cs