UnknownBitmapEncoder.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Core / CSharp / System / Windows / Media / Imaging / UnknownBitmapEncoder.cs / 1305600 / UnknownBitmapEncoder.cs

                            //------------------------------------------------------------------------------ 
//  Microsoft Avalon
//  Copyright (c) Microsoft Corporation, All Rights Reserved
//
//  File: UnknownBitmapEncoder.cs 
//
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections; 
using System.Security;
using System.Security.Permissions;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization; 
using System.Reflection;
using MS.Internal; 
using MS.Win32.PresentationCore; 
using System.Diagnostics;
using System.Windows.Media; 
using System.Globalization;
using System.Windows.Media.Imaging;

namespace System.Windows.Media.Imaging 
{
    #region UnknownBitmapEncoder 
 
    /// 
    /// Built-in Encoder for Unknown files. 
    /// 
    internal sealed class UnknownBitmapEncoder : BitmapEncoder
    {
        #region Constructors 

        ///  
        /// Constructor for UnknownBitmapEncoder 
        /// 
        ///  
        /// Critical - will eventually create unmanaged resources based on guid
        /// 
        [SecurityCritical]
        public UnknownBitmapEncoder(Guid containerFormat) : 
            base(true)
        { 
            _containerFormat = containerFormat; 

            // Assume it supports everything 
            _supportsPreview = true;
            _supportsGlobalThumbnail = true;
            _supportsGlobalMetadata = false;
            _supportsFrameThumbnails = true; 
            _supportsMultipleFrames = true;
            _supportsFrameMetadata = true; 
        } 

        #endregion 

        #region Internal Properties / Methods

        ///  
        /// Returns the container format for this encoder
        ///  
        ///  
        /// Critical - uses guid to create unmanaged resources
        ///  
        internal override Guid ContainerFormat
        {
            [SecurityCritical]
            get 
            {
                return _containerFormat; 
            } 
        }
 
        /// 
        /// Setups the encoder and other properties before encoding each frame
        /// 
        ///  
        /// Critical - Accesses unmanaged code
        /// TreatAsSafe - All parameters passed in are safe (null, 0 and safehandle) 
        ///  
        [SecurityCritical, SecurityTreatAsSafe]
        internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOptions) 
        {
            HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize(
                frameEncodeHandle,
                encoderOptions 
                ));
        } 
 
        #endregion
 
        #region Internal Abstract

        /// Need to implement this to derive from the "sealed" object
        internal override void SealObject() 
        {
            throw new NotImplementedException(); 
        } 

        #endregion 

        #region Data Members

        ///  
        /// Critical - CLSID used for creation of critical resources
        ///  
        [SecurityCritical] 
        private Guid _containerFormat;
 
        #endregion
    }

    #endregion // UnknownBitmapEncoder 
}
 
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
//------------------------------------------------------------------------------ 
//  Microsoft Avalon
//  Copyright (c) Microsoft Corporation, All Rights Reserved
//
//  File: UnknownBitmapEncoder.cs 
//
//----------------------------------------------------------------------------- 
 
using System;
using System.Collections; 
using System.Security;
using System.Security.Permissions;
using System.ComponentModel;
using System.ComponentModel.Design.Serialization; 
using System.Reflection;
using MS.Internal; 
using MS.Win32.PresentationCore; 
using System.Diagnostics;
using System.Windows.Media; 
using System.Globalization;
using System.Windows.Media.Imaging;

namespace System.Windows.Media.Imaging 
{
    #region UnknownBitmapEncoder 
 
    /// 
    /// Built-in Encoder for Unknown files. 
    /// 
    internal sealed class UnknownBitmapEncoder : BitmapEncoder
    {
        #region Constructors 

        ///  
        /// Constructor for UnknownBitmapEncoder 
        /// 
        ///  
        /// Critical - will eventually create unmanaged resources based on guid
        /// 
        [SecurityCritical]
        public UnknownBitmapEncoder(Guid containerFormat) : 
            base(true)
        { 
            _containerFormat = containerFormat; 

            // Assume it supports everything 
            _supportsPreview = true;
            _supportsGlobalThumbnail = true;
            _supportsGlobalMetadata = false;
            _supportsFrameThumbnails = true; 
            _supportsMultipleFrames = true;
            _supportsFrameMetadata = true; 
        } 

        #endregion 

        #region Internal Properties / Methods

        ///  
        /// Returns the container format for this encoder
        ///  
        ///  
        /// Critical - uses guid to create unmanaged resources
        ///  
        internal override Guid ContainerFormat
        {
            [SecurityCritical]
            get 
            {
                return _containerFormat; 
            } 
        }
 
        /// 
        /// Setups the encoder and other properties before encoding each frame
        /// 
        ///  
        /// Critical - Accesses unmanaged code
        /// TreatAsSafe - All parameters passed in are safe (null, 0 and safehandle) 
        ///  
        [SecurityCritical, SecurityTreatAsSafe]
        internal override void SetupFrame(SafeMILHandle frameEncodeHandle, SafeMILHandle encoderOptions) 
        {
            HRESULT.Check(UnsafeNativeMethods.WICBitmapFrameEncode.Initialize(
                frameEncodeHandle,
                encoderOptions 
                ));
        } 
 
        #endregion
 
        #region Internal Abstract

        /// Need to implement this to derive from the "sealed" object
        internal override void SealObject() 
        {
            throw new NotImplementedException(); 
        } 

        #endregion 

        #region Data Members

        ///  
        /// Critical - CLSID used for creation of critical resources
        ///  
        [SecurityCritical] 
        private Guid _containerFormat;
 
        #endregion
    }

    #endregion // UnknownBitmapEncoder 
}
 
 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.

                        

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