//////////////////////////////////////////
// TextToSpeech.h
// Copyright (c) 11/19/2020 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResTextToSpeech.h"

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCDLGクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CDLG
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(char* UName) : CDLG(UName) {}
	//メニュー項目、ダイアログコントロール関連
	bool OnSelect();
	bool OnInput();
	bool OnClip();
	bool OnOpen();
	bool OnSave();
	bool OnExit();
	bool OnRead();
	bool OnStop();
	bool OnContinue();
	bool OnHelp();
	bool OnVersion();
	//ウィンドウメッセージ関連
	bool OnInit(WPARAM, LPARAM);
	bool OnDropFiles(WPARAM);
	bool OnRButtonUp(WPARAM, LPARAM);
	bool OnNotify(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnHScroll(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	bool OnDestroy(WPARAM, LPARAM);
	//ユーザー定義関数
	void EnableLangAndGend(bool);
};

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

BEGIN_MODALDLGMSG(ModalProc, TextToSpeech)	//コールバック関数名はModalProcにしている
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(TextToSpeech, IDC_SEL, OnSelect())
	ON_COMMAND(TextToSpeech, IDM_INPUT, OnInput())
	ON_COMMAND(TextToSpeech, IDM_CLIP, OnClip())
	ON_COMMAND(TextToSpeech, IDM_OPEN, OnOpen())
	ON_COMMAND(TextToSpeech, IDM_SAVE, OnSave())
	ON_COMMAND(TextToSpeech, IDM_EXIT, OnExit())
	ON_COMMAND(TextToSpeech, IDM_READ, OnRead())
	ON_COMMAND(TextToSpeech, IDM_STOP, OnStop())
	ON_COMMAND(TextToSpeech, IDM_CONTINUE, OnContinue())
	ON_COMMAND(TextToSpeech, IDM_HELP, OnHelp())
	ON_COMMAND(TextToSpeech, IDM_VERSION, OnVersion())
	//ウィンドウメッセージ関連
	//自動的にダイアログ作成時にOnInit()、終了時にOnClose()を呼びます
	ON_(TextToSpeech, WM_DROPFILES, OnDropFiles(wParam))
	ON_RBUTTONUP(TextToSpeech)
	ON_NOTIFY(TextToSpeech)
	ON_SIZE(TextToSpeech)
	ON_HSCROLL(TextToSpeech)
	ON_DESTROY(TextToSpeech)
END_DLGMSG

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

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

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

/////////////////////////////
//コマンドラインクラスの作成
/////////////////////////////
CARG Arg;

//////////////////////////////////////////
//右クリックポップアップメニューのハンドル
//////////////////////////////////////////
HMENU g_hPopup;

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

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

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

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

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

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