#ifndef _HPL_EXCEPTION_
#define _HPL_EXCEPTION_

#include <windows.h>
#include <exception>
#include <string>

namespace HPL {
namespace General {
namespace HPLExceptionConsts {
	static const int BUFFER_MAX = 1024;
}

class HPLException : public std::exception {
private:
	//! エラーメッセージ
	std::string m_strErrorMessage;
	
	//! エラーコード
	DWORD m_dwErrorCode;
public:
	/**
	  *
	  */
	HPLException( int dwErrorCode, const char* format, ... );

	/**
	  *
	  */
	~HPLException();

	/**
	  * @retval エラーメッセージ
	  */
	const std::string& get_ErrorMessage();

	/**
	  * @retval エラーコード
	  */
	DWORD get_ErrorCode();

};

}// namespace General
}// namespace HPL
#endif
