The WM_MBUTTONDOWN message is posted when the user presses the middle mouse button while the cursor is in the client area of a window. If the mouse is not captured, the message is posted to the window beneath the cursor. Otherwise, the message is posted to the window that has captured the mouse.
WM_MBUTTONDOWN 
fwKeys = wParam;        // key flags 
xPos = LOWORD(lParam);  // horizontal position of cursor 
yPos = HIWORD(lParam);  // vertical position of cursor 
 | Value | Description | 
|---|---|
| MK_CONTROL | Set if the ctrl key is down. | 
| MK_LBUTTON | Set if the left mouse button is down. | 
| MK_MBUTTON | Set if the middle mouse button is down. | 
| MK_RBUTTON | Set if the right mouse button is down. | 
| MK_SHIFT | Set if the shift key is down. | 
If an application processes this message, it should return zero.
An application can use the MAKEPOINTS macro to convert the lParam parameter to a POINTS structure.
  Windows NT: Requires version 3.1 or later.
  Windows: Requires Windows 95 or later.
  Windows CE: Unsupported.
  Header: Declared in winuser.h.
Mouse Input Overview, Mouse Input Messages, GetCapture, MAKEPOINTS, POINTS, SetCapture, WM_MBUTTONDBLCLK, WM_MBUTTONUP