#ifndef _COMMON_WINMSG_HPP_ #define _COMMON_WINMSG_HPP_ #ifndef _COMMON_WINDOWS_HPP_ #include #endif #ifndef _COMMON_POINT_HPP_ #include #endif class WinMsg : private MSG { public: WinMsg(void); WinMsg(const WinMsg &someWinMsg); WinMsg(const MSG &someMSG); ~WinMsg(); WinMsg &operator=(const WinMsg &someWinMsg); WinMsg &operator=(const MSG &someMSG); WORD operator==(const WinMsg &someWinMsg)const; operator MSG&(void); HWND hwnd(void)const; void hwnd(HWND hwnd); UINT message(void)const; void message(UINT message); WPARAM wParam(void)const; void wParam(WPARAM wParam); LPARAM lParam(void)const; void lParam(LPARAM lParam); DWORD time(void)const; void time(DWORD time); Point point(void)const; void point(const Point &somePoint); private: void zeroInit(void); }; inline WinMsg::WinMsg(void) { zeroInit(); } inline WinMsg::WinMsg(const WinMsg &someWinMsg) { *this=someWinMsg; } inline WinMsg::WinMsg(const MSG &someMSG) { *this=someMSG; } inline WinMsg::~WinMsg() { } inline WinMsg &WinMsg::operator=(const WinMsg &someWinMsg) { hwnd(someWinMsg.hwnd()); message(someWinMsg.message()); wParam(someWinMsg.wParam()); lParam(someWinMsg.lParam()); time(someWinMsg.time()); point(someWinMsg.point()); return *this; } inline WinMsg &WinMsg::operator=(const MSG &someMSG) { hwnd(someMSG.hwnd); message(someMSG.message); wParam(someMSG.wParam); lParam(someMSG.lParam); time(someMSG.time); point(Point(someMSG.pt.x,someMSG.pt.y)); return *this; } inline WORD WinMsg::operator==(const WinMsg &someWinMsg)const { return (hwnd()==someWinMsg.hwnd()&& message()==someWinMsg.message()&& wParam()==someWinMsg.wParam()&& lParam()==someWinMsg.lParam()&& time()==someWinMsg.time()&& point()==someWinMsg.point()); } inline WinMsg::operator MSG&(void) { return *this; } inline HWND WinMsg::hwnd(void)const { return MSG::hwnd; } inline void WinMsg::hwnd(HWND hwnd) { MSG::hwnd=hwnd; } inline UINT WinMsg::message(void)const { return MSG::message; } inline void WinMsg::message(UINT message) { MSG::message=message; } inline WPARAM WinMsg::wParam(void)const { return MSG::wParam; } inline void WinMsg::wParam(WPARAM wParam) { MSG::wParam=wParam; } inline LPARAM WinMsg::lParam(void)const { return MSG::lParam; } inline void WinMsg::lParam(LPARAM lParam) { MSG::lParam=lParam; } inline DWORD WinMsg::time(void)const { return MSG::time; } inline void WinMsg::time(DWORD time) { MSG::time=time; } inline Point WinMsg::point(void)const { return Point(MSG::pt.x,MSG::pt.y); } inline void WinMsg::point(const Point &somePoint) { MSG::pt.x=somePoint.x(); MSG::pt.y=somePoint.y(); } inline void WinMsg::zeroInit(void) { MSG::hwnd=0; MSG::message=0; MSG::wParam=0; MSG::lParam=0; MSG::time=0; MSG::pt.x=0; MSG::pt.y=0; } #endif