#ifndef _BONEYARD_RGB555_HPP_ #define _BONEYARD_RGB555_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif // unsigned short Red : 5; // unsigned short Green : 5; // unsigned short Blue : 5; // unsigned short Filler : 1; // unsigned short Filler : 1; // unsigned short Red : 5; // unsigned short Green : 5; // unsigned short Blue : 5; typedef struct tagRGB555 { unsigned short Blue : 5; unsigned short Green : 6; unsigned short Red : 5; }RGB555STRUCT; class RGB555 : private RGB555STRUCT { public: RGB555(void); RGB555(const RGB555 &someRGB555); RGB555(BYTE red,BYTE green,BYTE blue); ~RGB555(); // the destructor cannot be virtual RGB555 &operator=(const RGB555 &someRGB555); BOOL operator==(const RGB555 &someRGB555); BYTE red(void)const; void red(BYTE red); BYTE green(void)const; void green(BYTE green); BYTE blue(void)const; void blue(BYTE blue); private: // RGBCOLOR mRGBColor; }; inline RGB555::RGB555(void) { red(0); green(0); blue(0); } inline RGB555::RGB555(BYTE red,BYTE green,BYTE blue) { RGB555::red(red); RGB555::green(green); RGB555::blue(blue); } inline RGB555::RGB555(const RGB555 &someRGB555) { *this=someRGB555; } inline RGB555::~RGB555() { } inline RGB555 &RGB555::operator=(const RGB555 &someRGB555) { red(someRGB555.red()); green(someRGB555.green()); blue(someRGB555.blue()); return *this; } inline BOOL RGB555::operator==(const RGB555 &someRGB555) { return red()==someRGB555.red()&&green()==someRGB555.green()&&blue()==someRGB555.blue(); } inline BYTE RGB555::red(void)const { return RGB555STRUCT::Red; } inline void RGB555::red(BYTE red) { RGB555STRUCT::Red=red; } inline BYTE RGB555::green(void)const { return RGB555STRUCT::Green; } inline void RGB555::green(BYTE green) { RGB555STRUCT::Green=green; } inline BYTE RGB555::blue(void)const { return RGB555STRUCT::Blue; } inline void RGB555::blue(BYTE blue) { RGB555STRUCT::Blue=blue; } #endif