public void PopulateMimeData(QMimeData mimeData, Dictionary <string, string> metaData, KUrl.MimeDataFlags flags) { int i = 0; SmokeMarshallers.NoArgs listfn = delegate() { if (i >= Count) { return(IntPtr.Zero); } return((IntPtr)GCHandle.Alloc(this[i++])); }; IDictionaryEnumerator e = metaData.GetEnumerator(); GetNextDictionaryEntryFn dictfn = delegate(ref string key, ref string value) { if (!e.MoveNext()) { return(false); } key = (string)e.Key; value = (string)e.Value; return(true); }; KUrlListPopulateMimeData(listfn, (IntPtr)GCHandle.Alloc(mimeData), dictfn, (uint)flags); }
static extern void KUrlListPopulateMimeData(SmokeMarshallers.NoArgs getNextItem, IntPtr mimeData, GetNextDictionaryEntryFn getNextDictionaryEntry, uint flags);