#ifndef EXCEPTION_H_INCLUDED
#define EXCEPTION_H_INCLUDED

#include <iostream>

class PammmException {
public:
	PammmException(const char *const msg);
	PammmException(const char *const msg, const char *const detail);
	~PammmException();
	void Show();
protected:
	std::string m_msg;
};

class WindowsException : public PammmException {
public:
	WindowsException(int error, const char *error_source);
	~WindowsException();
private:
	static std::string format_message(int errorcode, const char *format);
};
#endif // EXCEPTION_H_INCLUDED
