//////////////////////////////////////////
// BatchGood.h
// Copyright (c) 12/24/2020 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResBatchGood.h"

///////////////////////////////////////////
// CDLGクラスからBATCHGOODDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class BATCHGOODDLG : public CDLG {
public:
	//メンバー変数
	int m_Width;		//ダイアログクライアントエリア幅
	int m_Height;		//ダイアログクライアントエリア高さ
	//２重起動防止用のMutex用ID名称
	BATCHGOODDLG(char* UName) : CDLG(UName) {}
	bool OnOpen();
	bool OnClosed();
	bool OnDetail();
	bool OnBCCOption(WPARAM, LPARAM);
	bool OnBRCOption(WPARAM, LPARAM);
	bool On_Open();
	bool OnExit();
	bool OnMakebatch();
	bool OnBatchedit();
	bool OnRun();
	bool OnSetting();
	bool OnHelp();
	bool OnOption();
	bool OnVersion();
	//ウィンドウメッセージ関連
	bool OnInit(WPARAM, LPARAM);
	bool OnNotify(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	bool OnDestroy(WPARAM, LPARAM);
	bool OnDropFiles(WPARAM, LPARAM);
	bool OnMinMax(WPARAM, LPARAM);
};

//////////////////////////////////////////////////////////////////////////////
// BATCHGOODDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
// 複数同一クラスのダイアログを作成することを予期してコールバック関数を明記
//////////////////////////////////////////////////////////////////////////////
BATCHGOODDLG BatchGood("BatchGood");	//ダイアログクラスインスタンスの生成

BEGIN_MODELESSDLGMSG(BatchGoodProc, BatchGood)	//第1引数がコールバック関数の名前
	ON_COMMAND(BatchGood, IDC_OPEN, OnOpen())
	ON_COMMAND(BatchGood, IDC_CLOSE, OnClosed())
	ON_COMMAND(BatchGood, IDC_DETAIL, OnDetail())
	ON_COMMAND(BatchGood, IDC_BCC32OPTION, OnBCCOption(wParam, lParam))
	ON_COMMAND(BatchGood, IDC_BRC32OPTION, OnBRCOption(wParam, lParam))
	ON_COMMAND(BatchGood, IDM_OPEN, On_Open())
	ON_COMMAND(BatchGood, IDM_CLOSED, OnClosed())
	ON_COMMAND(BatchGood, IDM_EXIT, OnExit())
	ON_COMMAND(BatchGood, IDM_MAKEBATCH, OnMakebatch())
	ON_COMMAND(BatchGood, IDM_BATCHEDIT, OnBatchedit())
	ON_COMMAND(BatchGood, IDM_RUN, OnRun())
	ON_COMMAND(BatchGood, IDM_SETTING, OnSetting())
	ON_COMMAND(BatchGood, IDM_HELP, OnHelp())
	ON_COMMAND(BatchGood, IDM_OPTION, OnOption())
	ON_COMMAND(BatchGood, IDM_VERSION, OnVersion())
	//ウィンドウメッセージ関連
	//自動的にダイアログ作成時にOnInit()、終了時にOnClose()を呼びます
	ON_SIZE(BatchGood)
	ON_DESTROY(BatchGood)
	ON_(BatchGood, WM_DROPFILES, OnDropFiles(wParam, lParam))
	ON_(BatchGood, WM_GETMINMAXINFO, OnMinMax(wParam, lParam))
END_DLGMSG

///////////////////////////////////////////
// CDLGクラスからDETAILDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class DETAILDLG : public CDLG {
public:
	bool OnInit(WPARAM, LPARAM);
	bool OnInclbtn();
	bool OnIdok();
	bool OnCancel();
};

////////////////////////////////////////////////////////////////////////////
// DETAILDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
// 複数同一クラスのダイアログを作成することを予期してコールバック関数を明記
////////////////////////////////////////////////////////////////////////////
DETAILDLG detaildlg;

BEGIN_MODALDLGMSG(detaildlgProc, detaildlg)	//第1引数がコールバック関数の名前
	ON_COMMAND(detaildlg, IDC_INCLBTN, OnInclbtn())
	ON_COMMAND(detaildlg, IDOK, OnIdok())
	ON_COMMAND(detaildlg, IDCANCEL, OnCancel())
END_DLGMSG

///////////////////////////////////////////
// CDLGクラスからSETUPDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class SETUPDLG : public CDLG {
public:
	bool OnInit(WPARAM, LPARAM);
	bool OnBccbtn();
	bool OnBrcbtn();
	bool OnEditbtn();
	bool OnIdok();
	bool OnCancel();
};

////////////////////////////////////////////////////////////////////////////
// SETUPDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
// 複数同一クラスのダイアログを作成することを予期してコールバック関数を明記
////////////////////////////////////////////////////////////////////////////
SETUPDLG setupdlg;

BEGIN_MODALDLGMSG(setupdlgProc, setupdlg)	//第1引数がコールバック関数の名前
	ON_COMMAND(setupdlg, IDC_BCCBTN, OnBccbtn())
	ON_COMMAND(setupdlg, IDC_BRCBTN, OnBrcbtn())
	ON_COMMAND(setupdlg, IDC_EDITBTN, OnEditbtn())
	ON_COMMAND(setupdlg, IDOK, OnIdok())
	ON_COMMAND(setupdlg, IDCANCEL, OnCancel())
END_DLGMSG

///////////////////////////////////////////
// CDLGクラスからHELPDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class HELPDLG : public CDLG {
public:
	bool OnInit(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnIdok();
	bool OnCancel();
};

////////////////////////////////////////////////////////////////////////////
// HELPDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
// 複数同一クラスのダイアログを作成することを予期してコールバック関数を明記
////////////////////////////////////////////////////////////////////////////
HELPDLG helpdlg;

BEGIN_MODALDLGMSG(helpdlgProc, helpdlg)	//第1引数がコールバック関数の名前
	ON_SIZE(helpdlg)
	ON_COMMAND(helpdlg, IDOK, OnIdok())
	ON_COMMAND(helpdlg, IDCANCEL, OnCancel())
END_DLGMSG

///////////////////////////////////////////
// CDLGクラスからVERSIONDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class VERSIONDLG : public CDLG {
public:
	bool OnInit(WPARAM, LPARAM);
	bool OnIdok();
};

////////////////////////////////////////////////////////////////////////////
// VERSIONDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
// 複数同一クラスのダイアログを作成することを予期してコールバック関数を明記
////////////////////////////////////////////////////////////////////////////
VERSIONDLG versiondlg;

BEGIN_MODALDLGMSG(versiondlgProc, versiondlg)	//第1引数がコールバック関数の名前
	ON_COMMAND(versiondlg, IDOK, OnIdok())
END_DLGMSG

///////////////////
//ツールバーの作成
///////////////////
CTBAR TBar;

///////////////////////
//ステータスバーの作成
///////////////////////
CSBAR SBar;

////////////////////////
//コモンダイアログの作成
////////////////////////
CMNDLG cmndlg;

/////////////////////////////
//コマンドラインクラスの作成
/////////////////////////////
CARG Arg;

//////////////////////////////
//iniファイル作成クラスの作成
//////////////////////////////
CINI Ini;

////////////////////////
//CTREEVIEWクラスの作成
////////////////////////
CTREEVIEW tv(16, 16, 5, ILC_COLOR4 | ILC_MASK, 0);	//ビットマップサイズと個数

///////////////////////
//CCMDEDITクラスの作成
///////////////////////
CCMDEDIT ce(64);	//エディットコントロール用に64Kバイトのバッファーを確保