Пример #1
0
        /// <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;
	    }