Question: I'm used to working with a Windows framework that provides events for things like a mouse click or a mouse double click. Are click events a Windows construct (i.e. does Windows send a WM\_DOUBLECLICK or similar message) or does it send WM\_MOUSEDOWN and WM\_MOUSEUP to applications which then do some math to decide if the event was a click or otherwise?

Answer: 
According to [MSDN documentation](http://msdn.microsoft.com/en-us/library/ms645606(VS.85).aspx) The correct order of messages you will see for double click event are - WM\_LBUTTONDOWN, WM\_LBUTTONUP, WM\_LBUTTONDBLCLK, and WM\_LBUTTONUP
It's a combination of messages sent through the WindowProc(). The messages are WM\_LBUTTONDOWN, WM\_LBUTTONDBLCLK, WM\_LBUTTONUP for the left mouse button, WM\_MBUTTONDOWN and so forth for the middle button, and WM\_RBUTTONDOWN and so forth for the right mouse button. See the Windows SDK at [MSDN](http://msdn.microsoft.com/en-us/library/dd458632(VS.85).aspx) for more info.