Private Const JOY_BUTTON1 = &H1
Private Const JOY_BUTTON2 = &H2
Private Const JOY_BUTTON1CHG = &H100
Private Const JOY_BUTTON2CHG = &H200
Private Const JOY_RETURNBUTTONS = &H80&
Private Const JOY_RETURNCENTERED = &H400&
Private Const JOY_RETURNPOV = &H40&
Private Const JOY_RETURNPOVCTS = &H200&
Private Const JOY_RETURNR = &H8&
Private Const JOY_RETURNRAWDATA = &H100&
Private Const JOY_RETURNU = &H10
Private Const JOY_RETURNV = &H20
Private Const JOY_RETURNX = &H1&
Private Const JOY_RETURNY = &H2&
Private Const JOY_RETURNZ = &H4&
Private Const JOY_RETURNALL = (JOY_RETURNX Or JOY_RETURNY Or JOY_RETURNZ Or JOY_RETURNR Or JOY_RETURNU Or JOY_RETURNV Or JOY_RETURNPOV Or JOY_RETURNBUTTONS)
Private Const JOY_USEDEADZONE = &H800&
Private Const MAXPNAMELEN = 32
Private Const INVALID_HANDLE_VALUE = -1
Private Const JOYERR_BASE = 160
Private Const JOYERR_NOCANDO = (JOYERR_BASE + 6)
Private Const JOYERR_NOERROR = (0)
Private Const JOYERR_PARMS = (JOYERR_BASE + 5)
Private Const JOYERR_UNPLUGGED = (JOYERR_BASE + 7)
Private Const JOYSTICKID1 = 0
Private Const JOYSTICKID2 = 1
' ===================================
' Declaration of User Defined types both private and public
Private Structure JOYINFOEX
Friend dwSize As Integer ' size of structure
Friend dwFlags As Integer ' flags to indicate what to return
Friend dwXpos As Integer ' x position
Friend dwYpos As Integer ' y position
Friend dwZpos As Integer ' z position
Friend dwRpos As Integer ' rudder/4th axis position
Friend dwUpos As Integer ' 5th axis position
Friend dwVpos As Integer ' 6th axis position
Friend dwButtons As Integer ' button states
Friend dwButtonNumber As Integer ' current button number pressed
Friend dwPOV As Integer ' point of view state
Friend dwReserved1 As Integer ' reserved for communication between winmm driver
Friend dwReserved2 As Integer ' reserved for future expansion
End Structure
' ======================================
' Event Arguments for ErrorOccured event
' ======================================
Private Declare Function joyGetPosEx Lib "winmm.dll" (ByVal uJoyID As Integer, ByRef pji As JOYINFOEX) As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a As JOYINFOEX
a.dwSize = Len(a)
a.dwFlags = JOY_RETURNBUTTONS
joyGetPosEx(JOYSTICKID1, a)
MessageBox.Show(a.dwButtons)
End Sub