Newer
Older
PrismSoftware / ECTrainer2 / BaseProcess.h
#pragma once

#include <Windows.h>

class ECTrainer;


// 各処理の基本クラス
class BaseProcess
{
protected:
	ECTrainer* _pEct;
	bool _messageQueReady;	// メッセージキューの準備状況
	HANDLE _threadHandle;	// スレッドハンドル
	DWORD _threadID;		// スレッドID

	// スレッドエントリポイント
	static DWORD WINAPI ThreadEntry(LPVOID lpParameter);
	// 非メッセージ時の処理
	virtual bool Routine();
	// メッセージ処理
	virtual bool EventProc(MSG& msg);

public:
	// コンストラクタ
	BaseProcess(ECTrainer* pEct);
	// スレッド起動
	virtual bool Launch();
	// 初期化
	virtual bool Init();
	// スレッド本体(protected, 非virtual)
	virtual bool MainLoop();
	// スレッド終了待ち
	bool WaitForExit(DWORD timeOut = 3000);
	// メッセージを送る
	bool Tell(int msgid);
};