public AttributeList(Attribute a) { IntPtr nameAnsi = Utility.StringToAnsiIntPtr(a.GetName()); IntPtr valueAnsi = Utility.StringToAnsiIntPtr(a.GetValue()); cAttrList = UnmanagedNewFromAttribute(Attribute.UnmanagedNew(nameAnsi, valueAnsi, a.GetWeight())); Memory.LocalFree(nameAnsi); Memory.LocalFree(valueAnsi); if (cAttrList == IntPtr.Zero) { throw new AttributeNullPtrException(); } }
public ulong Add(Attribute a) { Debug.WriteLine("Adding new attribute:" + a.ToString()); IntPtr nameAnsi = Utility.StringToAnsiIntPtr(a.GetName()); IntPtr valueAnsi = Utility.StringToAnsiIntPtr(a.GetValue()); UInt32 size = UnmanagedAddAttribute(cAttrList, Attribute.UnmanagedNew(nameAnsi, valueAnsi, a.GetWeight())); Memory.LocalFree(nameAnsi); Memory.LocalFree(valueAnsi); Debug.WriteLine("Added attribute " + a.ToString() + ". New size=" + size); return(size); }