[C#][Tips][File] INIファイル

namespace libFILE_Ini
{
    //###########################
    /// [static]
    //###########################
    public static class clsProcS
    {
        //■□■□■□■□■□■□■□■□■□
        //■ DLL
        //■ 
        //■□■□■□■□■□■□■□■□■□
        //******************************************************************
        /// 
        //******************************************************************
        [DllImport("KERNEL32.DLL")]
        public static extern uint
            GetPrivateProfileString(
                                    string lpAppName,
                                    string lpKeyName, string lpDefault,
                                    StringBuilder lpReturnedString, uint nSize,
                                    string lpFileName
                                    );

        //******************************************************************
        /// 
        //******************************************************************
        [DllImport("KERNEL32.DLL", EntryPoint = "GetPrivateProfileStringA")]
        public static extern uint
            GetPrivateProfileStringByByteArray(
                                                string lpAppName,
                                                string lpKeyName, 
                                                string lpDefault,
                                                byte[] lpReturnedString, 
                                                uint nSize,
                                                string lpFileName
                                                );

        //******************************************************************
        /// 
        //******************************************************************
        [DllImport("KERNEL32.DLL")]
        public static extern uint
            GetPrivateProfileInt(
                                string lpAppName,
                                string lpKeyName, 
                                int nDefault, 
                                string lpFileName
                                );

        //******************************************************************
        /// 
        //******************************************************************
        [DllImport("KERNEL32.DLL")]
        public static extern uint WritePrivateProfileString(
                                                            string lpAppName,
                                                            string lpKeyName,
                                                            string lpString,
                                                            string lpFileName
                                                            );

        //■□■□■□■□■□■□■□■□■□
        //■ 
        //■□■□■□■□■□■□■□■□■□
        //******************************************************************
        /// 
        //******************************************************************
        public class clsINI_GetParam
        {
            public string sSection;
            public string sKey;
        }

        //******************************************************************
        /// 
        //******************************************************************
        public class clsINI_SetParam
        {
            public string sSection;
            public string sKey;
            public string sData;
        }

        //■□■□■□■□■□■□■□■□■□
        //■ 
        //■□■□■□■□■□■□■□■□■□
        //******************************************************************
        /// INIデータ取得
        //******************************************************************
        public static string mGetIniData(string strIniFile_fp, clsINI_GetParam INI_GetParam)
        {
            //==================================================
            // iniファイルから文字列を取得
            //==================================================
            StringBuilder sb = new StringBuilder(1024);
            GetPrivateProfileString(
                                    INI_GetParam.sSection,           // セクション名
                                    INI_GetParam.sKey,               // キー名    
                                    "",                             // 値が取得できなかった場合に返される初期値
                                    sb,                             // 格納先
                                    Convert.ToUInt32(sb.Capacity),  // 格納先のキャパ
                                    strIniFile_fp);                          // iniファイル名

            //==================================================
            // RETURN
            //==================================================
            return sb.ToString();
        }

        //******************************************************************
        /// INIデータ設定
        //******************************************************************
        public static uint mSetIniData(string strIniFile_fp, clsINI_SetParam INI_SetParam)
        {
            //==================================================
            //  ファイル
            //==================================================
            return WritePrivateProfileString(
                                            INI_SetParam.sSection,     // セクション名
                                            INI_SetParam.sKey,         // キー名
                                            INI_SetParam.sData,        // 書き込む値
                                            strIniFile_fp);           // iniファイル名

            //if (ret == 0)
            //    MessageBox.Show("失敗");
            //else
            //    MessageBox.Show("成功");
        }
    }