//////////////////////////////////////////
// Renamer.h
// Copyright (c) 05/06/2020 by ECCSkelton
//////////////////////////////////////////
//ECCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"ECCSkelton.h"
//リソースIDのヘッダー
#include	"ResRenamer.h"

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCDLGクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CDLG
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(WCHAR* UName) : CDLG(UName) {}
	//メニュー項目、ダイアログコントロール関連
	bool OnSelect();
	bool OnListBox(WPARAM);
	bool OnReplace();
	bool OnSerial();
	bool OnHelp();
	bool OnExit();
	bool OnDel();
	bool OnAdd();
	//ウィンドウメッセージ関連
	CMDTABLE		//OnCommand()関数宣言
	bool OnInit(WPARAM, LPARAM);
	bool OnDropFiles(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	bool OnDestroy(WPARAM, LPARAM);
	//ユーザー定義関数
	WCHAR** GetPathName(WCHAR*);
	void RenewListBox();
	bool MakeOrgFileList(WCHAR*);
	bool CheckList();
};

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

BEGIN_CMDTABLE(CMyWnd)	//クラス名がCMyWndではない場合、クラス名、テーブルを適宜マニュアルで修正してください
	//メニュー項目、ダイアログコントロール関連
	ON(IDC_SELECT, OnSelect())
	ON(IDC_LISTBOX, OnListBox(wParam))
	ON(IDC_REPLACE, OnReplace())
	ON(IDC_SERIAL, OnSerial())
	ON(IDC_HELP, OnHelp())
	ON(IDOK, OnExit())
	ON(IDM_DEL, OnDel())
	ON(IDM_ADD, OnAdd())
END_CMDTABLE

///////////////////////////////////////////
// CDLGクラスからSUBDLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class SUBDLG : public CDLG {
public:
	//メニュー項目、ダイアログコントロール関連
	virtual bool OnPreview();
	bool OnOk();
	bool OnCancel();
	//ウィンドウメッセージ関連
	CMDTABLE		//OnCommand()関数宣言
	virtual bool OnInit(WPARAM, LPARAM);
	//ユーザー定義関数
	WCHAR* InstrRep(WCHAR*, WCHAR*, WCHAR*, WCHAR*);
};

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

BEGIN_CMDTABLE(SUBDLG)	//クラス名がCMyWndではない場合、クラス名、テーブルを適宜マニュアルで修正してください
	//メニュー項目、ダイアログコントロール関連
	ON(IDC_PREVIEW, OnPreview())
	ON(IDOK, OnOk())
	ON(IDCANCEL, OnCancel())
END_CMDTABLE

///////////////////////////////////////////
// CDLGクラスからSUB2DLGクラスを派生
// 複数の同一ダイアログ変数とダイアログも作
// れるが、一つのダイアログに一つの派生ダイ
// アログクラスを作成するのが基本
///////////////////////////////////////////
class SUB2DLG : public SUBDLG {
public:
	//ウィンドウメッセージ関連
	bool OnPreview();
	bool OnInit(WPARAM, LPARAM);
	//ユーザー定義関数
};

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