////////////////////////////////
//CPHOTOクラス（based on GDI+）
//Copyright (c) 2022 by Ysama
//GDI+を使ったイメージファイル
//注意：GDI+のヘッダーの取込み、
//GdiplusStartupによる初期化や、
//GdiplusShutdownの終了処理は、
//上位プログラムで行う。
////////////////////////////////
class CPHOTO
{
public:
	//メンバー変数
	char* m_FName = 0;				//フルパスファイル名用ポインター
	char* m_Comment = 0;			//コメント文字列用ポインター
	//メンバー関数
	~CPHOTO();						//デストラクター
	void SetPhoto(char*, char*);	//イメージを設定する
	void SetComment(char*);			//コメントを設定する
	void Delete();					//メンバー変数メモリーを解放し、初期化する
};

//デストラクター
CPHOTO::~CPHOTO() {

	Delete();	//メモリーを解放する
}

//イメージを設定する
void CPHOTO::SetPhoto(char* fn, char* cmt = "") {

	//既に設定されている場合再初期化
	if(m_FName)
		Delete();
	//ファイル名の記録
	m_FName = new char[lstrlen(fn) + 1];
	lstrcpy(m_FName, fn);
	//コメントの記録
	SetComment(cmt);
	//ファイル名のワイド文字化
}

//コメントを設定する
void CPHOTO::SetComment(char* cmt) {

	//既に設定されている場合
	if(m_Comment)
		delete [] m_Comment;
	m_Comment = new char[lstrlen(cmt) + 1];
	lstrcpy(m_Comment, cmt);
}

//メンバー変数メモリーを解放し、初期化する
void CPHOTO::Delete() {

	//メンバー変数のメモリーを解放
	if(m_FName) {
		delete [] m_FName;
		m_FName = 0;
	}
	if(m_Comment) {
		delete [] m_Comment;
		m_Comment = 0;
	}
}
