//////////////////////////////////////////
// FileHandler.h
//Copyright (c) 8/10/2022 by ECCSkelton
//////////////////////////////////////////
//ECCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"ECCSkelton.h"
//リソースIDのヘッダー
#include	"ResFileHandler.h"

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCSDIクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CSDI
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(WCHAR* UName) : CSDI(UName) {}
	//メニュー項目、ダイアログコントロール関連
	bool OnPopup();
	bool OnExe();
	bool OnDel();
	bool OnCut();
	bool OnCopy();
	bool OnRename();
	bool OnExit();
	bool OnVersion();
	//ウィンドウメッセージ関連
	CMDTABLE	//CMyWndクラスのOnCommand()関数宣言
	bool OnCreate(WPARAM, LPARAM);
	bool OnNotify(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	//特殊なメッセージ処理
	bool OnOthers(UINT, WPARAM, LPARAM);
	bool OnShellChange(WPARAM, LPARAM);
};

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

//特殊なメッセージ処理(既定のメッセージ以外のメッセージの場合の処理)
bool CMyWnd::OnOthers(UINT Message, WPARAM wParam, LPARAM lParam) {	//その他のメッセージ

	if(Message == WM_SHELLCHANGE)
		return OnShellChange(wParam, lParam);
}

//CMyWndクラスのOnCommand()関数定義
BEGIN_CMDTABLE(CMyWnd)
	ON(IDM_POPUP, OnPopup())
	ON(IDM_EXE, OnExe())
	ON(IDM_DEL, OnDel())
	ON(IDM_CUT, OnCut())
	ON(IDM_COPY, OnCopy())
	ON(IDM_RENAME, OnRename())
	ON(IDM_EXIT, OnExit())
	ON(IDM_VERSION, OnVersion())
END_CMDTABLE

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

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

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

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

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

//VERSIONDLGクラスのOnCommand()関数定義
BEGIN_CMDTABLE(VERSIONDLG)
	ON(IDOK, OnIdok())
END_CMDTABLE
