/*-----------------------------------------------------------------------------
[名称]	ReplacerProgressDlg.h
[概要]	置換進捗ダイアログクラスのヘッダ
[備考]	なし
[履歴]	2003-03-03	NC		新規作成(moralog)
-----------------------------------------------------------------------------*/


//-----------------------------------------------------------------------------
// インクルード
//-----------------------------------------------------------------------------
#if !defined(AFX_REPLACERPROGRESSDLG_H_INCLUDED_)
#define AFX_REPLACERPROGRESSDLG_H_INCLUDED_

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


/*-----------------------------------------------------------------------------
[名称]	置換進捗ダイアログクラス
[用途]	置換処理中に表示する進捗ダイアログ。
[備考]	親スレッドでダイアログをモードレス表示し、
		子スレッドを立て、
		子スレッドは完了／停止通知をし、
		親スレッドはダイアログを非表示にする（殺す）
-----------------------------------------------------------------------------*/
class CReplacerProgressDlg : public CDialog
{
// コンストラクション
public:
	CReplacerProgressDlg(CWnd* pParent = NULL);   // 標準のコンストラクタ

	// 子スレッド開始に伴う初期化
	void Run();

	// 進捗／完了／停止通知
	void NotifyProgress( int iPercent );
	void NotifyComplete( int nReplaced );
	void NotifyStop( int nReplaced );

	// 置換個数取得
	int	GetReplacedCount(){ return( m_nReplaced ); };

	// 状態確認
	BOOL IsRunnning(){ return( m_bRunning ); };
	BOOL IsAbort(){ return( m_bAbort ); };

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


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

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

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

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

#endif // !defined(AFX_REPLACERPROGRESSDLG_H_INCLUDED_)
