//////////////////////////////////////////
// Command.h
// Copyright (c) 11/15/2021 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResCommand.h"
//ツールヒントコントロールヘッダー
#include	"ToolTip.h"

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCDLGクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CDLG
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(char* UName) : CDLG(UName) {}
	//メンバー変数
	char m_CPath[MAX_PATH];
	CSTR m_Cmd;
	CSTR m_Log;
	//メニュー項目、ダイアログコントロール関連
	bool OnCd();
	bool OnExe();
	bool OnDir();
	bool OnCmd();
	bool OnPs();
	bool OnIdok();
	bool OnCancel();
	//ウィンドウメッセージ関連
	bool OnInit(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	bool OnDestroy(WPARAM, LPARAM);
};

////////////////////////////////////////////////////////////////////////
//派生させたCMyWndクラスのインスタンスとコールバック関数(マクロ）の作成
//主ウィンドウはダイアログと違い、コールバック関数は一つしか作れない
////////////////////////////////////////////////////////////////////////
CMyWnd Command("Command");	//ウィンドウクラスインスタンスの生成

BEGIN_MODELESSDLGMSG(ModelessProc, Command)	//コールバック関数名は主ウィンドウの場合ModelessProcにしている
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(Command, IDC_CD, OnCd())
	ON_COMMAND(Command, IDC_DIR, OnDir())
	ON_COMMAND(Command, IDC_EXE, OnExe())
	ON_COMMAND(Command, IDC_CMD, OnCmd())
	ON_COMMAND(Command, IDC_PS, OnPs())
	ON_COMMAND(Command, IDOK, OnIdok())
	ON_COMMAND(Command, IDCANCEL, OnCancel())
	//ウィンドウメッセージ関連
	ON_DESTROY(Command)
END_DLGMSG

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

///////////////////////////////////////////
// CDLGクラスからEXEDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class EXEDLG : public CDLG {
public:
	//メンバー変数（ダイアログの幅と高さ
	int m_Width;		//クライアントエリアの幅記録用
	int m_Height;		//クライアントエリアの高さ記録用
	CSTR m_FileName;	//実行ファイルのパス、名
	//ウィンドウコントロール関連
	bool OnFile1();
	bool OnFile2();
	bool OnFile3();
	bool OnFile4();
	bool OnDone();
	bool OnIdok();
	bool OnCancel();
	//ウィンドウメッセージ関連
	bool OnInit(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnMinMax(WPARAM, LPARAM);
};

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

BEGIN_MODALDLGMSG(exedlgProc, exedlg)	//第1引数がコールバック関数の名前
	ON_COMMAND(exedlg, IDC_FILE1, OnFile1())
	ON_COMMAND(exedlg, IDC_FILE2, OnFile2())
	ON_COMMAND(exedlg, IDC_FILE3, OnFile3())
	ON_COMMAND(exedlg, IDC_FILE4, OnFile4())
	ON_COMMAND(exedlg, IDC_DONE, OnDone())
	ON_COMMAND(exedlg, IDOK, OnIdok())
	ON_COMMAND(exedlg, IDCANCEL, OnCancel())
	ON_SIZE(exedlg)
	ON_(exedlg, WM_GETMINMAXINFO, OnMinMax(wParam, lParam))
END_DLGMSG

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

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