MonoMac.CoreFoundation.CFString.FetchString C# (CSharp) Method

FetchString() static private method

static private FetchString ( IntPtr handle ) : string
handle System.IntPtr
return string
        internal static string FetchString(IntPtr handle)
        {
            if (handle == IntPtr.Zero)
                return null;

            string str;

            int l = CFStringGetLength (handle);
            IntPtr u = CFStringGetCharactersPtr (handle);
            IntPtr buffer = IntPtr.Zero;
            if (u == IntPtr.Zero){
                CFRange r = new CFRange (0, l);
                buffer = Marshal.AllocCoTaskMem (l * 2);
                CFStringGetCharacters (handle, r, buffer);
                u = buffer;
            }
            unsafe {
                str = new string ((char *) u, 0, l);
            }

            if (buffer != IntPtr.Zero)
                Marshal.FreeCoTaskMem (buffer);

            return str;
        }

Usage Example

Ejemplo n.º 1
0
        static string ToString(IntPtr cfStringRef, bool release)
        {
            var r = CFString.FetchString(cfStringRef);

            if (release && (cfStringRef != IntPtr.Zero))
            {
                CFObject.CFRelease(cfStringRef);
            }
            return(r);
        }
All Usage Examples Of MonoMac.CoreFoundation.CFString::FetchString