//////////////////////////////////////////
// FileNameCleaner.h
// Copyright (c) 05/06/2020 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResFileNameCleaner.h"
//ワイド文字を使用する
#include <wchar.h>
//ワイド文字対応wsprintfW使用の為
#include <winuser.h>
//ワイド文字対応StrStrW使用の為
#include <shlwapi.h>
//ワイド文字対応CSTRWクラス
#include "CSTRW.h"
//ワイド文字対応CMNDLGWクラス
#include "CMNDLGW.h"
//最小ウィンドウ幅、高さ初期値
#define		MINW	480
#define		MINH	270

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCDLGクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CDLG
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(char* UName) : CDLG(UName) {}
	//メンバー変数
	int m_Width;		//ダイアログクライアントエリア幅
	int m_Height;		//ダイアログクライアントエリア高さ
	//メニュー項目、ダイアログコントロール関連
	bool OnSelect();
	bool OnOk();
	//ウィンドウメッセージ関連
	bool OnInit(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	bool OnDestroy(WPARAM, LPARAM);
	bool OnMinMax(WPARAM, LPARAM);
	//ユーザー関数関連
	bool CheckName(WCHAR*);
	bool CheckFiles(WCHAR*);
	bool ShellRename(WCHAR*, WCHAR*);
};

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

BEGIN_MODELESSDLGMSG(ModelessProc, FileNameCleaner)	//コールバック関数名は主ウィンドウの場合ModelessProcにしている
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(FileNameCleaner, IDC_SELECT, OnSelect())
	ON_COMMAND(FileNameCleaner, IDOK, OnOk())
	//自動的にダイアログ作成時にOnInit()、終了時にOnClose()を呼びます
	ON_SIZE(FileNameCleaner)
	ON_DESTROY(FileNameCleaner)
	ON_(FileNameCleaner, WM_GETMINMAXINFO, OnMinMax(wParam, lParam))
END_DLGMSG

////////////////////////
//コモンダイアログの作成
////////////////////////
CMNDLGW g_Cmndlg;

//////////////////////////////
//フォールダー、ファイル名関連
//////////////////////////////
WCHAR g_Path[MAX_PATH];
WCHAR g_Original[MAX_PATH];
WCHAR g_Cleaned[MAX_PATH];
CSTRW g_OriginalList;
CSTRW g_CleanedList;
