ttcalc/src/messages.h

61 lines
787 B
C++

#ifndef headerfilemessages
#define headerfilemessages
#include <map>
#include <windows.h>
class Messages
{
public:
typedef BOOL (*MessageFunction)(HWND, UINT, WPARAM, LPARAM);
typedef std::map<UINT, MessageFunction> 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