UnmanagedBitmapWrapper.cs source code in C# .NET

Source code for the .NET framework in C#

                        

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 Freezable.CreateInstanceCore.
        /// 
        protected override Freezable CreateInstanceCore() 
        {
            return new UnmanagedBitmapWrapper(false); 
        } 

        private void CopyCommon(UnmanagedBitmapWrapper sourceBitmap) 
        {
            _bitmapInit.BeginInit();
            _bitmapInit.EndInit();
        } 

        ///  
        /// Implementation of Freezable.CloneCore. 
        /// 
        protected override void CloneCore(Freezable sourceFreezable) 
        {
            UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable;
            base.CloneCore(sourceFreezable);
 
            CopyCommon(sourceBitmap);
        } 
 
        /// 
        /// Implementation of Freezable.CloneCurrentValueCore. 
        /// 
        protected override void CloneCurrentValueCore(Freezable sourceFreezable)
        {
            UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; 
            base.CloneCurrentValueCore(sourceFreezable);
 
            CopyCommon(sourceBitmap); 
        }
 
        /// 
        /// Implementation of Freezable.GetAsFrozenCore.
        /// 
        protected override void GetAsFrozenCore(Freezable sourceFreezable) 
        {
            UnmanagedBitmapWrapper sourceBitmap = (UnmanagedBitmapWrapper)sourceFreezable; 
            base.GetAsFrozenCore(sourceFreezable); 

            CopyCommon(sourceBitmap); 
        }

        /// 
        /// Implementation of Freezable.GetCurrentValueAsFrozenCore. 
        /// 
        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.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK