//------------------------------------------
// CINI Class - 簡易*.iniファイル利用クラス
// Copyright (c) 2002, K. Yoshida
//------------------------------------------

class CINI
{
private:
	char m_FileName[MAX_PATH];	//*.iniファイルのファイルパス、名

public:
	CINI();								//コンストラクター
	CINI(char*);						//*.iniファイルパス、名付コンストラクター
	void SetName(char*);				//*.iniファイルパス、名設定
	void SetNameOnly(char*);			//Windowsのあるパスへの*.iniファイル名設定
	char* ReadStr(char*, char*);		//*.iniファイルからの読み込み
	void WriteStr(char*, char*, char*);	//*.iniファイルへの書き込み
	int ReadInt(char*, char*);			//*.iniファイルからの読み込み
	void WriteInt(char*, char*, int);	//*.iniファイルへの書き込み
};

//コンストラクター
CINI::CINI() {

	*m_FileName = NULL;
}

//*.iniファイルパス、名付コンストラクター
CINI::CINI(char* FilePathName) {

	lstrcpy(m_FileName, FilePathName);
}

//*.iniファイルパス、名設定
void CINI::SetName(char* FilePathName) {

	lstrcpy(m_FileName, FilePathName);
}

//Windowsのあるパスへの*.iniファイル名設定
void CINI::SetNameOnly(char* FileName) {

	char WinPath[MAX_PATH];
	GetWindowsDirectory(WinPath, MAX_PATH);
	lstrcpy(m_FileName, WinPath);
	lstrcat(m_FileName, "\\");
	lstrcat(m_FileName, FileName);
}

//*.iniファイルからの読み込み
char* CINI::ReadStr(char* Title, char* Name) {

	static char Buff[MAX_PATH * 4];
	if(GetPrivateProfileString(Title, Name, "Not Found", Buff, MAX_PATH * 4, m_FileName) > 0)
		return Buff;
	else
		return NULL;
}

//*.iniファイルへの書き込み
void CINI::WriteStr(char* Title, char* Name, char* Data) {

	WritePrivateProfileString(Title, Name, Data, m_FileName);
}

//*.iniファイルからの読み込み
int CINI::ReadInt(char* Title, char* Name) {

	return GetPrivateProfileInt(Title, Name, 0, m_FileName);
}

//*.iniファイルへの書き込み
void CINI::WriteInt(char* Title, char* Name, int Data) {

	char Buff[MAX_PATH];
	itoa(Data, Buff, 10);
	WritePrivateProfileString(Title, Name, Buff, m_FileName);
}
