/// <summary> /// Set a config with string value type. /// </summary> /// <param name="name">config name</param> /// <param name="value">string value</param> /// <returns>success or not</returns> private static bool SetConfig(Un4seen.Bass.BASSConfig name, string value) { string nameString = name.ToString(); if (stringHandles.ContainsKey(nameString) && stringHandles[nameString] != IntPtr.Zero) { Marshal.FreeHGlobal(stringHandles[nameString]); stringHandles.Remove(nameString); } var handle = value == null ? IntPtr.Zero : Marshal.StringToHGlobalAnsi(value); if (Un4seen.Bass.Bass.BASS_SetConfigPtr(name, handle)) { if (handle != IntPtr.Zero) { stringHandles[nameString] = handle; } return true; } if (handle != IntPtr.Zero) { Marshal.FreeHGlobal(handle); } return false; }