00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #ifndef CMSWINDOWSEVENTQUEUEBUFFER_H
00016 #define CMSWINDOWSEVENTQUEUEBUFFER_H
00017
00018 #include "IEventQueueBuffer.h"
00019 #define WIN32_LEAN_AND_MEAN
00020 #include <windows.h>
00021
00023 class CMSWindowsEventQueueBuffer : public IEventQueueBuffer {
00024 public:
00025 CMSWindowsEventQueueBuffer();
00026 virtual ~CMSWindowsEventQueueBuffer();
00027
00028
00029 virtual void waitForEvent(double timeout);
00030 virtual Type getEvent(CEvent& event, UInt32& dataID);
00031 virtual bool addEvent(UInt32 dataID);
00032 virtual bool isEmpty() const;
00033 virtual CEventQueueTimer*
00034 newTimer(double duration, bool oneShot) const;
00035 virtual void deleteTimer(CEventQueueTimer*) const;
00036
00037 private:
00038 DWORD m_thread;
00039 UINT m_userEvent;
00040 MSG m_event;
00041 UINT m_daemonQuit;
00042 };
00043
00044 #endif