Added WinMain for testing, including boost, need to work out how to use boost::function and boost::bind for window procedure