UnmanagedBitmapWrapper.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Imaging / UnmanagedBitmapWrapper.cs / 1305600 / 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 : BitmapSource 
    { 
        /// 
        /// Critical - calls critical code method BitmapSource.UpdateCachedSettings 
        /// TreatAsSafe - all inputs are checked
        /// 
        [SecurityCritical, SecurityTreatAsSafe]
        public UnmanagedBitmapWrapper(BitmapSourceSafeMILHandle bitmapSource) : 
            base(true)
        { 
            _bitmapInit.BeginInit(); 

            // 
            // This constructor is used by BitmapDecoder and BitmapFrameDecode for thumbnails and
            // previews. The bitmapSource parameter comes from BitmapSource.CreateCachedBitmap
            // which already calculated memory pressure, so there's no need to do it here.
            // 
            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(); 
            } 
        }
 
        /// 
        /// 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