//////////////////////////////////////////
// Dump.h
// Copyright (c) 03/04/2021 by BCCSkelton
//////////////////////////////////////////
//BCCSkeltonのヘッダー−これに必要なヘッダーが入っている
#include	"BCCSkelton.h"
//リソースIDのヘッダー
#include	"ResDump.h"
//1行16バイト表示に4（'XXXX'）+ 1（' '）+ 24（'XX '）+ 1（':'）+ 24（'XX '+ 1（':'）+ 16 = 71バイト必要
//エディットボックスの最大値
#define		EDITMAX	32767
//エディットボックスの最大文字数初期値は 32767バイト
//出力一行は4（アドレス）+ 1（スペース）+ 24（数字X2+スペース）+ 1(区切り:）
//+ 24（数字X2+スペース）+ 1(区切り:）+ 16(文字表示）+'CRLF'2 = 73バイトで
//448行迄出力可となることから、7,168バイトを読み出し単位とする。
#define		PAGE	7168

/////////////////////////////////////////////////////////////////////
//CMyWndクラスをCDLGクラスから派生させ、メッセージ用の関数を宣言する
/////////////////////////////////////////////////////////////////////
class CMyWnd : public CDLG
{
public:	//以下はコールバック関数マクロと関連している
	//２重起動防止用のMutex用ID名称
	CMyWnd(char* UName) : CDLG(UName) {}
	//メンバー変数
	char* m_FileName;			//ファイル名
	CFILE m_File;				//ファイルクラス変数
	CSTR m_Buff;				//エディットコントロール用文字列バッファ
	int m_LastPage;				//最大ページ数
	int m_Page;					//表示ページ数
	HBITMAP m_hBmp[4];			//ページ移動ボタン用ビットマップ
	//メニュー項目、ダイアログコントロール関連
	bool OnFile();
	bool OnTop();
	bool OnBefore();
	bool OnNext();
	bool OnBottom();
	bool OnIdok();
	//ウィンドウメッセージ関連
	bool OnInit(WPARAM, LPARAM);
	bool OnSize(WPARAM, LPARAM);
	bool OnClose(WPARAM, LPARAM);
	bool OnDestroy(WPARAM, LPARAM);
	bool OnDropFiles(WPARAM, LPARAM);
	//ユーザー定義関数
	bool SetPage(int);
	bool ShowData(int);
	bool ChangeTopStatus(bool);
	bool ChangeBottomStatus(bool);
	bool GoMiddle(WPARAM);
};

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

BEGIN_MODELESSDLGMSG(ModelessProc, Dump)	//コールバック関数名は主ウィンドウの場合ModelessProcにしている
	//メニュー項目、ダイアログコントロール関連
	ON_COMMAND(Dump, IDC_FILE, OnFile())
	ON_COMMAND(Dump, IDC_TOP, OnTop())
	ON_COMMAND(Dump, IDC_BEFORE, OnBefore())
	ON_COMMAND(Dump, IDC_NEXT, OnNext())
	ON_COMMAND(Dump, IDC_BOTTOM, OnBottom())
	ON_COMMAND(Dump, IDOK, OnIdok())
	//ウィンドウメッセージ関連
	//自動的にダイアログ作成時にOnInit()、終了時にOnClose()を呼びます
	ON_SIZE(Dump)
	ON_COMMAND(Dump, IDC_PAGE, GoMiddle(wParam))
	ON_DESTROY(Dump)
	ON_(Dump, WM_DROPFILES, OnDropFiles(wParam, lParam))
END_DLGMSG

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

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

////////////////////////
//CARGインスタンスの作成
////////////////////////
CARG arg;

////////////////
//グローバル変数
////////////////
//システム関連
bool g_ByFile = FALSE;	//ファイルドロップによる起動フラグ
