The joySetCature function captures a joystick by causing its messages to be sent to the specified window.

MMRESULT joySetCapture(
  HWND hwnd,    
  UINT uJoyID,  
  UINT uPeriod, 
  BOOL fChanged 



Handle to the window to receive the joystick messages.


Identifier of the joystick to be captured. Valid values for uJoyID range from zero (JOYSTICKID1) to 15, except for Windows NT 4.0. For Windows NT 4.0, valid values are limited to JOYSTICKID1 and JOYSTICKID2.


Polling frequency, in milliseconds.


Change position flag. Specify TRUE for this parameter to send messages only when the position changes by a value greater than the joystick movement threshold. Otherwise, messages are sent at the polling frequency specified in uPeriod.

Return Values

Returns JOYERR_NOERROR if successful or one of the following error values.

Value Description
MMSYSERR_NODRIVER The joystick driver is not present.
MMSYSERR_INVALPARAM Windows 95/98/Me: Invalid joystick ID or hwnd is NULL.
JOYERR_NOCANDO Cannot capture joystick input because a required service (such as a Windows timer) is unavailable.
JOYERR_UNPLUGGED The specified joystick is not connected to the system.
JOYERR_PARMS Windows NT/2000/XP: Invalid joystick ID or hwnd is NULL.


If the specified joystick is currently captured, the function returns undefined behavior. Call the joyReleaseCapture function to release the captured joystick, or destroy the window to release the joystick automatically.


  Windows NT/2000/XP: Included in Windows NT 3.1 and later.
  Windows 95/98/Me: Included in Windows 95 and later.
  Header: Declared in Mmsystem.h; include Windows.h.
  Library: Use Winmm.lib.

See Also

Joysticks, Multimedia Joystick Functions, joyReleaseCapture