   Input on windows
  Instead of using the usual message loop you would have to specify when registering a class using the Win32 API how else can i recieve input such as WM_MOUSEMOVE, wm_KEYDOWN etc? It should preferably be fast as i want to use it for the input of a small GUI library im implementing for my game.Thanks   
  You can't unless you subclass the window, since that's the only place the window messages are sent.You can also use GetCursorPos() to get the mouse position, and there's no doubt other functions for reading button status.   ;  Use the message loop, it's the best way.You cannot get those messages any other way beyond interacting with the messaging/event system employed by the Win32 API in one form or another. you can query the current state of various input devices via methods like GetAsyncKeyState(), but using polling in this fashion is not an ideal method for dealing with input. You certainly don't want to do if for a GUI.   