Ejemplo n.º 1
0
 private static extern void CFDataGetBytes(IntPtr theData, CFRange range, byte[] buffer);
Ejemplo n.º 2
0
 internal static extern IntPtr CFStringGetCharacters(IntPtr handle, CFRange range, IntPtr buffer);
Ejemplo n.º 3
0
 private static extern void CFArrayGetValues(IntPtr sourceRef, CFRange range, IntPtr values);
Ejemplo n.º 4
0
        public static string PropertyListToXML(byte[] propertyList)
        {
            try
            {
                int length = propertyList.Length;
                if (propertyList[0] == 0x62 && propertyList[1] == 0x70 && propertyList[2] == 0x6c &&
                    propertyList[3] == 0x69 && propertyList[4] == 0x73 && propertyList[5] == 0x74 &&
                    propertyList[6] == 0x30 && propertyList[7] == 0x30)
                {
                    IntPtr ptr = IntPtr.Zero;
                    IntPtr ptr2 = IntPtr.Zero;
                    ptr2 = CFPropertyListCreateFromXMLData(IntPtr.Zero, ptr2,
                        CFPropertyListMutabilityOptions.kCFPropertyListImmutable, ref ptr);
                    if (ptr2 != IntPtr.Zero)
                    {
                        ptr2 = CFPropertyListCreateXMLData(IntPtr.Zero, ptr2);
                        length = CFDataGetLength(ptr2) - 1;
                        propertyList = new byte[length + 1];
                        var range = new CFRange(0, length);
                        CFDataGetBytes(ptr2, range, propertyList);
                    }
                }
                return Encoding.UTF8.GetString(propertyList);
            }
            catch (Exception exception1)
            {

            }
            return null;
        }
Ejemplo n.º 5
0
 internal static extern int CFStringGetBytes(IntPtr theString, CFRange range, uint encoding, byte lossByte,
     byte isExternalRepresentation, byte[] buffer, int maxBufLen, ref int usedBufLen);
Ejemplo n.º 6
0
 internal static unsafe string FetchString(IntPtr handle)
 {
     if (handle == IntPtr.Zero)
     {
         return null;
     }
     var len = CoreFoundation.CFStringGetLength(handle);
     var ptr = CoreFoundation.CFStringGetCharactersPtr(handle);
     var zero = IntPtr.Zero;
     if (ptr == IntPtr.Zero)
     {
         var range = new CFRange(0, len);
         zero = Marshal.AllocCoTaskMem(len*2);
         CoreFoundation.CFStringGetCharacters(handle, range, zero);
         ptr = zero;
     }
     return new string((char*) ptr, 0, len);
 }
Ejemplo n.º 7
0
 internal static extern int CFStringGetBytes(IntPtr theString, CFRange range, uint encoding, byte lossByte,
                                             byte isExternalRepresentation, byte[] buffer, int maxBufLen, ref int usedBufLen);
Ejemplo n.º 8
0
 internal static extern IntPtr CFStringGetCharacters(IntPtr handle, CFRange range, IntPtr buffer);
Ejemplo n.º 9
0
 private static extern void CFDataGetBytes(IntPtr theData, CFRange range, byte[] buffer);
Ejemplo n.º 10
0
 private static extern void CFArrayGetValues(IntPtr sourceRef, CFRange range, IntPtr values);