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
A mouse click is not a combination of windows messages, but it can lead to, depending on the application that is clicked.
There is a huge difference between windows input and windows messages, as they are only a tool for some applications, used in many different ways, as explained on MSDN:

* [About Mouse Input](http://msdn.microsoft.com/en-us/library/ms645601%28v=vs.85%29.aspx)
* [System Events and Mouse Messages](http://msdn.microsoft.com/en-us/library/ms703320%28v=vs.85%29.aspx)

I also provided an example that shows the difference clearly in my question [How could it work to use multiple cursors on one Windows client?](https://stackoverflow.com/questions/25549654/how-could-it-work-to-use-multiple-cursors-on-one-windows-client) It shows what messages are sent by clicking and that windows messages are often not enough to emulate a mouse click, but if they are, how they can be used.