#ifndef headerfilemessages #define headerfilemessages #include #include class Messages { public: typedef BOOL (*MessageFunction)(HWND, UINT, WPARAM, LPARAM); typedef std::map MessageTable; void Associate(UINT message, MessageFunction message_function) { message_table.insert( std::make_pair(message, message_function) ); } void Clear() { message_table.clear(); } BOOL Call(UINT key, HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) { MessageTable::iterator i = message_table.find(key); if( i == message_table.end() ) return false; return i->second(hWnd, message, wParam, lParam); } bool Empty() const { return message_table.empty(); } private: MessageTable message_table; }; #endif