public static void plist_dict_next_item(PlistHandle node, PlistDictIterHandle iter, out string key, out PlistHandle val) { System.Runtime.InteropServices.ICustomMarshaler keyMarshaler = NativeStringMarshaler.GetInstance(null); System.IntPtr keyNative = System.IntPtr.Zero; PlistNativeMethods.plist_dict_next_item(node, iter, out keyNative, out val); key = ((string)keyMarshaler.MarshalNativeToManaged(keyNative)); keyMarshaler.CleanUpNativeData(keyNative); }
/// <summary> /// Increment iterator of a #PLIST_DICT node. /// </summary> /// <param name="node"> /// The node of type #PLIST_DICT /// </param> /// <param name="iter"> /// Iterator of the dictionary /// </param> /// <param name="key"> /// Location to store the key, or NULL. The caller is responsible /// for freeing the the returned string. /// </param> /// <param name="val"> /// Location to store the value, or NULL. The caller must *not* /// free the returned value. Will be set to NULL when no more /// key/value pairs are left to iterate. /// </param> public virtual void plist_dict_next_item(PlistHandle node, PlistDictIterHandle iter, out string key, out PlistHandle val) { PlistNativeMethods.plist_dict_next_item(node, iter, out key, out val); val.Api = this.Parent; }