public static Dictionary <string, int> GetFileListFromEventRef(IntPtr eventRef) { AEDesc list = GetEventParameter <AEDesc> (eventRef, CarbonEventParameterName.DirectObject, CarbonEventParameterType.AEList); try { int line = 0; try { SelectionRange range = GetEventParameter <SelectionRange> (eventRef, CarbonEventParameterName.AEPosition, CarbonEventParameterType.Char); line = range.lineNum + 1; } catch { } var arr = AppleEvent.GetListFromAEDesc <string, FSRef> (ref list, CoreFoundation.FSRefToString, (OSType)(int)CarbonEventParameterType.FSRef); var files = new Dictionary <string, int> (); foreach (var s in arr) { if (!string.IsNullOrEmpty(s)) { files[s] = line; } } return(files); } finally { CheckReturn((int)AppleEvent.AEDisposeDesc(ref list)); } }
public static IList <string> GetUrlListFromEventRef(IntPtr eventRef) { AEDesc list = GetEventParameter <AEDesc> (eventRef, CarbonEventParameterName.DirectObject, CarbonEventParameterType.AEList); try { return(AppleEvent.GetUtf8StringListFromAEDesc(ref list, true)); } finally { Carbon.CheckReturn((int)AppleEvent.AEDisposeDesc(ref list)); } }