
#ifndef DKUTIL_OUTPUT_ERROR_HPP
#define DKUTIL_OUTPUT_ERROR_HPP


#ifdef WIN32
#include <winerror.h>
#include <dkutil/output/win32/dkutilOutput.h>
#endif

namespace dkutil{

///win32の場合は winerror.hをマップしてください。
enum edkErrorMessageCode{
#ifdef WIN32
	edkNoError = NO_ERROR,

	edkErrorOpenFailed = ERROR_OPEN_FAILED,
	///存在するファイルを作成することはできません。
	edkErrorAlreadyExists = ERROR_ALREADY_EXISTS,
	//...
#else

#endif

};

class CInternationalErrorCode{
#ifdef WIN32
	Win32LastError mWin32LastError;
#else
#endif
public:
	CInternationalErrorCode(){}
	virtual ~CInternationalErrorCode(){}
	virtual void setLog(const char* s) = 0;
	
	void setErrorMessageCode(DWORD id){
#ifdef WIN32
		::SetLastError(id);
		setLog(mWin32LastError());
#else
#endif
	}

};



}//end of dkutil namespace



#endif