PropertyItemInternal.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ DotNET / DotNET / 8.0 / untmp / whidbey / REDBITS / ndp / fx / src / CommonUI / System / Drawing / PropertyItemInternal.cs / 1 / PropertyItemInternal.cs

                            //------------------------------------------------------------------------------
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
//  
//-----------------------------------------------------------------------------
 
/*************************************************************************\ 
*
* Copyright (c) 1998-1999, Microsoft Corp.  All Rights Reserved. 
*
* Module Name:
*
*   PropertyItem.cs 
*
* Abstract: 
* 
*   Native GDI+ PropertyItem structure.
* 
* Revision History:
*
*   3/3/2k [....]
*       Created it. 
*
\**************************************************************************/ 
 
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