/*-----------------------------------------------------------------------------
[名称]	ProgressDlg.h
[概要]	進捗ダイアログクラスのヘッダ
[備考]	なし
[履歴]	2003-03-11	NC		新規作成(moralog)
		2003-03-25 b031130	Grep機能追加(moralog)
-----------------------------------------------------------------------------*/
#if !defined(AFX_PROGRESSDLG_H_INCLUDED_)
#define AFX_PROGRESSDLG_H_INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000


/*-----------------------------------------------------------------------------
[名称]	進捗ダイアログクラス
[用途]	進捗状態を表示するダイアログ。
[備考]	モードレスで使用する。
-----------------------------------------------------------------------------*/
class CProgressDlg : public CDialog
{
// コンストラクション
public:
	// 生成
	CProgressDlg(CWnd* pParent = NULL);   // 標準のコンストラクタ

// ▼ (3367) BGN 2004.03.13 (moralog)
	// 子スレッド開始に伴う初期化
	void Run();
// ▲ (3367) END

	// 進捗／完了／停止通知
	void NotifyProgress( int iPercent );
// ▼ (3367) BGN 2004.03.13 (moralog)
	void NotifyComplete();
	void NotifyStop();
// ▲ (3367) END

	// 表示
	void Show();

	// 非表示
	void Hide();

// ▼ (3367) BGN 2004.03.13 (moralog)
	// 状態確認
	BOOL IsRunnning(){ return( m_bRunning ); };
	BOOL IsAbort(){ return( m_bAbort ); };
// ▲ (3367) END

// ダイアログ データ
	//{{AFX_DATA(CProgressDlg)
	enum { IDD = IDD_PROGRESS };
	CStatic	m_Percent;
	CProgressCtrl	m_barProgress;
	//}}AFX_DATA


// オーバーライド
	// ClassWizard は仮想関数のオーバーライドを生成します。
	//{{AFX_VIRTUAL(CProgressDlg)
	protected:
	virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV サポート
	//}}AFX_VIRTUAL

// インプリメンテーション
protected:
// ▼ (3367) BGN 2004.03.13 (moralog)
	BOOL			m_bInitialized;		// 初期化フラグ [-] (TRUE:初期化済み、FALSE:未初期化)
	BOOL			m_bAbort;			// 停止要求 [-] (TRUE:あり、FALSE:なし）
	volatile BOOL	m_bRunning;			// 子スレッド実行中 [-] (TRUE:実行中、FALSE:停止）
// ▲ (3367) END

	// 生成されたメッセージ マップ関数
	//{{AFX_MSG(CProgressDlg)
	virtual BOOL OnInitDialog();
	afx_msg void OnProgressStop();
	//}}AFX_MSG
	DECLARE_MESSAGE_MAP()
};

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ は前行の直前に追加の宣言を挿入します。

#endif // !defined(AFX_PROGRESSDLG_H_INCLUDED_)
