// スリープ関連のメッセージを処理するウインドウ

#pragma once

#include <Windows.h>
#include "interface.h"

namespace GuruGuruSmf { namespace Core {

	/// <summary>
	/// スリープ関連のメッセージを処理するウインドウ
	/// </summary>
	class PowerControlWindow
	{
	private:
		HWND _hWnd;
		HANDLE _hCreated;		// ウィンドウの作成終了待機用
		HANDLE _hThread;	// スレッド終了待機用
		bool _closing;
		ICallBackPowerControlWindow* _callBackObject;	// コールバック用のオブジェクト
		wchar_t _class_name[128];//by Kobarin 複数インスタンス用
	public:
		PowerControlWindow(ICallBackPowerControlWindow* obj);	// コンストラクタ
		~PowerControlWindow();	// デストラクタ
		void Create();
		void MessageLoop();
		void WaitForCreated();	// 作成完了を待つ
		void Close();	// Closeメッセージを送る(破棄はデストラクタ)

	};


}}

