Réponse acceptée !
J'ai réussi à trouver une solution plus ou moins fiable à mon problème.
J'en fait part pour ceux que ça pourrait intéresser.
J'avoue que c'est un peu du bricolage mais ça très bien.
J'utilise les api GetCursorPos et GetKeyState(VK_MBUTTON) avec un timer.
en fonction du changement de l'état de GetKeyState, j'arrive à percevoir les clics.
Private Declare Function GetCursorPos Lib "user32" (lpPoint As pointapi) As Long
Private Declare Function GetKeyState Lib "user32" (ByVal nVirtKey As Long) As Integer
Private Type pointapi
x As Long
y As Long
End Type
Dim lastMButton As Long
Private Sub Timer1_Timer()
Dim tptapi As pointapi
Dim curState As Long
GetCursorPos tptapi
LblCoord.Caption = "X=" & tptapi.x & " Y=" & tptapi.y
curState = GetKeyState(4)
If lastMButton <> curState Then
lastMButton = curState
LstButtons.AddItem "MidMouseDown :: " & lastMButton
End If
End Sub
Petit inconvénient, les clicks qui durent moins que 10ms, on peut pas les intercepter :/
donc technique a éviter pour un public névrosé et dopé