public static T[] GetListFromAEDesc <T, TRef> (ref AEDesc list, AEDescValueSelector <TRef, T> sel, OSType type) where TRef : struct { long count = AppleEvent.AECountItems(ref list); T[] arr = new T[count]; for (int i = 1; i <= count; i++) { TRef r = AppleEvent.AEGetNthPtr <TRef> (ref list, i, type); arr [i - 1] = sel(ref r); } return(arr); }
public static IList <string> GetUtf8StringListFromAEDesc(ref AEDesc list, bool skipEmpty) { long count = AppleEvent.AECountItems(ref list); var items = new List <string> (); for (int i = 1; i <= count; i++) { string str = AppleEvent.GetUtfs8StringFromAEPtr(ref list, i); if (!string.IsNullOrEmpty(str)) { items.Add(str); } } return(items); }