PropertyItemInternal.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 / ndp / fx / src / CommonUI / System / Drawing / PropertyItemInternal.cs / 1305376 / PropertyItemInternal.cs

                            //------------------------------------------------------------------------------
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//-----------------------------------------------------------------------------
 
namespace System.Drawing.Imaging { 
    using System.Runtime.InteropServices;
    using System; 
    using System.Drawing;

    // sdkinc\imaging.h
    [StructLayout(LayoutKind.Sequential)] 
    internal sealed class PropertyItemInternal : IDisposable {
        public int id; 
        public int len; 
        public short type;
        public IntPtr value = IntPtr.Zero; 

        internal PropertyItemInternal() {
        }
 
        ~PropertyItemInternal()
        { 
            Dispose(false); 
        }
 
        public void Dispose()
        {
            Dispose(true);
        } 

        private void Dispose(bool disposing) 
        { 
            if (value != IntPtr.Zero)
            { 
                Marshal.FreeHGlobal(value);
                value = IntPtr.Zero;
            }
 
            if( disposing )
            { 
                GC.SuppressFinalize(this); 
            }
        } 

        internal static PropertyItemInternal ConvertFromPropertyItem(PropertyItem propItem) {
            PropertyItemInternal propItemInternal = new PropertyItemInternal();
            propItemInternal.id = propItem.Id; 
            propItemInternal.len = propItem.Len;
            propItemInternal.type = propItem.Type; 
 
            byte[] propItemValue = propItem.Value;
            if (propItemValue != null) { 
                propItemInternal.value = Marshal.AllocHGlobal(propItemValue.Length);
                Marshal.Copy(propItemValue, 0, propItemInternal.value, propItemValue.Length);
            }
 
            return propItemInternal;
        } 
 
        internal static PropertyItem[] ConvertFromMemory(IntPtr propdata, int count) {
            PropertyItem[] props = new PropertyItem[count]; 

            for (int i=0; i

                        

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