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

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCDLGクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CDLG
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(WCHAR* 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();
	//ウィンドウメッセージ関連
	CMDTABLE						//CMyWndクラスのOnCommand()関数宣言
	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クラスのインスタンスとOnCommand関数(マクロ）の作成
////////////////////////////////////////////////////////////////////////
CMyWnd TextToSpeech(L"TextToSpeech");	//ウィンドウクラスインスタンスの生成

//CMyWndクラスのOnCommand()関数定義
BEGIN_CMDTABLE(CMyWnd)
	//メニュー項目、ダイアログコントロール関連
	ON(IDC_SEL, OnSelect())
	ON(IDM_INPUT, OnInput())
	ON(IDM_CLIP, OnClip())
	ON(IDM_OPEN, OnOpen())
	ON(IDM_SAVE, OnSave())
	ON(IDM_EXIT, OnExit())
	ON(IDM_READ, OnRead())
	ON(IDM_STOP, OnStop())
	ON(IDM_CONTINUE, OnContinue())
	ON(IDM_HELP, OnHelp())
	ON(IDM_VERSION, OnVersion())
END_CMDTABLE

///////////////////
//ツールバーの作成
///////////////////
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);
	CMDTABLE	//CMyWndクラスのOnCommand()関数宣言
	bool OnIdok();
};

////////////////////////////////////////////////////////////////////////////
// DISPLAYDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
////////////////////////////////////////////////////////////////////////////
DISPLAYDLG displaydlg;

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

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

////////////////////////////////////////////////////////////////////////////
// VERSIONDLGクラスダイアログ変数の生成とそのコールバック関数（マクロ）を定義
////////////////////////////////////////////////////////////////////////////
VERSIONDLG versiondlg;

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