#ifndef _COMMON_CHARRANGE_HPP_
#define _COMMON_CHARRANGE_HPP_
#ifndef _COMMON_WINDOWS_HPP_
#include <common/windows.hpp>
#endif

class CharRange : private CHARRANGE
{
public:
  CharRange(void);
	CharRange(const CharRange &someCharRange);
	virtual ~CharRange();
	CharRange &operator=(const CharRange &someCharRange);
	BOOL operator==(const CharRange &someCharRange)const;
	LONG cpMin(void)const;
	void cpMin(LONG cpMin);
	LONG cpMax(void)const;
	void cpMax(LONG cpMax);
	CHARRANGE &getCHARRANGE(void);
private:
};

inline
CharRange::CharRange(void)
{
  cpMin(0);
	cpMax(0);
}

inline
CharRange::CharRange(const CharRange &someCharRange)
{
  *this=someCharRange;
}

inline
CharRange::~CharRange()
{
}

inline
CharRange &CharRange::operator=(const CharRange &someCharRange)
{
  cpMin(someCharRange.cpMin());
	cpMax(someCharRange.cpMax());
	return *this;
}

inline
BOOL CharRange::operator==(const CharRange &someCharRange)const
{
  return (cpMin()==someCharRange.cpMin()&&
	        cpMax()==someCharRange.cpMax());
}

inline
LONG CharRange::cpMin(void)const
{
  return CHARRANGE::cpMin;
}

inline
void CharRange::cpMin(LONG cpMin)
{
  CHARRANGE::cpMin=cpMin;
}

inline
LONG CharRange::cpMax(void)const
{
  return CHARRANGE::cpMax;
}

inline
void CharRange::cpMax(LONG cpMax)
{
  CHARRANGE::cpMax=cpMax;;
}

inline
CHARRANGE &CharRange::getCHARRANGE(void)
{
  return *this;
}
#endif