//////////////////////////////////////////
// TradFiler.h
// Copyright (c) 05/13/2020 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResTradFiler.h"
//CHISTORYのヘッダー
//#include	"CHISTORY.h"

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

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

BEGIN_SDIMSG(TradFiler)	//ダイアログと違い、コールバック関数名を特定しない
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(TradFiler, IDM_EXE, OnExe())
	ON_COMMAND(TradFiler, IDM_DEL, OnDel())
	ON_COMMAND(TradFiler, IDM_CUT, OnCut())
	ON_COMMAND(TradFiler, IDM_COPY, OnCopy())
	ON_COMMAND(TradFiler, IDM_RENAME, OnRename())
	ON_COMMAND(TradFiler, IDM_EXIT, OnExit())
	ON_COMMAND(TradFiler, IDM_VERSION, OnVersion())
	//特殊なメッセージ処理
	ON_(TradFiler, WM_COMMAND, OnDefault(wParam))
	//ウィンドウメッセージ関連
	ON_CREATE(TradFiler)
	ON_NOTIFY(TradFiler)
	ON_SIZE(TradFiler)
	ON_CLOSE(TradFiler)
END_WNDMSG

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

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

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

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

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

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

///////////////////////////////////
//CTREEVIEWクラスオブジェクトの宣言
///////////////////////////////////
CTREEVIEW tv(16, 16, 16, ILC_COLOR4 | ILC_MASK, 0);	//ビットマップサイズと個数（2021年11月21日修正）
LONG g_Style;					//Window Style用変数

///////////////////////////////////
//外部変数の宣言
///////////////////////////////////
//ツリービュ―用
HTREEITEM g_hRoot = 0;
HTREEITEM g_hSelected = 0;
CSTR g_Root = "C:";		//ルートのドライブ、フォールダーの初期化
CSTR g_SelectedFile;	//選択されたファイルのパス、ファイル名
//履歴（CHISTORY）用
CHISTORY history;		//CHISTORY変数
char g_CmdLine[MAX_PATH];	//lpszCmdLineの保存用
