OleStrCAMarshaler.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / whidbey / NetFxQFE / ndp / fx / src / WinForms / Managed / System / WinForms / ComponentModel / COM2Interop / OleStrCAMarshaler.cs / 1 / OleStrCAMarshaler.cs

                            //------------------------------------------------------------------------------ 
// 
//     Copyright (c) Microsoft Corporation.  All rights reserved.
// 
//----------------------------------------------------------------------------- 

namespace System.Windows.Forms.ComponentModel.Com2Interop { 
    using System.Runtime.InteropServices; 
    using System.ComponentModel;
    using System.Diagnostics; 
    using System;


    ///  
    /// 
    ///   This class performs marshaling on a CALPOLESTR struct given 
    ///   from native code. 
    /// 
    internal class OleStrCAMarshaler: BaseCAMarshaler { 
        public OleStrCAMarshaler(NativeMethods.CA_STRUCT caAddr) : base(caAddr) {
        }

        ///  
        /// 
        ///     Returns the type of item this marshaler will 
        ///     return in the items array.  In this case, the type is string. 
        /// 
        public override Type ItemType { 
            get {
                return typeof(string);
            }
        } 

        protected override Array CreateArray() { 
            return new string[Count]; 
        }
 
        /// 
        /// 
        ///     Override this member to perform marshalling of a single item
        ///     given it's native address. 
        /// 
        protected override object GetItemFromAddress(IntPtr addr) { 
            string item =  Marshal.PtrToStringUni(addr); 
            // free the memory
            Marshal.FreeCoTaskMem(addr); 
            return item;
        }
    }
} 

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

namespace System.Windows.Forms.ComponentModel.Com2Interop { 
    using System.Runtime.InteropServices; 
    using System.ComponentModel;
    using System.Diagnostics; 
    using System;


    ///  
    /// 
    ///   This class performs marshaling on a CALPOLESTR struct given 
    ///   from native code. 
    /// 
    internal class OleStrCAMarshaler: BaseCAMarshaler { 
        public OleStrCAMarshaler(NativeMethods.CA_STRUCT caAddr) : base(caAddr) {
        }

        ///  
        /// 
        ///     Returns the type of item this marshaler will 
        ///     return in the items array.  In this case, the type is string. 
        /// 
        public override Type ItemType { 
            get {
                return typeof(string);
            }
        } 

        protected override Array CreateArray() { 
            return new string[Count]; 
        }
 
        /// 
        /// 
        ///     Override this member to perform marshalling of a single item
        ///     given it's native address. 
        /// 
        protected override object GetItemFromAddress(IntPtr addr) { 
            string item =  Marshal.PtrToStringUni(addr); 
            // free the memory
            Marshal.FreeCoTaskMem(addr); 
            return item;
        }
    }
} 

// 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