SharpDX.DirectInput The assembly provides managed DirectInput API. ee416842 DirectInput DirectInput Describes a DirectInput device's capabilities. This structure is used with theIDirectInputDevice8::GetCapabilitiesmethod.

The semantics of version numbers are left to the manufacturer of the device. The only guarantee is that newer versions have larger numbers.

microsoft.directx_sdk.reference.didevcaps DIDEVCAPS DIDEVCAPS
Initializes a new instance of the class. No documentation. unsigned int dwSize unsigned int dwSize No documentation. DIDC dwFlags DIDC dwFlags No documentation. unsigned int dwDevType unsigned int dwDevType No documentation. unsigned int dwAxes unsigned int dwAxes No documentation. unsigned int dwButtons unsigned int dwButtons No documentation. unsigned int dwPOVs unsigned int dwPOVs No documentation. unsigned int dwFFSamplePeriod unsigned int dwFFSamplePeriod No documentation. unsigned int dwFFMinTimeResolution unsigned int dwFFMinTimeResolution No documentation. unsigned int dwFirmwareRevision unsigned int dwFirmwareRevision No documentation. unsigned int dwHardwareRevision unsigned int dwHardwareRevision No documentation. unsigned int dwFFDriverVersion unsigned int dwFFDriverVersion Gets the type of this device. The type. Gets the subtype of the device. The subtype. Gets a value indicating whether this instance is human interface device. true if this instance is human interface device; otherwise, false. This class describes a set of effect. It is passed in the of the structure. Custom data stored in . Initializes a new instance of the class. Initializes a new instance of the class. Size of the buffer. The buffer pointer. Inits this instance from the specified buffer. Size of the buffer. The buffer pointer. Marshal this class from an unamanaged buffer. The size of the unmanaged buffer. The pointer to the unmanaged buffer. An instance of TypeSpecificParameters or null Free a previously allocated buffer. The buffer pointer. Marshals this class to its native/unmanaged counterpart. A pointer to an allocated buffer containing the unmanaged structure. Convert this instance to another typed instance: , , , . A class An instance of the T class Gets the size of this specific parameter. The size. Marshal this class from an unamanaged buffer. The size of the unmanaged buffer. The pointer to the unmanaged buffer. An instance of TypeSpecificParameters or null Marshals this class to its native/unmanaged counterpart. A pointer to an allocated buffer containing the unmanaged structure. Gets or sets the conditions. The conditions. Gets the size of this specific parameter. The size. This class describes a Constant force effect. It is passed in the of the structure. Marshal this class from an unamanaged buffer. The size of the unmanaged buffer. The pointer to the unmanaged buffer. An instance of TypeSpecificParameters or null Marshals this class to its native/unmanaged counterpart. A pointer to an allocated buffer containing the unmanaged structure. Gets or sets the magnitude. The magnitude of the effect, in the range from - 10,000 through 10,000. If an envelope is applied to this effect, the value represents the magnitude of the sustain. If no envelope is applied, the value represents the amplitude of the entire effect. The magnitude. Gets the size of this specific parameter. The size. No documentation. IDirectInputDevice8W IDirectInputDevice8W Initializes a new instance of the class based on a given globally unique identifier (Guid). The direct input. The device GUID. Sends a hardware-specific command to the force-feedback driver. Driver-specific command number. Consult the driver documentation for a list of valid commands. Buffer containing the data required to perform the operation. Buffer in which the operation's output data is returned. Number of bytes written to the output buffer Because each driver implements different escapes, it is the application's responsibility to ensure that it is sending the escape to the correct driver by comparing the value of the guidFFDriver member of the structure against the value the application is expecting. Gets information about a device image for use in a configuration property sheet. A structure that receives information about the device image. Gets all effects. A collection of Gets the effects for a particular . Effect type. A collection of Gets the effects stored in a RIFF Force Feedback file. Name of the file. A collection of Gets the effects stored in a RIFF Force Feedback file. Name of the file. Flags used to filter effects. A collection of Gets information about a device object, such as a button or axis. The object type/instance identifier. This identifier is returned in the member of the structure returned from a previous call to the method. A information Gets information about a device object, such as a button or axis. the HID Usage Page and Usage values. A information Gets the properties about a device object, such as a button or axis. The object type/instance identifier. This identifier is returned in the member of the structure returned from a previous call to the method. an ObjectProperties Gets the properties about a device object, such as a button or axis. the HID Usage Page and Usage values. an ObjectProperties Retrieves a collection of objects on the device. A collection of all device objects on the device. Retrieves a collection of objects on the device. A filter for the returned device objects collection. A collection of device objects matching the specified filter. Runs the DirectInput control panel associated with this device. If the device does not have a control panel associated with it, the default device control panel is launched. A object describing the result of the operation. Runs the DirectInput control panel associated with this device. If the device does not have a control panel associated with it, the default device control panel is launched. The parent control. A object describing the result of the operation. Requests the cooperative level for this instance of the inpute device. The cooperative level determines how this instance of the device interacts with other instances of the device and the rest of the system. Window control to be associated with the device. This parameter must be a valid top-level window handle that belongs to the process. The window associated with the device must not be destroyed while it is still active in a DirectInput device. Flags that specify the cooperative level to associate with the input device. If the method succeeds, the return value is . If the method fails, a is raised with the following error code values: , , . Applications cannot specify and at the same time. This apply as well to and . When the mouse is acquired with exclusive access, the mouse pointer is removed from the screen until the device is unacquired. Applications that select the background exclusive mode cooperative level are not guaranteed to retain access to the device if another application requests exclusive access. When a background exclusive mode application loses access, calls to DirectInput device methods will fail and return . The application can regain access to the device by manually unacquiring the device and reaquiring it. Applications must call this method before acquiring the device by using the method. HRESULT IDirectInputDevice8W::SetCooperativeLevel([In] HWND arg0,[In] DISCL arg1) Specifies an event that is to be set when the device state changes. It is also used to turn off event notification. Handle to the event that is to be set when the device state changes. DirectInput uses the Microsoft Win32 SetEvent function on the handle when the state of the device changes. If the eventHandle parameter is null, notification is disabled. A object describing the result of the operation. Writes the effects to a file. Name of the file. The effects. A object describing the result of the operation. Writes the effects to file. Name of the file. The effects. if set to true [include nonstandard effects]. A object describing the result of the operation. Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion. Obtains the capabilities of the DirectInputDevice object.
Address of a structure to be filled with the device capabilities. The dwSize member of this structure must be initialized before calling this method.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , , E_POINTER.

For compatibility with DirectX 3, it is also valid to pass a DIDEVCAPS_DX3 structure with the dwSize member initialized to sizeof(DIDEVCAPS_DX3).

The number of objects returned in the structure is the maximum number of objects that could be enumerated. However, all of these objects are not necessarily returned during a call to .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getcapabilities HRESULT IDirectInputDevice8W::GetCapabilities([Out] DIDEVCAPS* arg0) IDirectInputDevice8W::GetCapabilities
Enumerates the input and output objects available on a device.
Address of a callback function that receives DirectInputDevice objects. DirectInput provides a prototype of this function as DIEnumDeviceObjectsCallback.
Reference data (context) for callback.
Flags that specify the types of object to be enumerated. Each of the following values restricts the enumeration to objects of the described type:
An absolute axis.
Controls identified by a Human Interface Device (HID) usage alias. This flag applies only to HID-compliant USB devices.
All objects.
An axis, either absolute or relative.
A push button or a toggle button.
A HID link collection. HID link collections do not generate data of their own.
DIDFT_ENUMCOLLECTION(n)
An object that belongs to HID link collection number n.
An object that contains a force-feedback actuator. In other words, forces can be applied to this object.
An object that can be used to trigger force-feedback effects.
DIDFT_NOCOLLECTION
An object that does not belong to any HID link collection; in other words, an object for which the wCollectionNumber member of the structure is 0.
An object that does not generate data.
An object that supports output. For details, see Remarks in .
A point-of-view controller.
A push button. A push button is reported as down when the user presses it, and as up when the user releases it.
A relative axis.
A toggle button. A toggle button is reported as down when the user presses it and remains so until the user presses the button a second time.
An object of a type defined by the manufacturer.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values:.

The and flags in the dwFlags parameter restrict enumeration to objects that meet all the criteria defined by the included flags. For all the other flags, an object is enumerated if it meets the criterion defined by any included flag in this category. For example, ( | ) restricts enumeration to force-feedback trigger objects, and ( | | ) restricts enumeration to buttons of any kind that can be used as effect triggers.

Applications should not rely on this method to determine whether certain keyboard keys or indicator lights are present, as these objects might be enumerated even though they are not present. Although the basic set of available objects can be determined from the device subtype, there is no reliable way of determining whether extra objects such as the menu key are available.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.enumobjects HRESULT IDirectInputDevice8W::EnumObjects([In] __function__stdcall* arg0,[In] void* arg1,[In] unsigned int arg2) IDirectInputDevice8W::EnumObjects
Retrieves information about the input device.
Reference to (C++) or address of (C) the globally unique identifier () identifying the property to be retrieved. This can be one of the predefined values or a reference to a that identifies the property. The following properties are predefined for an input device.
Retrieves the application-defined value associated with an in-game action, as a .
Determines whether device objects are self centering. The value returned can be DIPROPAUTOCENTER_OFF or DIPROPAUTOCENTER_ON. See for more information.
Retrieves the axis mode. The retrieved value can be or .
Retrieves the input buffer size. The buffer size determines the amount of data that the buffer can hold between calls to the method before data is lost. You can set this value to 0 to indicate that the application does not read buffered data from the device. If the buffer size in the dwData member of the structure is too large for the device to support it, then the largest possible buffer size is set. However, this property always returns the buffer size set using the method, even if the buffer cannot be supported because it is too large.

Predefined property that allows the application to access the information that DirectInput uses to manipulate axes that require calibration. This property exists primarily for applications of the control panel type. Normal applications should not need to deal with calibration information.

You can access the calibration mode property for a particular axis by setting the dwHow member of the structure to or to and setting the dwObj member to the object ID or offset, respectively.

Control panel applications that set new calibration data must also invoke the IDirectInputJoyConfig::SendNotify method to notify other applications of the change in calibration. For more information about IDirectInputJoyConfig::SendNotify, see the DirectInput Driver Development Kit (DDK).

For use by device drivers; not used by applications.
This property is unsupported. Retrieves calibration points used for the adjustment of incoming raw data as a DIPROPCPOINTS structure.
Retrieves a value for the dead zone of a joystick, in the range from 0 through 10,000, where 0 indicates that there is no dead zone, 5,000 indicates that the dead zone extends over 50 percent of the physical range of the axis on both sides of center, and 10,000 indicates that the entire physical range of the axis is dead. When the axis is within the dead zone, it is reported as being at the center of its range.
Retrieves the gain of the device. This property always returns even if the device does not support force feedback. See for more information.
Retrieves the memory load for the device. This setting applies to the entire device, rather than to any particular object, so the dwHow member of the associated structure must be . The retrieved value is in the range from 0 through 100, indicating the percentage of device memory in use. The device must be acquired in exclusive mode. If it is not, the method will fail with a return value of .
Retrieves the human-readable display name of the port to which this device is connected. Not generally used by applications.
Retrieves the input granularity. Granularity represents the smallest distance over which the object reports movement. Most axis objects have a granularity of one; that is, all values are possible. Some axes have a larger granularity. For example, the wheel axis on a mouse can have a granularity of 20; that is, all reported changes in position are multiples of 20. In other words, when the user turns the wheel slowly, the device reports a position of 0, then 20, then 40, and so on. This is a read-only property.
Retrieves the class and device interface (path) for the device. This property lets advanced applications perform operations on a human interface device that are not supported by DirectInput. For more information, see the structure.
Retrieves the friendly instance name of the device. For more information, see .
Retrieves the instance number of a joystick. This property is not implemented for the mouse or keyboard.
Retrieves the localized key name for a keyboard key, as a . Using this property on devices other than a keyboard will return unexpected names.
Retrieves the range of the raw data returned for axes on a human interface device. Devices can return negative values.
Retrieves the range of data for axes as suggested by the manufacturer of a human interface device. Values can be negative. Normally DirectInput returns values from 0 through 0xFFFF, but the range can be made to conform to the manufacturer's suggested range by using .
Retrieves the friendly product name of the device. For more information, see .
Retrieves the range of values an object can possibly report. For some devices, this is a read-only property.
Retrieves a value for the saturation zones of a joystick, in the range from 0 through 10,000. The saturation level is the point at which the axis is considered to be at its most extreme position. For example, if the saturation level is set to 9,500, the axis reaches the extreme of its range when it has moved 95 percent of the physical distance from its center position (or from the dead zone).
Retrieves the scan code for a keyboard key, as a . If successful, is returned. E_FAIL is returned if the property cannot resolve specialized keys on USB keyboards because they do not exist in scan code form. For all other failures, E_INVALIDARG is returned.
Predefined property that retrieves the type name of a device. For most game controllers, this is the registry key name under REGSTR_PATH_JOYOEM from which static device settings can be retrieved, but predefined joystick types have special names consisting of a number sign (&Sharp;) followed by a character dependent on the type. This value might not be available for all devices.
Retrieves the user name for a user currently assigned to a device, as a . User names are set by calling . If no user name is set, the method returns S_FALSE.
Read-only device property that retrieves the vendor identity (ID) and product ID of a HID device. This property is of type and contains both values. These two WORD values are combined in the dwData member of the structure. See Examples. This property applies to the entire device, rather than to any particular object, so the dwHow member of the structure must be set to .
Address of the portion of a larger property-dependent structure that contains the structure as a member. The following structures are used for properties:
  • is used for properties represented by a single numerical value.

  • is used for .

  • is used for properties represented by a pair of numerical values. Currently, the only such property is .

  • is used for string properties.

If the method succeeds, the return value is or S_FALSE. If the method fails, the return value can be one of the following error values: , , , , .

If rguidProp is set to , the dwHow member of the structure should only be set to when getting information about input controls, such as buttons or axes. Setting for other device objects such as a physical interface device (PID) or LED devices can lead to unpredictable results.

S_FALSE is always returned when is called with rguidProp set to , even if the method succeeds.

The scan codes reported in Microsoft DirectX 8.1 are different from the ones reported in DirectX 8.0. In DirectX 8.0, the property actually reported the single byte * constant associated with the key, not the scan code. In DirectX 8.1 and later releases, the property reports the make scan code as would be reported by a PS/2 keyboard. In some cases, scan codes are multiple bytes, in which case the scan code bytes are ordered with the first byte in the least significant byte of the DWORD retrieved by the property.

Example

The following C example shows how to obtain the value of the property.

  dipdw;  //  contains a  structure. 	
             hr; 	
            dipdw.diph.dwSize       = sizeof(); 	
            dipdw.diph.dwHeaderSize = sizeof(); 	
            dipdw.diph.dwObj        = 0; // device property 	
            dipdw.diph.dwHow        = ;  hr = idirectinputdevice9_GetProperty(pdid, , &dipdw.diph); 	
            if (SUCCEEDED(hr)) {  // The dipdw.dwData member contains the buffer size. 	
            } 	
            

The following example shows how to extract the two WORD values from the dwData member of the structure using the property:

 wVendorID  = LOWORD(.dwData);	
            wProductID = HIWORD(.dwData);	
            
microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getproperty HRESULT IDirectInputDevice8W::GetProperty([In] const void& arg0,[In] void* arg1) IDirectInputDevice8W::GetProperty
Sets properties that define the device behavior. These properties include input buffer size and axis mode.
Reference to (C++) or address of (C) the globally unique identifier () identifying the property to be set. This can be one of the predefined values, or a reference to a that identifies the property. The following property values are predefined for an input device:
Sets the application-defined value associated with an in-game action, as a .

Specifies whether device objects are self centering. This setting applies to the entire device, rather than to any particular object, so the dwHow member of the associated structure must be .

The dwData member can be one of the following values.

DIPROPAUTOCENTER_OFF: The device should not automatically center when the user releases the device. An application that uses force feedback should disable autocentering before playing effects.

DIPROPAUTOCENTER_ON: The device should automatically center when the user releases the device.

Not all devices support the autocenter property.

Sets the axis mode. The value being set ( or ) must be specified in the dwData member of the associated structure. See the description of the pdiph parameter for more information. This setting applies to the entire device, so the dwHow member of the associated structure must be set to .
Sets the input buffer size. The value being set must be specified in the dwData member of the associated structure. See Remarks. This setting applies to the entire device, so the dwHow member of the associated structure must be set to .

Predefined property that allows the application to access the information that DirectInput uses to manipulate axes that require calibration. This property exists primarily for applications of the control panel type. Normal applications should not need to deal with calibration information.

You can access the calibration mode property for an axis by setting the dwHow member of the structure to or to and setting the dwObj member to the object ID or offset, respectively.

Control panel applications that set new calibration data must also invoke the IDirectInputJoyConfig::SendNotify method to notify other applications of the change in calibration. For more information about IDirectInputJoyConfig::SendNotify, see the DirectX Driver Development Kit (DDK).

Enables the application to specify whether DirectInput should retrieve calibrated or uncalibrated data from an axis. By default, DirectInput retrieves calibrated data.

Setting the calibration mode for the entire device is equivalent to setting it for each axis individually.

The dwData member of the structure can be one of the following values:

DIPROPCALIBRATIONMODE_COOKED: DirectInput should return data after applying calibration information. This is the default mode.

DIPROPCALIBRATIONMODE_RAW: DirectInput should return raw, uncalibrated data. This mode is typically used only by applications of the control panel type. Note that raw data might include negative values.

Setting a device into raw mode causes the dead zone, saturation, and range settings to be ignored.

This property is unsupported. Sets calibration points used for the adjustment of incoming raw data. The values being set must be specified as CPOINT types in the cp array of the associated DIPROPCPOINTS structure. This setting applies to individual device objects, so the dwHow member of the associated structure must be set to either or .
Sets the value for the dead zone of a joystick, in the range from 0 through 10,000, where 0 indicates that there is no dead zone, 5,000 indicates that the dead zone extends over 50 percent of the physical range of the axis on both sides of center, and 10,000 indicates that the entire physical range of the axis is dead. When the axis is within the dead zone, it is reported as being at the center of its range. This setting can be applied to either the entire device or to a specific axis.
Sets the gain for the device. This setting applies to the entire device, rather than to any particular object, so the dwHow member of the associated structure must be .

The dwData member contains a gain value that is applied to all effects created on the device. The value is an integer in the range from 0 through 10,000, specifying the amount by which effect magnitudes should be scaled for the device. For example, a value of 10,000 indicates that all effect magnitudes are to be taken at face value. A value of 9,000 indicates that all effect magnitudes are to be reduced to 90 percent of their nominal magnitudes.

DirectInput always checks the gain value before setting the gain property. If the gain is outside of the range (less than zero or greater than 10,000), will return . Otherwise, if successful, it will return , even if the device does not support force feedback.

Setting a gain value is useful when an application wants to scale down the strength of all force-feedback effects uniformly, based on user preferences.

Unlike other properties, the gain can be set when the device is in an acquired state.

This property exists for advanced applications that want to change the friendly instance name of a device (as returned in the tszInstanceName member of the structure) to distinguish it from similar devices that are plugged in simultaneously. Most applications should have no need to change the friendly name.

This setting applies to the entire device, so the dwHow member of the associated structure must be set to .

The pdiph parameter must be a reference to the diph member of a structure.

This property exists for advanced applications that want to change the friendly product name of a device (as returned in the tszProductName member of the structure) to distinguish it from similar devices which are plugged in simultaneously. Most applications should have no need to change the friendly name.

This setting applies to the entire device, so the dwHow member of the associated structure must be set to .

The pdiph parameter must be a reference to the diph member of a structure.

Setting the product name is only useful for changing the user-defined name of an analog joystick on Microsoft Windows 98, Windows 2000, and Windows Millennium Edition (Windows Me) computers. In other cases, attempting to set this property will still return . However, the name is not stored in a location used by .

Sets the range of values an object can possibly report. The minimum and maximum values are taken from the lmin and lmax members of the associated structure.

For some devices, this is a read-only property.

You cannot set a reverse range; lmax must be greater than lmin.

Sets the value for the saturation zones of a joystick, in the range from 0 through 10,000. The saturation level is the point at which the axis is considered to be at its most extreme position. For example, if the saturation level is set to 9,500, the axis reaches the extreme of its range when it has moved 95 percent of the physical distance from its center position (or from the dead zone). This setting can be applied to either the entire device or a specific axis.
Address of the structure contained within the type-specific property structure.

If the method succeeds, the return value is or . If the method fails, the return value can be one of the following error values: , , .

The buffer size determines the amount of data that the buffer can hold between calls to the method before data is lost. This value may be set to 0 to indicate that the application does not read buffered data from the device. If the buffer size in the dwData member of the structure is too large for the device to support it, then the largest possible buffer size is set.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.setproperty HRESULT IDirectInputDevice8W::SetProperty([In] const void& arg0,[In] const void* arg1) IDirectInputDevice8W::SetProperty
Obtains access to the input device.

If the method succeeds, the return value is , or S_FALSE if the device was already acquired. If the method fails, the return value can be one of the following error values: , , .

Before a device can be acquired, a data format must be set by using the method or method. If the data format has not been set, Interface returns .

Devices must be acquired before calling the or methods for that device.

Device acquisition does not use a reference count. Therefore, if an application calls the Interface method twice, then calls the Interface method once, the device is unacquired.

If succeeds but no actions have been mapped, a subsequent call to will return but a call to Interface will fail with .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.acquire HRESULT IDirectInputDevice8W::Acquire() IDirectInputDevice8W::Acquire
Releases access to the device.

The return value is is the device was unacquired, or if the device was not in an acquired state.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.unacquire HRESULT IDirectInputDevice8W::Unacquire() IDirectInputDevice8W::Unacquire
No documentation. No documentation. No documentation. No documentation. HRESULT IDirectInputDevice8W::GetDeviceState([In] unsigned int arg0,[In] void* arg1) IDirectInputDevice8W::GetDeviceState No documentation. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT IDirectInputDevice8W::GetDeviceData([In] unsigned int arg0,[In, Buffer] void* arg1,[InOut] unsigned int* arg2,[In] unsigned int arg3) IDirectInputDevice8W::GetDeviceData Sets the data format for the DirectInput device.
Address of a structure that describes the format of the data that the DirectInputDevice should return. An application can define its own structure or use one of the following predefined global variables:
  • c_dfDIKeyboard

  • c_dfDIMouse

  • c_dfDIMouse2

  • c_dfDIJoystick

  • c_dfDIJoystick2

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , , .

The data format must be set before the device can be acquired by using the Interface method. It is necessary to set the data format only once. The data format cannot be changed while the device is acquired.

If the application is using action mapping, the data format is set instead by the call to .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.setdataformat HRESULT IDirectInputDevice8W::SetDataFormat([In] const DIDATAFORMAT* arg0) IDirectInputDevice8W::SetDataFormat
Specifies an event that is to be set when the device state changes. It is also used to turn off event notification.
Handle to the event that is to be set when the device state changes. DirectInput uses the Microsoft Win32 SetEvent function on the handle when the state of the device changes. If the hEvent parameter is null, notification is disabled.

The application can create the handle as either a manual-reset or autoreset event by using the Win32 CreateEvent function. If the event is created as an autoreset event, the operating system automatically resets the event when a wait has been satisfied. If the event is created as a manual-reset event, it is the application's responsibility to call the Win32 ResetEvent function to reset it. DirectInput does not call the Win32 ResetEvent function for event notification handles. Most applications create the event as an automatic-reset event.

If the method succeeds, the return value is or . If the method fails, the return value can be one of the following error values: , , , .

A device state change is defined as any of the following:

  • A change in the position of an axis

  • A change in the state (pressed or released) of a button

  • A change in the direction of a POV control

  • Loss of acquisition

Do not call the Win32 CloseHandle function on the event while it has been selected into a DirectInputDevice object. You must call this method with the hEvent parameter set to null before closing the event handle.

The event notification handle cannot be changed while the device is acquired. If the function is successful, the application can use the event handle like any other Win32 event handle.

Examples

The following code example checks whether the handle is currently set without blocking:

 dwResult = WaitForSingleObject(hEvent, 0); 	
            if (dwResult == WAIT_OBJECT_0) {  // Event is set. If the event was created as  // autoreset, it has also been reset. 	
            } 	
            

The following code example illustrates blocking indefinitely until the event is set. This behavior is strongly discouraged because the thread does not respond to the system until the wait is satisfied. In particular, the thread does not respond to Microsoft Windows messages.

 dwResult = WaitForSingleObject(hEvent, INFINITE); 	
            if (dwResult == WAIT_OBJECT_0) {  // Event has been set. If the event was created  // as autoreset, it has also been reset. 	
            }	
            

The following code example illustrates a typical application loop for a non-message-based application that uses two events:

 HANDLE ah[2] = { hEvent1, hEvent2 };  while (TRUE) {  dwResult = MsgWaitForMultipleObjects(2, ah, ,  INFINITE, QS_ALLINPUT);  switch (dwResult) {  case WAIT_OBJECT_0:  // Event 1 has been set. If the event was created as // autoreset, it has also been reset.  ProcessInputEvent1();  break;  case WAIT_OBJECT_0 + 1:  // Event 2 has been set. If the event was created as // autoreset, it has also been reset.  ProcessInputEvent2();  break;  case WAIT_OBJECT_0 + 2:  // A Windows message has arrived. Process  // messages until there aren't any more.  while(PeekMessage(&msg, null, 0, 0, PM_REMOVE)){  if (msg.message == WM_QUIT) {  goto exitapp;  }  TranslateMessage(&msg);  DispatchMessage(&msg);  }  break;  default:  // Unexpected error.  Panic();  break;  } 	
            } 	
            

The following code example illustrates a typical message loop for a message-based application that uses two events:

 HANDLE ah[2] = { hEvent1, hEvent2 }; 	
            DWORD dwWait = 0;  while (TRUE) {  dwResult = MsgWaitForMultipleObjects(2, ah, ,  dwWait, QS_ALLINPUT);  dwWait = 0;  switch (dwResult) {  case WAIT_OBJECT_0:  // Event 1 has been set. If the event was  // created as autoreset, it has also  // been reset.  ProcessInputEvent1();  break;  case WAIT_OBJECT_0 + 1:  // Event 2 has been set. If the event was  // created as autoreset, it has also  // been reset.  ProcessInputEvent2();  break;  case WAIT_OBJECT_0 + 2:  // A Windows message has arrived. Process  // messages until there aren't any more.  while(PeekMessage(&msg, null, 0, 0, PM_REMOVE)){  if (msg.message == WM_QUIT) {  goto exitapp;  }  TranslateMessage(&msg);  DispatchMessage(&msg);  }  break;  default:  // No input or messages waiting.  // Do a frame of the game.  // If the game is idle, tell the next wait  // to wait indefinitely for input or a message.  if (!DoGame()) {  dwWait = INFINITE;  }  break;  } 	
            } 	
            
microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.seteventnotification HRESULT IDirectInputDevice8W::SetEventNotification([In] void* arg0) IDirectInputDevice8W::SetEventNotification
Requests the cooperative level for this instance of the inpute device. The cooperative level determines how this instance of the device interacts with other instances of the device and the rest of the system. Window handle to be associated with the device. This parameter must be a valid top-level window handle that belongs to the process. The window associated with the device must not be destroyed while it is still active in a DirectInput device.Flags that specify the cooperative level to associate with the input device.If the method succeeds, the return value is . If the method fails, a is raised with the following error code values: , , . Applications cannot specify and at the same time. This apply as well to and . When the mouse is acquired with exclusive access, the mouse pointer is removed from the screen until the device is unacquired. Applications that select the background exclusive mode cooperative level are not guaranteed to retain access to the device if another application requests exclusive access. When a background exclusive mode application loses access, calls to DirectInput device methods will fail and return . The application can regain access to the device by manually unacquiring the device and reaquiring it. Applications must call this method before acquiring the device by using the method. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.setcooperativelevel HRESULT IDirectInputDevice8W::SetCooperativeLevel([In] HWND arg0,[In] DISCL arg1) IDirectInputDevice8W::SetCooperativeLevel Retrieves information about a device object, such as a button or axis.
Value that identifies the object whose information is to be retrieved. The value set for this parameter depends on the value specified in the dwHow parameter.
Value that specifies how the dwObj parameter should be interpreted. The dwHow value can be one of the following:
The dwObj parameter is the offset into the current data format of the object whose information is being accessed.
The dwObj parameter is the object type/instance identifier. This identifier is returned in the dwType member of the structure returned from a previous call to the method.
The dwObj parameter contains the HID Usage Page and Usage values of the object, combined by the DIMAKEUSAGEDWORD macro.
Address of a structure to be filled with information about the object. The structure's dwSize member must be initialized before this method is called.

For compatibility with DirectX 3, it is also valid to pass a DIDEVICEOBJECTINSTANCE_DX3 structure with the dwSize member initialized to sizeof(DIDEVICEOBJECTINSTANCE_DX3).

ee417906 HRESULT IDirectInputDevice8W::GetObjectInfo([Out] DIDEVICEOBJECTINSTANCEW* arg0,[In] unsigned int arg1,[In] DIPH arg2) IDirectInputDevice8W::GetObjectInfo
Obtains information about the device's identity.
Address of a structure to be filled with information about the device's identity. An application must initialize the structure's dwSize member before calling this method.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , , E_POINTER.

For compatibility with DirectX 3, it is also valid to pass a DIDEVICEINSTANCE_DX3 structure with the dwSize member initialized to sizeof(DIDEVICEINSTANCE_DX3).

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getdeviceinfo HRESULT IDirectInputDevice8W::GetDeviceInfo([Out] DIDEVICEINSTANCEW* arg0) IDirectInputDevice8W::GetDeviceInfo
Runs the DirectInput control panel associated with this device. If the device does not have a control panel associated with it, the default device control panel is launched.
Parent window handle. If this parameter is null , no parent window is used.
Not currently used. Zero is the only valid value.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values:

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.runcontrolpanel HRESULT IDirectInputDevice8W::RunControlPanel([In] HWND arg0,[In] unsigned int arg1) IDirectInputDevice8W::RunControlPanel
Initializes a DirectInputDevice object. TheIDirectInput8::CreateDevicemethod automatically initializes a device after creating it; applications normally do not need to call this method. No documentation. No documentation. No documentation.

If the method succeeds, the return value is or S_FALSE. If the method returns S_FALSE, the device had already been initialized with the instance passed in though rGUID. If the method fails, the return value can be one of the following error values: , .

If this method fails, the underlying object should be considered to be in an indeterminate state and must be reinitialized before use.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.initialize HRESULT IDirectInputDevice8W::Initialize([In] HINSTANCE arg0,[In] unsigned int arg1,[In] const GUID& arg2) IDirectInputDevice8W::Initialize
Creates and initializes an instance of an effect identified by the effect globally unique identifier ().
Reference to (C++) or address of (C) the identifying the effect to be created. This can be a predefined effect , or it can be a obtained from . The following standard effect GUIDs are defined:
structure that provides parameters for the created effect. This parameter is optional. If it is null, the effect object is created without parameters. The application must then call the method to set the parameters of the effect before it can download the effect.
Address of a variable to receive a reference to the Interface interface if successful.
Controlling unknown for COM aggregation. The value is null if the interface is not aggregated. Most calling applications pass null.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , ,, .

If the return value is , the effect was created, and the parameters of the effect were updated, but the effect was not necessarily downloaded. For it to be downloaded, the device must be acquired in exclusive mode.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.createeffect HRESULT IDirectInputDevice8W::CreateEffect([In] const GUID& arg0,[In] const DIEFFECT* arg1,[Out, Fast] IDirectInputEffect** arg2,[In] IUnknown* arg3) IDirectInputDevice8W::CreateEffect
Enumerates all the effects supported by the force-feedback system on the device. The enumerated GUIDs can represent predefined effects, as well as effects peculiar to the device manufacturer.
Address of an application-defined callback function. The declaration of this function must conform to that of the DIEnumEffectsCallback prototype.
A 32-bit application-defined value to be passed to the callback function. This parameter can be any 32-bit type; it is declared as LPVOID for convenience.
Effect type filter. Use one of the DIEFT_* values to indicate the effect type to be enumerated, or to enumerate all effect types. For a list of these values, see DIEffectInfo.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values:

If the callback stops the enumeration prematurely, the enumeration is considered to have succeeded.

An application can use the dwEffType member of the DIEffectInfo structure to obtain general information about the effect, such as its type and which envelope and condition parameters are supported by the effect.

To exploit an effect to its fullest, contact the device manufacturer to obtain information about the semantics of the effect and its effect-specific parameters.

ee417884 HRESULT IDirectInputDevice8W::EnumEffects([In] __function__stdcall* arg0,[In] void* arg1,[In] DIEFT arg2) IDirectInputDevice8W::EnumEffects
Obtains information about an effect.
Reference to (C++) or address of (C) the globally unique identifier () identifying the effect for which information is being requested.
DIEffectInfo structure that receives information about the effect. The calling application must initialize the dwSize member of the structure before calling this method.
Note
If this method is called on an non-Force Feedback device, E_POINTER will be returned.
microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.geteffectinfo HRESULT IDirectInputDevice8W::GetEffectInfo([Out] DIEFFECTINFOW* arg0,[In] const GUID& arg1) IDirectInputDevice8W::GetEffectInfo
Retrieves the state of the device's force-feedback system.
Location for flags that describe the current state of the device's force-feedback system.

The value is a combination of the following constants.

The device's force-feedback actuators are disabled. If the device cannot report the actuator state, neither nor is returned.
The device's force-feedback actuators are enabled. If the device cannot report the actuator state, neither nor is returned.
The device suffered an unexpected failure and is in an indeterminate state. It must be reset either by unacquiring and reacquiring the device, or by sending a command.
The device has no downloaded effects.
Playback of all active effects has been paused.
The force-feedback system is not currently available. If the device cannot report the power state, neither nor is returned.
Power to the force-feedback system is currently available. If the device cannot report the power state, neither nor is returned.
The safety switch is currently off; that is, the device cannot operate. If the device cannot report the state of the safety switch, neither nor is returned.
The safety switch is currently on; that is, the device can operate. If the device cannot report the state of the safety switch, neither nor is returned.
No effects are playing, and the device is not paused.
The user force-feedback switch is currently off; that is, the device cannot operate. If the device cannot report the state of the user force-feedback switch, neither nor is returned.
The user force-feedback switch is currently on; that is, the device can operate. If the device cannot report the state of the user force-feedback switch, neither nor is returned.

Applications should ignore any flags that are not currently defined.

The device must be acquired at the exclusive cooperative level for this method to succeed.

The and flags may not always be reported correctly because there is no mechanism for the drivers to report that they support these flags.

Note
When calling , it is possible for the state of the device returned not to match the expected state. This might happen if commands recently sent by are still pending. Wait a short time and then check the device state again.
ee417902 HRESULT IDirectInputDevice8W::GetForceFeedbackState([Out] DIGFFS* arg0) IDirectInputDevice8W::GetForceFeedbackState
Sends a command to the device's force-feedback system.
Single value indicating the desired change in state. The value can be one of the following.
Paused playback of all active effects is to be continued. It is an error to send this command when the device is not in a paused state.
Playback of all active effects is to be paused. This command also stops the clock-on effects so that they continue playing to their full duration when restarted.

While the device is paused, new effects cannot be started, and existing ones cannot be modified. Doing so can cause the subsequent command to fail to perform properly.

To abandon a pause and stop all effects, use the or DISFCC_RESET commands.

The device's force-feedback system is to be put in its startup state. All effects are removed from the device, are no longer valid, and must be re-created if they are to be used again. The device's actuators are disabled.
The device's force-feedback actuators are to be disabled. While the actuators are off, effects continue to play but are ignored by the device. Using the analogy of a sound playback device, they are muted, rather than paused.
The device's force-feedback actuators are to be enabled.
Playback of any active effects is to be stopped. All active effects are reset, but are still being maintained by the device and are still valid. If the device is in a paused state, that state is lost. This command is equivalent to calling the method for each effect playing.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , , , , .

The device must be acquired at the exclusive cooperative level for this method to succeed.

Note
When calling , it is possible for the state of the device returned not to match the expected state. This might happen if commands recently sent by are still pending. Wait a short time and then check the device state again.
ee417918 HRESULT IDirectInputDevice8W::SendForceFeedbackCommand([In] DISFFC arg0) IDirectInputDevice8W::SendForceFeedbackCommand
Enumerates all the currently created effects for this device. Effects created byIDirectInputDevice8::CreateEffectare enumerated. No documentation. No documentation. No documentation.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , .

The results are unpredictable if you create or destroy an effect while an enumeration is in progress. However, the callback function can safely release the effect passed to it.

ee417882 HRESULT IDirectInputDevice8W::EnumCreatedEffectObjects([In] __function__stdcall* arg0,[In] void* arg1,[In] unsigned int arg2) IDirectInputDevice8W::EnumCreatedEffectObjects
Sends a hardware-specific command to the force-feedback driver.
structure that describes the command to be sent. On success, the cbOutBuffer member contains the number of bytes of the output buffer actually used.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , .

Other device-specific error codes are also possible. Ask the hardware manufacturer for details.

Because each driver implements different escapes, it is the application's responsibility to ensure that it is sending the escape to the correct driver by comparing the value of the guidFFDriver member of the structure against the value the application is expecting.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.escape HRESULT IDirectInputDevice8W::Escape([In] DIEFFESCAPE* arg0) IDirectInputDevice8W::Escape
Retrieves data from polled objects on a DirectInput device. If the device does not require polling, calling this method has no effect. If a device that requires polling is not polled periodically, no new data is received from the device. Calling this method causes DirectInput to update the device state, generate input events (if buffered data is enabled), and set notification events (if notification is enabled).

If the method succeeds, the return value is , or if the device does not require polling. If the method fails, the return value can be one of the following error values: , , .

Before a device data can be polled, the data format must be set by using the or method, and the device must be acquired by using the Interface method.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.poll HRESULT IDirectInputDevice8W::Poll() IDirectInputDevice8W::Poll
Sends data to a device that accepts output.
Note
There are no devices that accept output from . See Remarks.
No documentation. No documentation. No documentation. No documentation.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , , , .

Applications should not use . Force Feedback is the recommended way to send data to a device. If you want to send other data to a device, such as changing LED or internal device states, the HID application programming interface (API) is the recommended way.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.senddevicedata HRESULT IDirectInputDevice8W::SendDeviceData([In] unsigned int arg0,[In, Buffer] const DIDEVICEOBJECTDATA* arg1,[InOut] unsigned int* arg2,[In] unsigned int arg3) IDirectInputDevice8W::SendDeviceData
Enumerates all the effects in a file created by the Force Editor utility or another application using the same file format.
Name of the RIFF file.
Address of an application-defined callback function. The declaration of this function must conform to that of the DIEnumEffectsInFileCallback prototype.
Application-defined value to be passed to the callback function. This parameter can be any 32-bit type.
Can be ( = 0) or one or both of the following values:
Include effect types that are not defined by DirectInput.
Instruct DirectInput to modify the authored effect, if necessary, so that it plays on the current device. For example, by default, an effect authored for two axes does not play on a single-axis device. Setting this flag allows the effect to play on a single axis. The parameters are modified in the structure pointed to by the lpDiEffect member of the structure passed to the callback.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values:

If the callback stops the enumeration prematurely, the enumeration is considered to have succeeded.

ee417886 HRESULT IDirectInputDevice8W::EnumEffectsInFile([In] const wchar_t* arg0,[In] __function__stdcall* arg1,[In] void* arg2,[In] DIFEF arg3) IDirectInputDevice8W::EnumEffectsInFile
Saves information about one or more force-feedback effects to a file that can be read by usingIDirectInputDevice8::EnumEffectsInFile. This method is chiefly of interest to those wanting to write their own force-authoring applications. No documentation. No documentation. No documentation. No documentation.

If the method succeeds, it returns . If it fails, the return value can be .

ee417933 HRESULT IDirectInputDevice8W::WriteEffectToFile([In] const wchar_t* arg0,[In] unsigned int arg1,[In, Buffer] DIFILEEFFECT* arg2,[In] unsigned int arg3) IDirectInputDevice8W::WriteEffectToFile
Builds an action map for the device and retrieves information about it.
Address of a structure that receives information about the action map.
Pointer to a string that specifies the name of the user for whom mapping is requested. When using ANSI compiler settings, pass null and DirectInput will assume the current user name. When using Unicode compiler settings, do not pass null because the mappings will not be saved.
Flags to control the mapping. This can be one of the following values.
DIDBAM_DEFAULT
Overwrite all mappings except application-specified mappings; that is, mappings that have the DIA_APPMAPPED flag in the structure.
DIDBAM_HWDEFAULTS
Overwrite all mappings, including application-specified mappings. This flag is similar to DIDBAM_INITIALIZE, but automatically overrides user-mapped actions with the defaults specified by the device driver or DirectInput.
DIDBAM_INITIALIZE
Overwrite all mappings, including application-specified mappings.
DIDBAM_PRESERVE
Preserve current mappings assigned for this device or any other configured device.

If the method succeeds, the return value is , , or >. See Remarks. If the method fails, the return value can be one of the following error values: , .

The method returns if no mappings were created for the device. For example, a keyboard or mouse will not provide mappings for genre-specific actions.

If is returned, one or more of the mappings was not valid. The dwHow member of the structure is set to DIAH_ERROR. The application can iterate through the action map to find and correct errors.

If DIEFF_MAPFILEFAIL is returned, an error has occurred either reading the vendor supplied file for the device or reading or writing the user configuration file for the device.

> is returned if the mappings were not configurable. For example, the buttons on a voice controller cannot be reconfigured because each button causes a specific hardware action to occur. > overrides other success codes, so a check of the return codes will not reveal if any actions have been mapped.

If succeeds but no actions have been mapped, a subsequent call to will return but a call to Interface will fail with .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.buildactionmap HRESULT IDirectInputDevice8W::BuildActionMap([In] DIACTIONFORMATW* arg0,[In] const wchar_t* arg1,[In] unsigned int arg2) IDirectInputDevice8W::BuildActionMap
Sets the data format for a device and maps application-defined actions to device objects. It also sets the buffer size for buffered data.
Address of a structure containing information about the action map to be applied.
Unicode string that specifies the name of the user for which the action map is being set. A value of null specifies the user currently logged into the system.
DWORD value that specifies how the action map is applied. This can be one of the following values.
DIDSAM_DEFAULT
Set the action map for this user. If the map differs from the current map, the new settings are saved to disk.
DIDSAM_FORCESAVE
Always save the configuration to disk.
DIDSAM_NOUSER
Reset user ownership for this device in the default configuration property sheet. Resetting user ownership does not remove the current action map.

If the method succeeds, the return value can be one of the following error values: , , or . If the method fails, the return value can be one of the following error values: or , , , , .

This method provides the mechanism to change action-to-control mapping from the device defaults. An application must use this method to map its in-game actions to virtual controls.

The user name passed to this method binds a set of action mappings for a device to a specific user. Settings are automatically saved to disk when they differ from the currently applied map. Applications that accept input from multiple users should be very careful when applying action maps to the system mouse or keyboard, as the action maps for each user may conflict.

The method can be called only when the device is not acquired.

If succeeds but no actions have been mapped, a subsequent call to will return but a call to Interface will fail with .

ee417919 HRESULT IDirectInputDevice8W::SetActionMap([In] DIACTIONFORMATW* arg0,[In] const wchar_t* arg1,[In] unsigned int arg2) IDirectInputDevice8W::SetActionMap
Retrieves information about a device image for use in a configuration property sheet.
Address of a structure that receives information about the device image.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , , , , .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getimageinfo HRESULT IDirectInputDevice8W::GetImageInfo([InOut] DIDEVICEIMAGEINFOHEADERW* arg0) IDirectInputDevice8W::GetImageInfo
Gets the device properties. The device properties. Gets the created effects. The created effects. Obtains the capabilities of the DirectInputDevice object.

For compatibility with DirectX 3, it is also valid to pass a DIDEVCAPS_DX3 structure with the dwSize member initialized to sizeof(DIDEVCAPS_DX3).

The number of objects returned in the structure is the maximum number of objects that could be enumerated. However, all of these objects are not necessarily returned during a call to .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getcapabilities GetCapabilities GetCapabilities HRESULT IDirectInputDevice8W::GetCapabilities([Out] DIDEVCAPS* arg0)
Sets the data format for the DirectInput device.

The data format must be set before the device can be acquired by using the Interface method. It is necessary to set the data format only once. The data format cannot be changed while the device is acquired.

If the application is using action mapping, the data format is set instead by the call to .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.setdataformat SetDataFormat SetDataFormat HRESULT IDirectInputDevice8W::SetDataFormat([In] const DIDATAFORMAT* arg0)
Specifies an event that is to be set when the device state changes. It is also used to turn off event notification.

A device state change is defined as any of the following:

  • A change in the position of an axis

  • A change in the state (pressed or released) of a button

  • A change in the direction of a POV control

  • Loss of acquisition

Do not call the Win32 CloseHandle function on the event while it has been selected into a DirectInputDevice object. You must call this method with the hEvent parameter set to null before closing the event handle.

The event notification handle cannot be changed while the device is acquired. If the function is successful, the application can use the event handle like any other Win32 event handle.

Examples

The following code example checks whether the handle is currently set without blocking:

 dwResult = WaitForSingleObject(hEvent, 0); 	
            if (dwResult == WAIT_OBJECT_0) {  // Event is set. If the event was created as  // autoreset, it has also been reset. 	
            } 	
            

The following code example illustrates blocking indefinitely until the event is set. This behavior is strongly discouraged because the thread does not respond to the system until the wait is satisfied. In particular, the thread does not respond to Microsoft Windows messages.

 dwResult = WaitForSingleObject(hEvent, INFINITE); 	
            if (dwResult == WAIT_OBJECT_0) {  // Event has been set. If the event was created  // as autoreset, it has also been reset. 	
            }	
            

The following code example illustrates a typical application loop for a non-message-based application that uses two events:

 HANDLE ah[2] = { hEvent1, hEvent2 };  while (TRUE) {  dwResult = MsgWaitForMultipleObjects(2, ah, ,  INFINITE, QS_ALLINPUT);  switch (dwResult) {  case WAIT_OBJECT_0:  // Event 1 has been set. If the event was created as // autoreset, it has also been reset.  ProcessInputEvent1();  break;  case WAIT_OBJECT_0 + 1:  // Event 2 has been set. If the event was created as // autoreset, it has also been reset.  ProcessInputEvent2();  break;  case WAIT_OBJECT_0 + 2:  // A Windows message has arrived. Process  // messages until there aren't any more.  while(PeekMessage(&msg, null, 0, 0, PM_REMOVE)){  if (msg.message == WM_QUIT) {  goto exitapp;  }  TranslateMessage(&msg);  DispatchMessage(&msg);  }  break;  default:  // Unexpected error.  Panic();  break;  } 	
            } 	
            

The following code example illustrates a typical message loop for a message-based application that uses two events:

 HANDLE ah[2] = { hEvent1, hEvent2 }; 	
            DWORD dwWait = 0;  while (TRUE) {  dwResult = MsgWaitForMultipleObjects(2, ah, ,  dwWait, QS_ALLINPUT);  dwWait = 0;  switch (dwResult) {  case WAIT_OBJECT_0:  // Event 1 has been set. If the event was  // created as autoreset, it has also  // been reset.  ProcessInputEvent1();  break;  case WAIT_OBJECT_0 + 1:  // Event 2 has been set. If the event was  // created as autoreset, it has also  // been reset.  ProcessInputEvent2();  break;  case WAIT_OBJECT_0 + 2:  // A Windows message has arrived. Process  // messages until there aren't any more.  while(PeekMessage(&msg, null, 0, 0, PM_REMOVE)){  if (msg.message == WM_QUIT) {  goto exitapp;  }  TranslateMessage(&msg);  DispatchMessage(&msg);  }  break;  default:  // No input or messages waiting.  // Do a frame of the game.  // If the game is idle, tell the next wait  // to wait indefinitely for input or a message.  if (!DoGame()) {  dwWait = INFINITE;  }  break;  } 	
            } 	
            
microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.seteventnotification SetEventNotification SetEventNotification HRESULT IDirectInputDevice8W::SetEventNotification([In] void* arg0)
Obtains information about the device's identity.

For compatibility with DirectX 3, it is also valid to pass a DIDEVICEINSTANCE_DX3 structure with the dwSize member initialized to sizeof(DIDEVICEINSTANCE_DX3).

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getdeviceinfo GetDeviceInfo GetDeviceInfo HRESULT IDirectInputDevice8W::GetDeviceInfo([Out] DIDEVICEINSTANCEW* arg0)
Retrieves buffered data from the device. A collection of buffered input events. Dumps the DataFormat in native form in order to verify it against the unmanaged version. The format. This class describes a Custom force effect. It is passed in the of the structure. Marshal this class from an unamanaged buffer. The size of the unmanaged buffer. The pointer to the unmanaged buffer. An instance of TypeSpecificParameters or null Marshals this class to its native/unmanaged counterpart. A pointer to an allocated buffer containing the unmanaged structure. Free a previously allocated buffer. The buffer pointer. Gets or sets the number of channels (axes) affected by this force. The first channel is applied to the first axis associated with the effect, the second to the second, and so on. If there are fewer channels than axes, nothing is associated with the extra axes. If there is only a single channel, the effect is rotated in the direction specified by the of the structure. If there is more than one channel, rotation is not allowed. Not all devices support rotation of custom effects. The channel count. Gets or sets the sample period, in microseconds. The sample period. Gets or sets the total number of samples in the . It must be an integral multiple of the . The sample count. Gets or sets an array of force values representing the custom force. If multiple channels are provided, the values are interleaved. For example, if is 3, the first element of the array belongs to the first channel, the second to the second, and the third to the third. The force data. Gets the size of this specific parameter. The size. Describes a device's data format. This structure is used with theIDirectInputDevice8::SetDataFormatmethod.

Applications do not typically need to create a structure. An application can use one of the predefined global data format variables, c_dfDIMouse, c_dfDIMouse2, c_dfDIKeyboard, c_dfDIJoystick, or c_dfDIJoystick2.

Applications that need to create a structure must first call to determine the available objects for the current device. This is because the method will return if an object is described in the structure but does not exist on the current device.

The following code example sets a data format for a device that has an X-axis and a Y-axis:

 // Suppose an application uses the following 	
            // structure to read device data.  typedef struct MYDATA {  LONG  lX;                   // X-axis goes here.  LONG  lY;                   // Y-axis goes here.  BYTE  bButtonA;             // One button goes here.  BYTE  bButtonB;             // Another button goes here.  BYTE  bPadding[2];          // Must be DWORD multiple in size. 	
            } MYDATA;  // Then, it can use the following data format.  DIOBJECTDATAFORMAT rgodf[ ] = {  { &, FIELD_OFFSET(MYDATA, lX),  | , 0, },  { &, FIELD_OFFSET(MYDATA, lY),   | , 0, },  { &, FIELD_OFFSET(MYDATA, bButtonA),  | , 0, },  { &, FIELD_OFFSET(MYDATA, bButtonB),   | , 0, }, 	
            }; 	
            #define numObjects (sizeof(rgodf) / sizeof(rgodf[0]))   df = {  sizeof(),       // Size of this structure  sizeof(DIOBJECTDATAFORMAT), // Size of object data format  ,               // Absolute axis coordinates  sizeof(MYDATA),             // Size of device data  numObjects,                 // Number of objects  rgodf,                      // And here they are 	
            }; 
microsoft.directx_sdk.reference.didataformat DIDATAFORMAT DIDATAFORMAT
No documentation. unsigned int dwSize unsigned int dwSize No documentation. unsigned int dwObjSize unsigned int dwObjSize Flags describing other attributes of the data format. DIDF dwFlags DIDF dwFlags No documentation. unsigned int dwDataSize unsigned int dwDataSize No documentation. unsigned int dwNumObjs unsigned int dwNumObjs No documentation. void* rgodf void rgodf Attributes that describes a device data format specification. Gets or sets the dataformat flags. The flags. Attribute to describe a custom format for a field. Gets or sets the name of the field. Default is using the field name. Gets or sets Guid for the axis, button, or other input source. When requesting a data format, making this member empty indicates that any type of object is permissible. The GUID. Gets or sets the array count. The array count. Gets or sets the device type that describes the object. The type. Gets or sets the extra flags used to describe the data format. The flags. Gets or sets the instance number. The instance number. DirectInput device data format. Contains information about device images. Used in theIDirectInputDevice8::GetImageInfomethod.

The buffer at lprgImageInfoArray must be large enough to hold all required image information structures. Applications can query for the required size by calling the method with the dwBufferSize member set to zero. After the call, dwBufferUsed contains the amount of memory, in bytes, that was modified.

ee416609 DIDEVICEIMAGEINFOHEADERW DIDEVICEIMAGEINFOHEADERW
Initializes a new instance of the class. No documentation. unsigned int dwSize unsigned int dwSize No documentation. unsigned int dwSizeImageInfo unsigned int dwSizeImageInfo No documentation. unsigned int dwcViews unsigned int dwcViews No documentation. unsigned int dwcButtons unsigned int dwcButtons No documentation. unsigned int dwcAxes unsigned int dwcAxes No documentation. unsigned int dwcPOVs unsigned int dwcPOVs No documentation. unsigned int dwBufferSize unsigned int dwBufferSize No documentation. unsigned int dwBufferUsed unsigned int dwBufferUsed No documentation. DIDEVICEIMAGEINFOW* lprgImageInfoArray DIDEVICEIMAGEINFOW lprgImageInfoArray Describes an instance of a DirectInput device. This structure is used with theIDirectInput8::EnumDevices,IDirectInput8::EnumDevicesBySemantics, andIDirectInputDevice8::GetDeviceInfomethods.

The following device types and subtypes are defined for use in the dwDevType member.

  • First-person action game device. The following subtypes are defined.

    • Device that does not provide the minimum number of device objects for action mapping.

    • Device designed for first-person shooter games.

    • Device with six degrees of freedom; that is, three lateral axes and three rotational axes.

    • Unknown subtype.

  • Device that does not fall into another category.

  • Input device used to control another type of device from within the context of the application. The following subtypes are defined.

    • Control used to make communications selections.

    • Device that must use its default configuration and cannot be remapped.

    • Unknown subtype.

  • Device for steering. The following subtypes are defined.

    • Steering device that reports acceleration and brake pedal values from a single axis.

    • Steering device that reports acceleration and brake pedal values from separate axes.

    • Hand-held steering device.

    • Steering device that does not provide the minimum number of device objects for action mapping.

    • Steering device that reports acceleration, brake, and clutch pedal values from separate axes.

  • Controller for flight simulation. The following subtypes are defined.

    • Flight controller that does not provide the minimum number of device objects for action mapping.

    • Flight device based on a remote control for model aircraft.

    • Joystick.

    • Yoke.

  • Gamepad. The following subtypes are defined.

    • Gamepad that does not provide the minimum number of device objects for action mapping.

    • Standard gamepad that provides the minimum number of device objects for action mapping.

    • Gamepad that can report x-axis and y-axis data based on the attitude of the controller.

  • Joystick. The following subtypes are defined.

    • Joystick that does not provide the minimum number of device objects for action mapping.

    • Standard joystick that provides the minimum number of device objects for action mapping.

  • Keyboard or keyboard-like device. The following subtypes are defined.

    • Subtype could not be determined.

    • IBM PC/XT 83-key keyboard.

    • Olivetti 102-key keyboard.

    • IBM PC/AT 84-key keyboard.

    • IBM PC Enhanced 101/102-key or Microsoft Natural keyboard.

    • Nokia 1050 keyboard.

    • Nokia 9140 keyboard.

    • Japanese NEC PC98 keyboard.

    • Japanese NEC PC98 laptop keyboard.

    • Japanese NEC PC98 106-key keyboard.

    • Japanese 106-key keyboard.

    • Japanese AX keyboard.

    • Japanese J3100 keyboard.

  • A mouse or mouse-like device (such as a trackball). The following subtypes are defined.

    • Mouse that returns absolute axis data.

    • Fingerstick.

    • Touchpad.

    • Trackball.

    • Traditional mouse.

    • Subtype could not be determined.

  • Remote-control device. The following subtype is defined.

    • Subtype could not be determined.

  • Screen reference. The following subtypes are defined.

    • Unknown subtype.

    • Light gun.

    • Light pen.

    • Touch screen.

  • Specialized device with functionality unsuitable for the main control of an application, such as pedals used with a wheel. The following subtypes are defined.

    • Secondary handheld controller.

    • Device whose primary function is to report acceleration and brake pedal values from a single axis.

    • Device whose primary function is to report acceleration and brake pedal values from separate axes.

    • Device that tracks hand movement.

    • Device that tracks head movement.

    • Device with rudder pedals.

    • Device that reports gear selection from an axis.

    • Device that reports gear selection from button states.

    • Device whose primary function is to report at least two throttle values. It may have other controls.

    • Device whose primary function is to report acceleration, brake, and clutch pedal values from separate axes.

    • Device whose primary function is to report a single throttle value. It may have other controls.

    • Unknown subtype.

Versions of DirectInput earlier than DirectX 8.0 have a somewhat different scheme of device types and subtypes. See the DIDEVTYPExxx defines in Dinput.h.

microsoft.directx_sdk.reference.dideviceinstance DIDEVICEINSTANCEW DIDEVICEINSTANCEW
Initializes a new instance of the class. No documentation. unsigned int dwSize unsigned int dwSize No documentation. GUID guidInstance GUID guidInstance No documentation. GUID guidProduct GUID guidProduct No documentation. unsigned int dwDevType unsigned int dwDevType No documentation. wchar_t tszInstanceName[260] wchar_t tszInstanceName No documentation. wchar_t tszProductName[260] wchar_t tszProductName No documentation. GUID guidFFDriver GUID guidFFDriver No documentation. HID_USAGE_PAGE wUsagePage HID_USAGE_PAGE wUsagePage No documentation. HID_USAGE_ID wUsage HID_USAGE_ID wUsage Gets the type of this device. The type. Gets the subtype of the device. The subtype. Gets a value indicating whether this instance is human interface device. true if this instance is human interface device; otherwise, false. Describes a device object instance. This structure is used with theIDirectInputDevice8::EnumObjectsmethod to provide theDIEnumDeviceObjectsCallbackcallback function with information about a particular object associated with a device, such as an axis or button. It is also used with theIDirectInputDevice8::GetObjectInfomethod to retrieve information about a device object.
Note
The value in dwOfs is the offset within the raw data returned by the device, regardless of whether the data format has been set for the device.

Applications can use the wUsagePage and wUsage members to obtain additional information about how the object was designed to be used. For example, if wUsagePage has the value 0x02 (vehicle controls) and wUsage has the value 0xB9 (elevator trim), the object was designed to be the elevator trim control on a flight stick. A flight simulator application can use this information to provide more reasonable defaults for objects on the device. HID usage codes are determined by the USB standards committee.

microsoft.directx_sdk.reference.dideviceobjectinstance DIDEVICEOBJECTINSTANCEW DIDEVICEOBJECTINSTANCEW
No documentation. unsigned int dwSize unsigned int dwSize No documentation. GUID guidType GUID guidType No documentation. unsigned int dwOfs unsigned int dwOfs No documentation. DIDFT dwType DIDFT dwType No documentation. DIDOI dwFlags DIDOI dwFlags No documentation. wchar_t tszName[260] wchar_t tszName No documentation. unsigned int dwFFMaxForce unsigned int dwFFMaxForce No documentation. unsigned int dwFFForceResolution unsigned int dwFFForceResolution No documentation. unsigned short wCollectionNumber unsigned short wCollectionNumber No documentation. unsigned short wDesignatorIndex unsigned short wDesignatorIndex No documentation. unsigned short wUsagePage unsigned short wUsagePage No documentation. unsigned short wUsage unsigned short wUsage No documentation. unsigned int dwDimension unsigned int dwDimension No documentation. unsigned short wExponent unsigned short wExponent No documentation. unsigned short wReportId unsigned short wReportId Propertyies for a . Initializes a new instance of the class. The device. The code. Howtype. Initializes a new instance of the class by offset inside a structure. The device. The name of the property inside dataFormat type. The data format. Gets or sets the device. The device. Gets or sets the code. The code. Gets or sets the how type. The how type. Gets the key code for a keyboard key. An exception is raised if the property cannot resolve specialized keys on USB keyboards because they do not exist in scan code form. For all other failures, an exception is also returned. The key id. The key code Gets the localized key name for a keyboard key. Using this property on devices other than a keyboard will return unexpected names. The key. Gets or sets a value indicating whether device objects are self centering. true if device objects are self centering; otherwise, false. Gets or sets the axis mode. The axis mode. Gets or sets the input buffer size. The buffer size determines the amount of data that the buffer can hold between calls to the method before data is lost. You can set this value to 0 to indicate that the application does not read buffered data from the device. If the buffer size is too large for the device to support it, then the largest possible buffer size is set. However, this property always returns the buffer size set using the property, even if the buffer cannot be supported because it is too large. The size of the buffer. Gets the class GUID for the device. This property lets advanced applications perform operations on a human interface device that are not supported by DirectInput. The class GUID. Gets or sets the dead zone of a joystick, in the range from 0 through 10,000, where 0 indicates that there is no dead zone, 5,000 indicates that the dead zone extends over 50 percent of the physical range of the axis on both sides of center, and 10,000 indicates that the entire physical range of the axis is dead. When the axis is within the dead zone, it is reported as being at the center of its range. The dead zone. Gets or sets the force feedback gain of the device. The gain value is applied to all effects created on the device. The value is an integer in the range from 0 through 10,000, specifying the amount by which effect magnitudes should be scaled for the device. For example, a value of 10,000 indicates that all effect magnitudes are to be taken at face value. A value of 9,000 indicates that all effect magnitudes are to be reduced to 90 percent of their nominal magnitudes. DirectInput always checks the gain value before setting the gain property. If the gain is outside of the range (less than zero or greater than 10,000), setting this propery will raise an exception. Otherwise, no exception if successful, even if the device does not support force feedback. Setting a gain value is useful when an application wants to scale down the strength of all force-feedback effects uniformly, based on user preferences. Unlike other properties, the gain can be set when the device is in an acquired state. The force feedback gain. Gets the input granularity. Granularity represents the smallest distance over which the object reports movement. Most axis objects have a granularity of one; that is, all values are possible. Some axes have a larger granularity. For example, the wheel axis on a mouse can have a granularity of 20; that is, all reported changes in position are multiples of 20. In other words, when the user turns the wheel slowly, the device reports a position of 0, then 20, then 40, and so on. This is a read-only property. The granularity. Gets or sets the friendly instance name of the device. This property exists for advanced applications that want to change the friendly instance name of a device (as returned in the tszInstanceName member of the structure) to distinguish it from similar devices that are plugged in simultaneously. Most applications should have no need to change the friendly name. The name of the instance. Gets the device interface path for the device. This property lets advanced applications perform operations on a human interface device that are not supported by DirectInput. The interface path. Gets the instance number of a joystick. This property is not implemented for the mouse or keyboard. The joystick id. Gets the memory load for the device. This setting applies to the entire device, rather than to any particular object. The retrieved value is in the range from 0 through 100, indicating the percentage of device memory in use. The device must be acquired in exclusive mode. If it is not, the method will fail with an exception. The memory load. Gets the human-readable display name of the port to which this device is connected. Not generally used by applications. The human-readable display name of the port to which this device is connected. Gets the vendor identity (ID) and product ID of a HID device. This property is of type int and contains both values. These two short values are combined. This property applies to the entire device, rather than to any particular object. The product id. Gets or sets the friendly product name of the device. This property exists for advanced applications that want to change the friendly product name of a device (as returned in the tszProductName member of the structure) to distinguish it from similar devices which are plugged in simultaneously. Most applications should have no need to change the friendly name. This setting applies to the entire device. Setting the product name is only useful for changing the user-defined name of an analog joystick on Microsoft Windows 98, Windows 2000, and Windows Millennium Edition (Windows Me) computers. In other cases, attempting to set this property will still return ok. However, the name is not stored in a location used by the getter of this property. The name of the product. Gets the range of values an object can possibly report. The range. Gets or sets the saturation zones of a joystick, in the range from 0 through 10,000. The saturation level is the point at which the axis is considered to be at its most extreme position. For example, if the saturation level is set to 9,500, the axis reaches the extreme of its range when it has moved 95 percent of the physical distance from its center position (or from the dead zone). The saturation. Gets the user name for a user currently assigned to a device. User names are set by calling . If no user name is set, the method throws an exception. The name of the user. Gets the vendor identity (ID) and product ID of a HID device. This property is of type int and contains both values. These two short values are combined. This property applies to the entire device, rather than to any particular object. The product id. No documentation. IDirectInput8W IDirectInput8W Initializes a new instance of the class. Gets all devices. A collection of Gets the devices for a particular and . Class of the device. The device enum flags. A collection of Gets the devices for a particular and . Type of the device. The device enum flags. A collection of Determines whether a device with the specified Guid is attached. The device Guid. true if the device with the specified device Guid is attached ; otherwise, false. Runs Control Panel to enable the user to install a new input device or modify configurations. Runs Control Panel to enable the user to install a new input device or modify configurations. Handle of the window to be used as the parent window for the subsequent user interface. If this parameter is NULL, no parent window is used. Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion. Creates and initializes an instance of a device based on a given globally unique identifier (), and obtains anIDirectInputDevice8 Interfaceinterface. No documentation. No documentation. No documentation.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following: , , , , .

Calling this method with pUnkOuter = null is equivalent to creating the object by CoCreateInstance (&CLSID_DirectInputDevice, null, CLSCTX_INPROC_SERVER, riid, lplpDirectInputDevice) and then initializing it with Initialize.

Calling this method with pUnkOuter != null is equivalent to creating the object by CoCreateInstance (&CLSID_DirectInputDevice, punkOuter, CLSCTX_INPROC_SERVER, &IID_IUnknown, lplpDirectInputDevice). The aggregated object must be initialized manually.

microsoft.directx_sdk.idirectinput8.idirectinput8.createdevice HRESULT IDirectInput8W::CreateDevice([In] const GUID& arg0,[Out] void** arg1,[In] IUnknown* arg2) IDirectInput8W::CreateDevice
Enumerates available devices.
Device type filter.

To restrict the enumeration to a particular type of device, set this parameter to a DI8DEVTYPE_* value. See .

To enumerate a class of devices, use one of the following values.

All devices.
All devices that do not fall into another class.
All game controllers.
All keyboards. Equivalent to .
All devices of type and .
Address of a callback function to be called once for each device enumerated. See DIEnumDevicesCallback.
Application-defined 32-bit value to be passed to the enumeration callback each time it is called.
Flag value that specifies the scope of the enumeration. This parameter can be one or more of the following values:
All installed devices are enumerated. This is the default behavior.
Only attached and installed devices.
Only devices that support force feedback.
Include devices that are aliases for other devices.
Include hidden devices. For more information about hidden devices, see .
Include phantom (placeholder) devices.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , .

All installed devices can be enumerated, even if they are not present. For example, a flight stick might be installed on the system but not currently plugged into the computer. Set the dwFlags parameter to indicate whether only attached or all installed devices should be enumerated. If the flag is not present, all installed devices are enumerated.

A preferred device type can be passed as a dwDevType filter so that only the devices of that type are enumerated.

On Microsoft Windows XP, DirectInput enumerates only one mouse and one keyboard device, referred to as the system mouse and the system keyboard. These devices represent the combined output of all mice and keyboards respectively on a system. For information about how to read from multiple mice or keyboards individually on Windows XP, see the WM_INPUT documentation.

Note
The order in which devices are enumerated by DirectInput is not guaranteed.
microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices HRESULT IDirectInput8W::EnumDevices([In] unsigned int arg0,[In] __function__stdcall* arg1,[In] void* arg2,[In] DIEDFL arg3) IDirectInput8W::EnumDevices
Retrieves the status of a specified device.
Reference to (C++) or address of (C) the globally unique identifier () identifying the instance of the device whose status is being checked.

If the method succeeds, the return value is if the device is attached to the system, or otherwise. If the method fails, the return value can be one of the following error values: , , .

microsoft.directx_sdk.idirectinput8.idirectinput8.getdevicestatus HRESULT IDirectInput8W::GetDeviceStatus([In] const GUID& arg0) IDirectInput8W::GetDeviceStatus
Runs Control Panel to enable the user to install a new input device or modify configurations.
Handle of the window to be used as the parent window for the subsequent user interface. If this parameter is null, no parent window is used.
Currently not used and must be set to 0.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , .

ee417815 HRESULT IDirectInput8W::RunControlPanel([In] HWND arg0,[In] unsigned int arg1) IDirectInput8W::RunControlPanel
Initializes a DirectInput object. Applications normally do not need to call this method. TheDirectInput8Createfunction automatically initializes the DirectInput object after creating it. No documentation. No documentation.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , .

microsoft.directx_sdk.idirectinput8.idirectinput8.initialize HRESULT IDirectInput8W::Initialize([In] HINSTANCE arg0,[In] unsigned int arg1) IDirectInput8W::Initialize
Retrieves the instance globally unique identifier () of a device that has been newly attached to the system. It is called in response to a Microsoft Win32 device management notification.
Unique identifier of the device class for the device that the application is to locate. The application obtains the class from the device arrival notification. For more information, see the documentation on the DBT_DEVICEARRIVAL event in the Microsoft Platform Software Development Kit (SDK).
Name of the device. The application obtains the name from the device arrival notification.
Address of a variable to receive the instance for the device, if the device is found. This value can be passed to .
microsoft.directx_sdk.idirectinput8.idirectinput8.finddevice HRESULT IDirectInput8W::FindDevice([In] const GUID& arg0,[In] const wchar_t* arg1,[Out] GUID* arg2) IDirectInput8W::FindDevice
Enumerates devices that most closely match the application-specified action map.
String identifying the current user, or null to specify the user logged onto the system. The user name is taken into account when enumerating devices. A device with user mappings is preferred to a device without any user mappings. By default, devices in use by other users are not enumerated for this user.
Address of a structure that specifies the action map for which suitable devices are enumerated.
Address of a callback function to be called once for each device enumerated. See DIEnumDevicesBySemanticsCallback.
Application-defined 32-bit value to pass to the enumeration callback each time it is called.
Flag value that specifies the scope of the enumeration. This parameter can be one or more of the following values.
DIEDBSFL_ATTACHEDONLY
Only attached and installed devices are enumerated.
DIEDBSFL_AVAILABLEDEVICES
Only unowned, installed devices are enumerated.
DIEDBSFL_FORCEFEEDBACK
Only devices that support force feedback are enumerated.
DIEDBSFL_MULTIMICEKEYBOARDS
Only secondary (non-system) keyboard and mouse devices.
DIEDBSFL_NONGAMINGDEVICES
Only HID-compliant devices whose primary purpose is not as a gaming device. Devices such as USB speakers and multimedia buttons on some keyboards would fall within this value.
DIEDBSFL_THISUSER
All installed devices for the user identified by ptszUserName, and all unowned devices, are enumerated.
DIEDBSFL_VALID
DIEDBSFL_VALID is also defined in Dinput.h, but is not used by applications.

If the method succeeds, the return value is . If the method fails, the return value can be one of the following error values: , .

The keyboard and mouse are enumerated last.

Note
The order in which devices are enumerated by DirectInput is not guaranteed.
ee417807 HRESULT IDirectInput8W::EnumDevicesBySemantics([In] const wchar_t* arg0,[In] DIACTIONFORMATW* arg1,[In] __function__stdcall* arg2,[In] void* arg3,[In] unsigned int arg4) IDirectInput8W::EnumDevicesBySemantics
No documentation. IDirectInputEffect IDirectInputEffect Initializes a new instance of the class. The device. The GUID. The parameters. Sends a hardware-specific command to the force-feedback driver. Driver-specific command number. Consult the driver documentation for a list of valid commands. Buffer containing the data required to perform the operation. Buffer in which the operation's output data is returned. Number of bytes written to the output buffer Because each driver implements different escapes, it is the application's responsibility to ensure that it is sending the escape to the correct driver by comparing the value of the guidFFDriver member of the structure against the value the application is expecting. Gets the characteristics of an effect. The current parameters of this effect. Sets the characteristics of an effect. The parameters of this effect. A object describing the result of the operation. Begins playing an effect infinitely. If the effect is already playing, it is restarted from the beginning. If the effect has not been downloaded or has been modified since its last download, it is downloaded before being started. This default behavior can be suppressed by passing the flag. A object describing the result of the operation. Begins playing an effect infinitely. If the effect is already playing, it is restarted from the beginning. If the effect has not been downloaded or has been modified since its last download, it is downloaded before being started. This default behavior can be suppressed by passing the flag. Flags that describe how the effect should be played by the device. A object describing the result of the operation. Begins playing an effect. If the effect is already playing, it is restarted from the beginning. If the effect has not been downloaded or has been modified since its last download, it is downloaded before being started. This default behavior can be suppressed by passing the flag. Number of times to play the effect in sequence. The envelope is re-articulated with each iteration. To play the effect exactly once, pass 1. To play the effect repeatedly until explicitly stopped, pass -1. To play the effect until explicitly stopped without re-articulating the envelope, modify the effect parameters with the method, and change the Duration member to -1. A object describing the result of the operation. Initializes a new instance of the class. The native pointer. Performs an explicit conversion from to . (This method is a shortcut to ) The native pointer. The result of the conversion. No documentation. No documentation. No documentation. No documentation. No documentation. HRESULT IDirectInputEffect::Initialize([In] HINSTANCE arg0,[In] unsigned int arg1,[In] const GUID& arg2) IDirectInputEffect::Initialize No documentation. No documentation. No documentation. HRESULT IDirectInputEffect::GetEffectGuid([Out] GUID* arg0) IDirectInputEffect::GetEffectGuid No documentation. No documentation. No documentation. HRESULT IDirectInputEffect::GetParameters([Out] DIEFFECT* arg0,[In] DIEP arg1) IDirectInputEffect::GetParameters No documentation. No documentation. No documentation. No documentation. HRESULT IDirectInputEffect::SetParameters([In] const DIEFFECT* arg0,[In] DIEP arg1) IDirectInputEffect::SetParameters No documentation. No documentation. No documentation. No documentation. HRESULT IDirectInputEffect::Start([In] unsigned int arg0,[In] DIES arg1) IDirectInputEffect::Start No documentation. No documentation. HRESULT IDirectInputEffect::Stop() IDirectInputEffect::Stop No documentation. No documentation. No documentation. HRESULT IDirectInputEffect::GetEffectStatus([Out] DIEGES* arg0) IDirectInputEffect::GetEffectStatus No documentation. No documentation. HRESULT IDirectInputEffect::Download() IDirectInputEffect::Download No documentation. No documentation. HRESULT IDirectInputEffect::Unload() IDirectInputEffect::Unload No documentation. No documentation. No documentation. HRESULT IDirectInputEffect::Escape([In] DIEFFESCAPE* arg0) IDirectInputEffect::Escape No documentation. GetEffectGuid GetEffectGuid HRESULT IDirectInputEffect::GetEffectGuid([Out] GUID* arg0) No documentation. GetEffectStatus GetEffectStatus HRESULT IDirectInputEffect::GetEffectStatus([Out] DIEGES* arg0) Describes data for a force-feedback effect stored in a file. It is used in conjunction with theIDirectInputDevice8::EnumEffectsInFileandIDirectInputDevice8::WriteEffectToFilemethods. ee416626 DIFILEEFFECT DIFILEEFFECT Initializes a new instance of the class. No documentation. unsigned int dwSize unsigned int dwSize No documentation. GUID GuidEffect GUID GuidEffect No documentation. const DIEFFECT* lpDiEffect DIEFFECT lpDiEffect No documentation. char szFriendlyName[260] char szFriendlyName Gets or sets the parameters. The parameters. No documentation. DIEFFECTINFOW DIEFFECTINFOW Initializes a new instance of the class. No documentation. unsigned int dwSize unsigned int dwSize No documentation. GUID guid GUID guid No documentation. DIEFT dwEffType DIEFT dwEffType No documentation. DIEP dwStaticParams DIEP dwStaticParams No documentation. DIEP dwDynamicParams DIEP dwDynamicParams No documentation. wchar_t tszName[260] wchar_t tszName Used by theIDirectInputDevice8::CreateEffectmethod to initialize a newIDirectInputEffect Interfaceobject. It is also used by theIDirectInputEffect::SetParametersandIDirectInputEffect::GetParametersmethods.
Note
The rglDirection array must contain cAxes entries, even if polar or spherical coordinates are given. In these cases, the last element in the rglDirection array is reserved and must be 0.
ee416616 DIEFFECT DIEFFECT
Initializes a new instance of the class. Gets the axes. See and . The axes. The directions. Sets the axes. See and . The axes. The directions. No documentation. unsigned int dwSize unsigned int dwSize No documentation. DIEFF dwFlags DIEFF dwFlags No documentation. unsigned int dwDuration unsigned int dwDuration No documentation. unsigned int dwSamplePeriod unsigned int dwSamplePeriod No documentation. unsigned int dwGain unsigned int dwGain No documentation. unsigned int dwTriggerButton unsigned int dwTriggerButton No documentation. unsigned int dwTriggerRepeatInterval unsigned int dwTriggerRepeatInterval No documentation. unsigned int cAxes unsigned int cAxes No documentation. unsigned int* rgdwAxes unsigned int rgdwAxes No documentation. int* rglDirection int rglDirection No documentation. DIENVELOPE* lpEnvelope DIENVELOPE lpEnvelope No documentation. unsigned int cbTypeSpecificParams unsigned int cbTypeSpecificParams No documentation. void* lpvTypeSpecificParams void lpvTypeSpecificParams No documentation. unsigned int dwStartDelay unsigned int dwStartDelay Optional Envelope structure that describes the envelope to be used by this effect. Not all effect types use envelope. If no envelope is to be applied, the member should be set to null. Gets or sets an array containing identifiers or offsets identifying the axes to which the effect is to be applied. The flags and determine the semantics of the values in the array. The list of axes associated with an effect cannot be changed once it has been set. No more than 32 axes can be associated with a single effect. The axes. Gets or sets an array containing either Cartesian coordinates, polar coordinates, or spherical coordinates. The flags , , and determine the semantics of the values in the array. If Cartesian, each value in Directions is associated with the corresponding axis in Axes. If polar, the angle is measured in hundredths of degrees from the (0, - 1) direction, rotated in the direction of (1, 0). This usually means that north is away from the user, and east is to the user's right. The last element is not used. If spherical, the first angle is measured in hundredths of a degree from the (1, 0) direction, rotated in the direction of (0, 1). The second angle (if the number of axes is three or more) is measured in hundredths of a degree toward (0, 0, 1). The third angle (if the number of axes is four or more) is measured in hundredths of a degree toward (0, 0, 0, 1), and so on. The last element is not used. The directions. Gets or sets the type specific parameter. Reference to a type-specific parameters, or null if there are no type-specific parameters. If the effect is of type , this member contains an indirect reference to a ConditionSet structures that define the parameters for the condition. A single structure may be used, in which case the condition is applied in the direction specified in the Directions array. Otherwise, there must be one structure for each axis, in the same order as the axes in rgdwAxes array. If a structure is supplied for each axis, the effect should not be rotated; you should use the following values in the Directions array: : 0, 0, ... / : 9000, 0, ... / : 1, 0, ... If the effect is of type , this member contains an indirect reference to a that defines the parameters for the custom force. If the effect is of type , this member contains a pointer to a that defines the parameters for the effect. If the effect is of type , this member contains a pointer to a that defines the parameters for the constant force. If the effect is of type , this member contains a pointer to a that defines the parameters for the ramp force. To gain access to the underlying structure, you need to call the method . The type specific parameter. Enumerator callback for DirectInput EnumCreatedEffects. Initializes a new instance of the class. Natives the pointer. Gets or sets the informations. The informations. Enumerator callback for DirectInput EnumDevices. Initializes a new instance of the class. Natives the pointer. Gets or sets the informations. The informations. Enumerator callback for DirectInput EnumEffects. Initializes a new instance of the class. Natives the pointer. Gets or sets the informations. The informations. Enumerator callback for DirectInput EnumEffectsInFile. Initializes a new instance of the class. Natives the pointer. Gets or sets the informations. The informations. Enumerator callback for DirectInput EnumObjects. Initializes a new instance of the class. Natives the pointer. Gets or sets the informations. The informations. Used by theDIEFFECTstructure to specify the optional envelope parameters for an effect. The sustain level for the envelope is represented by the dwMagnitude member of theDIPERIODICstructure and the lMagnitude member of theDICONSTANTFORCEstructure. The sustain time is represented by dwDuration member of theDIEFFECTstructure. microsoft.directx_sdk.reference.dienvelope DIENVELOPE DIENVELOPE No documentation. unsigned int dwSize unsigned int dwSize No documentation. unsigned int dwAttackLevel unsigned int dwAttackLevel No documentation. unsigned int dwAttackTime unsigned int dwAttackTime No documentation. unsigned int dwFadeLevel unsigned int dwFadeLevel No documentation. unsigned int dwFadeTime unsigned int dwFadeTime Flags that specify the cooperative level to associate with the input device. This flag is used by method. DISCL DISCL The application is requesting an exclusive access to the device. If the exclusive access is authorized, no other instance of the device can get an exclusive access to the device while it is acquired. Note that non-exclusive access to the input device is always authorized, even when another application has an exclusive access. In exclusive mode, an application that acquires the mouse or keyboard device must unacquire the input device when it receives a windows event message WM_ENTERSIZEMOVE or WM_ENTERMENULOOP. Otherwise, the user won't be able to access to the menu or move and resize the window. DISCL_EXCLUSIVE DISCL_EXCLUSIVE The application is requesting a non-exclusive access to the device. There is no interference even if another application is using the same device. DISCL_NONEXCLUSIVE DISCL_NONEXCLUSIVE The application is requesting a foreground access to the device. If the foreground access is authorized and the associated window moves to the background, the device is automatically unacquired. DISCL_FOREGROUND DISCL_FOREGROUND The application is requesting a background access to the device. If background access is authorized, the device can be acquired even when the associated window is not the active window. DISCL_BACKGROUND DISCL_BACKGROUND The application is requesting to disable the Windows logo key effect. When this flag is set, the user cannot perturbate the application. However, when the default action mapping UI is displayed, the Windows logo key is operating as long as that UI is opened. Consequently, this flag has no effect in this situation. DISCL_NOWINKEY DISCL_NOWINKEY Flags describing other attributes of the . DIDF DIDF The axes are specified in absolute mode. Specifying this flag in equals to manually setting the axis mode property, using the property on the . xUsage of this flag is exclusive with flag. DIDF_ABSAXIS DIDF_ABSAXIS The axes are specified in relative mode. Specifying this flag in equals to manually setting the axis mode property using the property on the . Usage of this flag is exclusive with flag. DIDF_RELAXIS DIDF_RELAXIS Device Axis mode. This flag is used by the property on the . DIPROPAXISMODE DIPROPAXISMODE The axes are specified in absolute mode for the whole device. DIPROPAXISMODE_ABS DIPROPAXISMODE_ABS The axes are specified in relative mode for the whole device. DIPROPAXISMODE_REL DIPROPAXISMODE_REL Device class filter used by method. DI8DEVCLASS DI8DEVCLASS All devices. DI8DEVCLASS_ALL DI8DEVCLASS_ALL All devices that do not fall into another class. DI8DEVCLASS_DEVICE DI8DEVCLASS_DEVICE All devices of type and . DI8DEVCLASS_POINTER DI8DEVCLASS_POINTER All keyboards. Equivalent to . DI8DEVCLASS_KEYBOARD DI8DEVCLASS_KEYBOARD All game controllers. DI8DEVCLASS_GAMECTRL DI8DEVCLASS_GAMECTRL Flags that refine the scope of the enumeration used by and methods. DIEDFL DIEDFL All installed devices are enumerated. This is the default behavior. DIEDFL_ALLDEVICES DIEDFL_ALLDEVICES Only attached and installed devices. DIEDFL_ATTACHEDONLY DIEDFL_ATTACHEDONLY Only devices that support force feedback. DIEDFL_FORCEFEEDBACK DIEDFL_FORCEFEEDBACK Include devices that are aliases for other devices. DIEDFL_INCLUDEALIASES DIEDFL_INCLUDEALIASES Include hidden devices. For more information about hidden devices, see . DIEDFL_INCLUDEPHANTOMS DIEDFL_INCLUDEPHANTOMS Include phantom (placeholder) devices. DIEDFL_INCLUDEHIDDEN DIEDFL_INCLUDEHIDDEN Flags associated with the device. DIDC DIDC The device is physically attached to the user's computer. DIDC_ATTACHED DIDC_ATTACHED At least one object on the device is polled, rather than interrupt-driven. For these objects, the application must explicitly call the Interface method to obtain data. HID devices can contain a mixture of polled and nonpolled objects. DIDC_POLLEDDEVICE DIDC_POLLEDDEVICE If this flag is set, the data is coming from a user mode device interface, such as a Human Interface Device (human interface device), or by some other ring 3 means. If it is not set, the data is coming directly from a kernel mode driver. DIDC_EMULATED DIDC_EMULATED At least one object in the current data format is polled, rather than interrupt-driven. For these objects, the application must explicitly call the Interface method to obtain data. DIDC_POLLEDDATAFORMAT DIDC_POLLEDDATAFORMAT The device supports force feedback. DIDC_FORCEFEEDBACK DIDC_FORCEFEEDBACK The force-feedback system supports the attack parameter for at least one effect. If the device does not support attack, the attack level and attack time members of the structure are ignored by the device. After a call to the method, an individual effect sets the flag if attack is supported for that effect. DIDC_FFATTACK DIDC_FFATTACK The force-feedback system supports the fade parameter for at least one effect. If the device does not support fade, the fade level and fade time members of the structure are ignored by the device. After a call to the method, an individual effect sets the flag if fade is supported for that effect. DIDC_FFFADE DIDC_FFFADE The force-feedback system supports the saturation of condition effects for at least one condition. If the device does not support saturation, the force generated by a condition is limited only by the maximum force that the device can generate. After a call to the method, an individual condition sets the flag if saturation is supported for that condition. DIDC_SATURATION DIDC_SATURATION The force-feedback system supports two coefficient values for conditions (one for the positive displacement of the axis and one for the negative displacement of the axis) for at least one condition. If the device does not support both coefficients, the negative coefficient in the structure is ignored. After a call to the method, an individual condition sets the flag if separate positive and negative coefficients are supported for that condition. DIDC_POSNEGCOEFFICIENTS DIDC_POSNEGCOEFFICIENTS The force-feedback system supports a maximum saturation for both positive and negative force output for at least one condition. If the device does not support both saturation values, the negative saturation in the structure is ignored. After a call to the IDirectInputDevice8::GetEffectInfo method, an individual condition sets the flag if separate positive and negative saturation are supported for that condition. DIDC_POSNEGSATURATION DIDC_POSNEGSATURATION The device supports deadband for at least one force-feedback condition. DIDC_DEADBAND DIDC_DEADBAND The force-feedback system supports the start delay parameter for at least one effect. If the device does not support start delays, the member of the structure is ignored. DIDC_STARTDELAY DIDC_STARTDELAY The device is a alias to another DirectInput device. Alias devices are by default not returned by . DIDC_ALIAS DIDC_ALIAS Placeholder. Phantom devices are by default not enumerated by . DIDC_PHANTOM DIDC_PHANTOM Fictitious device created by a device driver so that it can generate keyboard and mouse events. Such devices are not normally returned by . DIDC_HIDDEN DIDC_HIDDEN No documentation. DIDFT_FLAGS DIDFT_FLAGS All objects. DIDFT_ALL DIDFT_ALL A relative axis. DIDFT_RELAXIS DIDFT_RELAXIS An absolute axis. DIDFT_ABSAXIS DIDFT_ABSAXIS An axis, either absolute or relative. DIDFT_AXIS DIDFT_AXIS A push button. A push button is reported as down when the user presses it, and as up when the user releases it. DIDFT_PSHBUTTON DIDFT_PSHBUTTON A toggle button. A toggle button is reported as down when the user presses it and remains so until the user presses the button a second time. DIDFT_TGLBUTTON DIDFT_TGLBUTTON A push button or a toggle button. DIDFT_BUTTON DIDFT_BUTTON A point-of-view controller. DIDFT_POV DIDFT_POV A HID link collection. HID link collections do not generate data of their own. DIDFT_COLLECTION DIDFT_COLLECTION An object that does not generate any data. DIDFT_NODATA DIDFT_NODATA Any instance mask. DIDFT_ANYINSTANCE DIDFT_ANYINSTANCE An object that contains a force-feedback actuator. In other words, forces can be applied to this object. DIDFT_FFACTUATOR DIDFT_FFACTUATOR An object that can be used to trigger force-feedback effects. DIDFT_FFEFFECTTRIGGER DIDFT_FFEFFECTTRIGGER An object that supports output. Not supported. DIDFT_OUTPUT DIDFT_OUTPUT An object of a type defined by the manufacturer. DIDFT_VENDORDEFINED DIDFT_VENDORDEFINED Controls identified by a Human Interface Device alias. This flag applies only to HID-compliant USB devices. DIDFT_ALIAS DIDFT_ALIAS Specify that this type is optional. DIDFT_OPTIONAL DIDFT_OPTIONAL No documentation. DI8DEVTYPE DI8DEVTYPE No documentation. DI8DEVTYPE_DEVICE DI8DEVTYPE_DEVICE No documentation. DI8DEVTYPE_MOUSE DI8DEVTYPE_MOUSE No documentation. DI8DEVTYPE_KEYBOARD DI8DEVTYPE_KEYBOARD No documentation. DI8DEVTYPE_JOYSTICK DI8DEVTYPE_JOYSTICK No documentation. DI8DEVTYPE_GAMEPAD DI8DEVTYPE_GAMEPAD No documentation. DI8DEVTYPE_DRIVING DI8DEVTYPE_DRIVING No documentation. DI8DEVTYPE_FLIGHT DI8DEVTYPE_FLIGHT First-person action game device. The following subtypes are defined. DI8DEVTYPE_1STPERSON DI8DEVTYPE_1STPERSON No documentation. DI8DEVTYPE_DEVICECTRL DI8DEVTYPE_DEVICECTRL No documentation. DI8DEVTYPE_SCREENPOINTER DI8DEVTYPE_SCREENPOINTER No documentation. DI8DEVTYPE_REMOTE DI8DEVTYPE_REMOTE No documentation. DI8DEVTYPE_SUPPLEMENTAL DI8DEVTYPE_SUPPLEMENTAL No documentation. DIFEF DIFEF No documentation. DIFEF_DEFAULT DIFEF_DEFAULT No documentation. DIFEF_INCLUDENONSTANDARD DIFEF_INCLUDENONSTANDARD No documentation. DIFEF_MODIFYIFNEEDED DIFEF_MODIFYIFNEEDED Used by theIDirectInputDevice8::CreateEffectmethod to initialize a newIDirectInputEffect Interfaceobject. It is also used by theIDirectInputEffect::SetParametersandIDirectInputEffect::GetParametersmethods.
Note
The rglDirection array must contain cAxes entries, even if polar or spherical coordinates are given. In these cases, the last element in the rglDirection array is reserved and must be 0.
ee416616 DIEFF DIEFF
No documentation. DIEFF_OBJECTIDS DIEFF_OBJECTIDS No documentation. DIEFF_OBJECTOFFSETS DIEFF_OBJECTOFFSETS No documentation. DIEFF_CARTESIAN DIEFF_CARTESIAN No documentation. DIEFF_POLAR DIEFF_POLAR No documentation. DIEFF_SPHERICAL DIEFF_SPHERICAL None. None None No documentation. DIEP DIEP No documentation. DIEP_DURATION DIEP_DURATION No documentation. DIEP_SAMPLEPERIOD DIEP_SAMPLEPERIOD No documentation. DIEP_GAIN DIEP_GAIN No documentation. DIEP_TRIGGERBUTTON DIEP_TRIGGERBUTTON No documentation. DIEP_TRIGGERREPEATINTERVAL DIEP_TRIGGERREPEATINTERVAL No documentation. DIEP_AXES DIEP_AXES No documentation. DIEP_DIRECTION DIEP_DIRECTION No documentation. DIEP_ENVELOPE DIEP_ENVELOPE No documentation. DIEP_TYPESPECIFICPARAMS DIEP_TYPESPECIFICPARAMS No documentation. DIEP_STARTDELAY DIEP_STARTDELAY No documentation. DIEP_ALLPARAMS_DX5 DIEP_ALLPARAMS_DX5 No documentation. DIEP_ALLPARAMS DIEP_ALLPARAMS No documentation. DIEP_START DIEP_START No documentation. DIEP_NORESTART DIEP_NORESTART No documentation. DIEP_NODOWNLOAD DIEP_NODOWNLOAD None. None None No documentation. DIES DIES No documentation. DIES_SOLO DIES_SOLO No documentation. DIES_NODOWNLOAD DIES_NODOWNLOAD None. None None No documentation. DIEGES DIEGES No documentation. DIEGES_PLAYING DIEGES_PLAYING No documentation. DIEGES_EMULATED DIEGES_EMULATED None. None None No documentation. DIEFT DIEFT No documentation. DIEFT_ALL DIEFT_ALL No documentation. DIEFT_CONSTANTFORCE DIEFT_CONSTANTFORCE No documentation. DIEFT_RAMPFORCE DIEFT_RAMPFORCE No documentation. DIEFT_PERIODIC DIEFT_PERIODIC No documentation. DIEFT_CONDITION DIEFT_CONDITION No documentation. DIEFT_CUSTOMFORCE DIEFT_CUSTOMFORCE No documentation. DIEFT_HARDWARE DIEFT_HARDWARE No documentation. DIEFT_FFATTACK DIEFT_FFATTACK No documentation. DIEFT_FFFADE DIEFT_FFFADE No documentation. DIEFT_SATURATION DIEFT_SATURATION No documentation. DIEFT_POSNEGCOEFFICIENTS DIEFT_POSNEGCOEFFICIENTS No documentation. DIEFT_POSNEGSATURATION DIEFT_POSNEGSATURATION No documentation. DIEFT_DEADBAND DIEFT_DEADBAND No documentation. DIEFT_STARTDELAY DIEFT_STARTDELAY None. None None Sends a command to the device's force-feedback system. The device must be acquired at the exclusive cooperative level for this method to succeed. This flag is used by method. DISFFC DISFFC Paused playback of all active effects is to be continued. It is an error to send this command when the device is not in a paused state. DISFFC_RESET DISFFC_RESET Paused playback of all active effects is to be continued. It is an error to send this command when the device is not in a paused state. DISFFC_STOPALL DISFFC_STOPALL Paused playback of all active effects is to be continued. It is an error to send this command when the device is not in a paused state. DISFFC_PAUSE DISFFC_PAUSE Paused playback of all active effects is to be continued. It is an error to send this command when the device is not in a paused state. DISFFC_CONTINUE DISFFC_CONTINUE Paused playback of all active effects is to be continued. It is an error to send this command when the device is not in a paused state. DISFFC_SETACTUATORSON DISFFC_SETACTUATORSON Paused playback of all active effects is to be continued. It is an error to send this command when the device is not in a paused state. DISFFC_SETACTUATORSOFF DISFFC_SETACTUATORSOFF Retrieves the state of the device's force-feedback system. The device must be acquired at the exclusive cooperative level for this method to succeed. The method can return any valid combination of these flags. DIGFFS DIGFFS The device has no downloaded effects. DIGFFS_EMPTY DIGFFS_EMPTY No effects are playing, and the device is not paused. DIGFFS_STOPPED DIGFFS_STOPPED Playback of all active effects has been paused. DIGFFS_PAUSED DIGFFS_PAUSED The device's force-feedback actuators are enabled. If the device cannot report the actuator state, neither nor is returned. DIGFFS_ACTUATORSON DIGFFS_ACTUATORSON The device's force-feedback actuators are disabled. If the device cannot report the actuator state, neither nor is returned. DIGFFS_ACTUATORSOFF DIGFFS_ACTUATORSOFF Power to the force-feedback system is currently available. If the device cannot report the power state, neither nor is returned. DIGFFS_POWERON DIGFFS_POWERON The force-feedback system is not currently available. If the device cannot report the power state, neither nor is returned. DIGFFS_POWEROFF DIGFFS_POWEROFF The safety switch is currently on; that is, the device can operate. If the device cannot report the state of the safety switch, neither nor is returned. DIGFFS_SAFETYSWITCHON DIGFFS_SAFETYSWITCHON The safety switch is currently off; that is, the device cannot operate. If the device cannot report the state of the safety switch, neither nor is returned. DIGFFS_SAFETYSWITCHOFF DIGFFS_SAFETYSWITCHOFF The user force-feedback switch is currently off; that is, the device cannot operate. If the device cannot report the state of the user force-feedback switch, neither nor is returned. DIGFFS_USERFFSWITCHON DIGFFS_USERFFSWITCHON The user force-feedback switch is currently off; that is, the device cannot operate. If the device cannot report the state of the user force-feedback switch, neither nor is returned. DIGFFS_USERFFSWITCHOFF DIGFFS_USERFFSWITCHOFF The device suffered an unexpected failure and is in an indeterminate state. It must be reset either by unacquiring and reacquiring the device, or by sending a command. DIGFFS_DEVICELOST DIGFFS_DEVICELOST No documentation. DIDIFT DIDIFT No documentation. DIDIFT_CONFIGURATION DIDIFT_CONFIGURATION No documentation. DIDIFT_OVERLAY DIDIFT_OVERLAY No documentation. DIJOFS DIJOFS No documentation. DIJOFS_X DIJOFS_X No documentation. DIJOFS_Y DIJOFS_Y No documentation. DIJOFS_Z DIJOFS_Z No documentation. DIJOFS_RX DIJOFS_RX No documentation. DIJOFS_RY DIJOFS_RY No documentation. DIJOFS_RZ DIJOFS_RZ No documentation. DIJOFS_BUTTON0 DIJOFS_BUTTON0 No documentation. DIJOFS_BUTTON1 DIJOFS_BUTTON1 No documentation. DIJOFS_BUTTON2 DIJOFS_BUTTON2 No documentation. DIJOFS_BUTTON3 DIJOFS_BUTTON3 No documentation. DIJOFS_BUTTON4 DIJOFS_BUTTON4 No documentation. DIJOFS_BUTTON5 DIJOFS_BUTTON5 No documentation. DIJOFS_BUTTON6 DIJOFS_BUTTON6 No documentation. DIJOFS_BUTTON7 DIJOFS_BUTTON7 No documentation. DIJOFS_BUTTON8 DIJOFS_BUTTON8 No documentation. DIJOFS_BUTTON9 DIJOFS_BUTTON9 No documentation. DIJOFS_BUTTON10 DIJOFS_BUTTON10 No documentation. DIJOFS_BUTTON11 DIJOFS_BUTTON11 No documentation. DIJOFS_BUTTON12 DIJOFS_BUTTON12 No documentation. DIJOFS_BUTTON13 DIJOFS_BUTTON13 No documentation. DIJOFS_BUTTON14 DIJOFS_BUTTON14 No documentation. DIJOFS_BUTTON15 DIJOFS_BUTTON15 No documentation. DIJOFS_BUTTON16 DIJOFS_BUTTON16 No documentation. DIJOFS_BUTTON17 DIJOFS_BUTTON17 No documentation. DIJOFS_BUTTON18 DIJOFS_BUTTON18 No documentation. DIJOFS_BUTTON19 DIJOFS_BUTTON19 No documentation. DIJOFS_BUTTON20 DIJOFS_BUTTON20 No documentation. DIJOFS_BUTTON21 DIJOFS_BUTTON21 No documentation. DIJOFS_BUTTON22 DIJOFS_BUTTON22 No documentation. DIJOFS_BUTTON23 DIJOFS_BUTTON23 No documentation. DIJOFS_BUTTON24 DIJOFS_BUTTON24 No documentation. DIJOFS_BUTTON25 DIJOFS_BUTTON25 No documentation. DIJOFS_BUTTON26 DIJOFS_BUTTON26 No documentation. DIJOFS_BUTTON27 DIJOFS_BUTTON27 No documentation. DIJOFS_BUTTON28 DIJOFS_BUTTON28 No documentation. DIJOFS_BUTTON29 DIJOFS_BUTTON29 No documentation. DIJOFS_BUTTON30 DIJOFS_BUTTON30 No documentation. DIJOFS_BUTTON31 DIJOFS_BUTTON31 No documentation. DIJOFS_SLIDER0 DIJOFS_SLIDER0 No documentation. DIJOFS_SLIDER1 DIJOFS_SLIDER1 No documentation. DIJOFS_POINT_OF_VIEW0 DIJOFS_POINT_OF_VIEW0 No documentation. DIJOFS_POINT_OF_VIEW1 DIJOFS_POINT_OF_VIEW1 No documentation. DIJOFS_POINT_OF_VIEW2 DIJOFS_POINT_OF_VIEW2 No documentation. DIJOFS_POINT_OF_VIEW3 DIJOFS_POINT_OF_VIEW3 No documentation. DIK DIK No documentation. DIK_ESCAPE DIK_ESCAPE No documentation. DIK_1 DIK_1 No documentation. DIK_2 DIK_2 No documentation. DIK_3 DIK_3 No documentation. DIK_4 DIK_4 No documentation. DIK_5 DIK_5 No documentation. DIK_6 DIK_6 No documentation. DIK_7 DIK_7 No documentation. DIK_8 DIK_8 No documentation. DIK_9 DIK_9 No documentation. DIK_0 DIK_0 No documentation. DIK_MINUS DIK_MINUS No documentation. DIK_EQUALS DIK_EQUALS No documentation. DIK_BACK DIK_BACK No documentation. DIK_TAB DIK_TAB No documentation. DIK_Q DIK_Q No documentation. DIK_W DIK_W No documentation. DIK_E DIK_E No documentation. DIK_R DIK_R No documentation. DIK_T DIK_T No documentation. DIK_Y DIK_Y No documentation. DIK_U DIK_U No documentation. DIK_I DIK_I No documentation. DIK_O DIK_O No documentation. DIK_P DIK_P No documentation. DIK_LBRACKET DIK_LBRACKET No documentation. DIK_RBRACKET DIK_RBRACKET No documentation. DIK_RETURN DIK_RETURN No documentation. DIK_LCONTROL DIK_LCONTROL No documentation. DIK_A DIK_A No documentation. DIK_S DIK_S No documentation. DIK_D DIK_D No documentation. DIK_F DIK_F No documentation. DIK_G DIK_G No documentation. DIK_H DIK_H No documentation. DIK_J DIK_J No documentation. DIK_K DIK_K No documentation. DIK_L DIK_L No documentation. DIK_SEMICOLON DIK_SEMICOLON No documentation. DIK_APOSTROPHE DIK_APOSTROPHE No documentation. DIK_GRAVE DIK_GRAVE No documentation. DIK_LSHIFT DIK_LSHIFT No documentation. DIK_BACKSLASH DIK_BACKSLASH No documentation. DIK_Z DIK_Z No documentation. DIK_X DIK_X No documentation. DIK_C DIK_C No documentation. DIK_V DIK_V No documentation. DIK_B DIK_B No documentation. DIK_N DIK_N No documentation. DIK_M DIK_M No documentation. DIK_COMMA DIK_COMMA No documentation. DIK_PERIOD DIK_PERIOD No documentation. DIK_SLASH DIK_SLASH No documentation. DIK_RSHIFT DIK_RSHIFT No documentation. DIK_MULTIPLY DIK_MULTIPLY No documentation. DIK_LMENU DIK_LMENU No documentation. DIK_SPACE DIK_SPACE No documentation. DIK_CAPITAL DIK_CAPITAL No documentation. DIK_F1 DIK_F1 No documentation. DIK_F2 DIK_F2 No documentation. DIK_F3 DIK_F3 No documentation. DIK_F4 DIK_F4 No documentation. DIK_F5 DIK_F5 No documentation. DIK_F6 DIK_F6 No documentation. DIK_F7 DIK_F7 No documentation. DIK_F8 DIK_F8 No documentation. DIK_F9 DIK_F9 No documentation. DIK_F10 DIK_F10 No documentation. DIK_NUMLOCK DIK_NUMLOCK No documentation. DIK_SCROLL DIK_SCROLL No documentation. DIK_NUMPAD7 DIK_NUMPAD7 No documentation. DIK_NUMPAD8 DIK_NUMPAD8 No documentation. DIK_NUMPAD9 DIK_NUMPAD9 No documentation. DIK_SUBTRACT DIK_SUBTRACT No documentation. DIK_NUMPAD4 DIK_NUMPAD4 No documentation. DIK_NUMPAD5 DIK_NUMPAD5 No documentation. DIK_NUMPAD6 DIK_NUMPAD6 No documentation. DIK_ADD DIK_ADD No documentation. DIK_NUMPAD1 DIK_NUMPAD1 No documentation. DIK_NUMPAD2 DIK_NUMPAD2 No documentation. DIK_NUMPAD3 DIK_NUMPAD3 No documentation. DIK_NUMPAD0 DIK_NUMPAD0 No documentation. DIK_DECIMAL DIK_DECIMAL No documentation. DIK_OEM_102 DIK_OEM_102 No documentation. DIK_F11 DIK_F11 No documentation. DIK_F12 DIK_F12 No documentation. DIK_F13 DIK_F13 No documentation. DIK_F14 DIK_F14 No documentation. DIK_F15 DIK_F15 No documentation. DIK_KANA DIK_KANA No documentation. DIK_ABNT_C1 DIK_ABNT_C1 No documentation. DIK_CONVERT DIK_CONVERT No documentation. DIK_NOCONVERT DIK_NOCONVERT No documentation. DIK_YEN DIK_YEN No documentation. DIK_ABNT_C2 DIK_ABNT_C2 No documentation. DIK_NUMPADEQUALS DIK_NUMPADEQUALS No documentation. DIK_PREVTRACK DIK_PREVTRACK No documentation. DIK_AT DIK_AT No documentation. DIK_COLON DIK_COLON No documentation. DIK_UNDERLINE DIK_UNDERLINE No documentation. DIK_KANJI DIK_KANJI No documentation. DIK_STOP DIK_STOP No documentation. DIK_AX DIK_AX No documentation. DIK_UNLABELED DIK_UNLABELED No documentation. DIK_NEXTTRACK DIK_NEXTTRACK No documentation. DIK_NUMPADENTER DIK_NUMPADENTER No documentation. DIK_RCONTROL DIK_RCONTROL No documentation. DIK_MUTE DIK_MUTE No documentation. DIK_CALCULATOR DIK_CALCULATOR No documentation. DIK_PLAYPAUSE DIK_PLAYPAUSE No documentation. DIK_MEDIASTOP DIK_MEDIASTOP No documentation. DIK_VOLUMEDOWN DIK_VOLUMEDOWN No documentation. DIK_VOLUMEUP DIK_VOLUMEUP No documentation. DIK_WEBHOME DIK_WEBHOME No documentation. DIK_NUMPADCOMMA DIK_NUMPADCOMMA No documentation. DIK_DIVIDE DIK_DIVIDE No documentation. DIK_SYSRQ DIK_SYSRQ No documentation. DIK_RMENU DIK_RMENU No documentation. DIK_PAUSE DIK_PAUSE No documentation. DIK_HOME DIK_HOME No documentation. DIK_UP DIK_UP No documentation. DIK_PRIOR DIK_PRIOR No documentation. DIK_LEFT DIK_LEFT No documentation. DIK_RIGHT DIK_RIGHT No documentation. DIK_END DIK_END No documentation. DIK_DOWN DIK_DOWN No documentation. DIK_NEXT DIK_NEXT No documentation. DIK_INSERT DIK_INSERT No documentation. DIK_DELETE DIK_DELETE No documentation. DIK_LWIN DIK_LWIN No documentation. DIK_RWIN DIK_RWIN No documentation. DIK_APPS DIK_APPS No documentation. DIK_POWER DIK_POWER No documentation. DIK_SLEEP DIK_SLEEP No documentation. DIK_WAKE DIK_WAKE No documentation. DIK_WEBSEARCH DIK_WEBSEARCH No documentation. DIK_WEBFAVORITES DIK_WEBFAVORITES No documentation. DIK_WEBREFRESH DIK_WEBREFRESH No documentation. DIK_WEBSTOP DIK_WEBSTOP No documentation. DIK_WEBFORWARD DIK_WEBFORWARD No documentation. DIK_WEBBACK DIK_WEBBACK No documentation. DIK_MYCOMPUTER DIK_MYCOMPUTER No documentation. DIK_MAIL DIK_MAIL No documentation. DIK_MEDIASELECT DIK_MEDIASELECT No documentation. DIK_UNKNOWN DIK_UNKNOWN No documentation. DIMOFS DIMOFS No documentation. DIMOFS_X DIMOFS_X No documentation. DIMOFS_Y DIMOFS_Y No documentation. DIMOFS_Z DIMOFS_Z No documentation. DIMOFS_BUTTON0 DIMOFS_BUTTON0 No documentation. DIMOFS_BUTTON1 DIMOFS_BUTTON1 No documentation. DIMOFS_BUTTON2 DIMOFS_BUTTON2 No documentation. DIMOFS_BUTTON3 DIMOFS_BUTTON3 No documentation. DIMOFS_BUTTON4 DIMOFS_BUTTON4 No documentation. DIMOFS_BUTTON5 DIMOFS_BUTTON5 No documentation. DIMOFS_BUTTON6 DIMOFS_BUTTON6 No documentation. DIMOFS_BUTTON7 DIMOFS_BUTTON7 No documentation. DIDOI DIDOI No documentation. DIDOI_FFACTUATOR DIDOI_FFACTUATOR No documentation. DIDOI_FFEFFECTTRIGGER DIDOI_FFEFFECTTRIGGER No documentation. DIDOI_POLLED DIDOI_POLLED No documentation. DIDOI_ASPECTPOSITION DIDOI_ASPECTPOSITION No documentation. DIDOI_ASPECTVELOCITY DIDOI_ASPECTVELOCITY No documentation. DIDOI_ASPECTACCEL DIDOI_ASPECTACCEL No documentation. DIDOI_ASPECTFORCE DIDOI_ASPECTFORCE No documentation. DIDOI_ASPECTMASK DIDOI_ASPECTMASK No documentation. DIDOI_GUIDISUSAGE DIDOI_GUIDISUSAGE No documentation. DIPH DIPH No documentation. DIPH_DEVICE DIPH_DEVICE No documentation. DIPH_BYOFFSET DIPH_BYOFFSET No documentation. DIPH_BYID DIPH_BYID No documentation. DIPH_BYUSAGE DIPH_BYUSAGE No documentation. DIDAL DIDAL No documentation. DIDAL_CENTERED DIDAL_CENTERED No documentation. DIDAL_LEFTALIGNED DIDAL_LEFTALIGNED No documentation. DIDAL_RIGHTALIGNED DIDAL_RIGHTALIGNED No documentation. DIDAL_MIDDLE DIDAL_MIDDLE No documentation. DIDAL_TOPALIGNED DIDAL_TOPALIGNED No documentation. DIDAL_BOTTOMALIGNED DIDAL_BOTTOMALIGNED Functions Constant AirCombatGenre. DIVIRTUAL_FLYING_MILITARY Constant Flaps. DIAXIS_FLYINGM_FLAPS Constant Rudder. DIAXIS_FLYINGM_RUDDER Constant Throttle. DIAXIS_FLYINGM_THROTTLE Constant Bank. DIAXIS_FLYINGM_BANK Constant Pitch. DIAXIS_FLYINGM_PITCH Constant Brake. DIAXIS_FLYINGM_BRAKE Constant FireSecondary. DIBUTTON_FLYINGM_FIRESECONDARY Constant Display. DIBUTTON_FLYINGM_DISPLAY Constant Pause. DIBUTTON_FLYINGM_PAUSE Constant Gear. DIBUTTON_FLYINGM_GEAR Constant Fire. DIBUTTON_FLYINGM_FIRE Constant Menu. DIBUTTON_FLYINGM_MENU Constant GlanceDownLink. DIBUTTON_FLYINGM_GLANCE_DOWN_LINK Constant FasterLink. DIBUTTON_FLYINGM_FASTER_LINK Constant Target. DIBUTTON_FLYINGM_TARGET Constant Counter. DIBUTTON_FLYINGM_COUNTER Constant Flapsup. DIBUTTON_FLYINGM_FLAPSUP Constant GlanceUpLink. DIBUTTON_FLYINGM_GLANCE_UP_LINK Constant Weapons. DIBUTTON_FLYINGM_WEAPONS Constant View. DIBUTTON_FLYINGM_VIEW Constant Device. DIBUTTON_FLYINGM_DEVICE Constant Flapsdown. DIBUTTON_FLYINGM_FLAPSDOWN Constant GlanceLeftLink. DIBUTTON_FLYINGM_GLANCE_LEFT_LINK Constant BrakeLink. DIBUTTON_FLYINGM_BRAKE_LINK Constant SlowerLink. DIBUTTON_FLYINGM_SLOWER_LINK Constant GlanceRightLink. DIBUTTON_FLYINGM_GLANCE_RIGHT_LINK Constant Glance. DIHATSWITCH_FLYINGM_GLANCE Functions Constant XAxis1. DIAXIS_ANY_X_1 Constant XAxis2. DIAXIS_ANY_X_2 Constant YAxis1. DIAXIS_ANY_Y_1 Constant YAxis2. DIAXIS_ANY_Y_2 Constant ZAxis1. DIAXIS_ANY_Z_1 Constant ZAxis2. DIAXIS_ANY_Z_2 Constant RAxis1. DIAXIS_ANY_R_1 Constant RAxis2. DIAXIS_ANY_R_2 Constant UAxis1. DIAXIS_ANY_U_1 Constant UAxis2. DIAXIS_ANY_U_2 Constant VAxis1. DIAXIS_ANY_V_1 Constant VAxis2. DIAXIS_ANY_V_2 Constant Accelerator1. DIAXIS_ANY_A_1 Constant Accelerator2. DIAXIS_ANY_A_2 Constant Brake1. DIAXIS_ANY_B_1 Constant Brake2. DIAXIS_ANY_B_2 Constant Clutch1. DIAXIS_ANY_C_1 Constant Clutch2. DIAXIS_ANY_C_2 Constant SAxis1. DIAXIS_ANY_S_1 Constant SAxis2. DIAXIS_ANY_S_2 Constant Axis1. DIAXIS_ANY_1 Constant Axis2. DIAXIS_ANY_2 Constant Axis3. DIAXIS_ANY_3 Constant Axis4. DIAXIS_ANY_4 Constant PointOfView1. DIPOV_ANY_1 Constant PointOfView2. DIPOV_ANY_2 Constant PointOfView3. DIPOV_ANY_3 Constant PointOfView4. DIPOV_ANY_4 Functions Constant BaseballBattingGenre. DIVIRTUAL_SPORTS_BASEBALL_BAT Constant Lateral. DIAXIS_BASEBALLB_LATERAL Constant Move. DIAXIS_BASEBALLB_MOVE Constant RightLink. DIBUTTON_BASEBALLB_RIGHT_LINK Constant LeftLink. DIBUTTON_BASEBALLB_LEFT_LINK Constant Bunt. DIBUTTON_BASEBALLB_BUNT Constant Nosteal. DIBUTTON_BASEBALLB_NOSTEAL Constant Power. DIBUTTON_BASEBALLB_POWER Constant Select. DIBUTTON_BASEBALLB_SELECT Constant Box. DIBUTTON_BASEBALLB_BOX Constant Device. DIBUTTON_BASEBALLB_DEVICE Constant Slide. DIBUTTON_BASEBALLB_SLIDE Constant Pause. DIBUTTON_BASEBALLB_PAUSE Constant BackLink. DIBUTTON_BASEBALLB_BACK_LINK Constant Burst. DIBUTTON_BASEBALLB_BURST Constant Normal. DIBUTTON_BASEBALLB_NORMAL Constant Contact. DIBUTTON_BASEBALLB_CONTACT Constant Menu. DIBUTTON_BASEBALLB_MENU Constant Steal. DIBUTTON_BASEBALLB_STEAL Constant ForwardLink. DIBUTTON_BASEBALLB_FORWARD_LINK Functions Constant BaseballFieldingGenre. DIVIRTUAL_SPORTS_BASEBALL_FIELD Constant Move. DIAXIS_BASEBALLF_MOVE Constant Lateral. DIAXIS_BASEBALLF_LATERAL Constant AimLeftLink. DIBUTTON_BASEBALLF_AIM_LEFT_LINK Constant AimRightLink. DIBUTTON_BASEBALLF_AIM_RIGHT_LINK Constant Throw1. DIBUTTON_BASEBALLF_THROW1 Constant ForwardLink. DIBUTTON_BASEBALLF_FORWARD_LINK Constant Jump. DIBUTTON_BASEBALLF_JUMP Constant Nearest. DIBUTTON_BASEBALLF_NEAREST Constant Dive. DIBUTTON_BASEBALLF_DIVE Constant BackLink. DIBUTTON_BASEBALLF_BACK_LINK Constant Shiftin. DIBUTTON_BASEBALLF_SHIFTIN Constant Device. DIBUTTON_BASEBALLF_DEVICE Constant Shiftout. DIBUTTON_BASEBALLF_SHIFTOUT Constant Pause. DIBUTTON_BASEBALLF_PAUSE Constant Throw2. DIBUTTON_BASEBALLF_THROW2 Constant Burst. DIBUTTON_BASEBALLF_BURST Constant Menu. DIBUTTON_BASEBALLF_MENU Functions Constant BaseballPitchingGenre. DIVIRTUAL_SPORTS_BASEBALL_PITCH Constant Move. DIAXIS_BASEBALLP_MOVE Constant Lateral. DIAXIS_BASEBALLP_LATERAL Constant Base. DIBUTTON_BASEBALLP_BASE Constant Fake. DIBUTTON_BASEBALLP_FAKE Constant ForwardLink. DIBUTTON_BASEBALLP_FORWARD_LINK Constant Pause. DIBUTTON_BASEBALLP_PAUSE Constant Throw. DIBUTTON_BASEBALLP_THROW Constant BackLink. DIBUTTON_BASEBALLP_BACK_LINK Constant Walk. DIBUTTON_BASEBALLP_WALK Constant Menu. DIBUTTON_BASEBALLP_MENU Constant Select. DIBUTTON_BASEBALLP_SELECT Constant Device. DIBUTTON_BASEBALLP_DEVICE Constant Pitch. DIBUTTON_BASEBALLP_PITCH Constant LeftLink. DIBUTTON_BASEBALLP_LEFT_LINK Constant Look. DIBUTTON_BASEBALLP_LOOK Constant RightLink. DIBUTTON_BASEBALLP_RIGHT_LINK Functions Constant BasketballDefenseGenre. DIVIRTUAL_SPORTS_BASKETBALL_DEFENSE Constant Move. DIAXIS_BBALLD_MOVE Constant Lateral. DIAXIS_BBALLD_LATERAL Constant Play. DIBUTTON_BBALLD_PLAY Constant Timeout. DIBUTTON_BBALLD_TIMEOUT Constant Player. DIBUTTON_BBALLD_PLAYER Constant Burst. DIBUTTON_BBALLD_BURST Constant Fake. DIBUTTON_BBALLD_FAKE Constant Steal. DIBUTTON_BBALLD_STEAL Constant Special. DIBUTTON_BBALLD_SPECIAL Constant LeftLink. DIBUTTON_BBALLD_LEFT_LINK Constant SubStitute. DIBUTTON_BBALLD_SUBSTITUTE Constant BackLink. DIBUTTON_BBALLD_BACK_LINK Constant RightLink. DIBUTTON_BBALLD_RIGHT_LINK Constant Menu. DIBUTTON_BBALLD_MENU Constant ForwardLink. DIBUTTON_BBALLD_FORWARD_LINK Constant Device. DIBUTTON_BBALLD_DEVICE Constant Jump. DIBUTTON_BBALLD_JUMP Constant Pause. DIBUTTON_BBALLD_PAUSE Constant Glance. DIHATSWITCH_BBALLD_GLANCE Functions Constant BasketballOffenseGenre. DIVIRTUAL_SPORTS_BASKETBALL_OFFENSE Constant Lateral. DIAXIS_BBALLO_LATERAL Constant Move. DIAXIS_BBALLO_MOVE Constant RightLink. DIBUTTON_BBALLO_RIGHT_LINK Constant Shoot. DIBUTTON_BBALLO_SHOOT Constant ForwardLink. DIBUTTON_BBALLO_FORWARD_LINK Constant Timeout. DIBUTTON_BBALLO_TIMEOUT Constant Post. DIBUTTON_BBALLO_POST Constant Device. DIBUTTON_BBALLO_DEVICE Constant Player. DIBUTTON_BBALLO_PLAYER Constant Screen. DIBUTTON_BBALLO_SCREEN Constant Special. DIBUTTON_BBALLO_SPECIAL Constant BackLink. DIBUTTON_BBALLO_BACK_LINK Constant Call. DIBUTTON_BBALLO_CALL Constant Pause. DIBUTTON_BBALLO_PAUSE Constant Burst. DIBUTTON_BBALLO_BURST Constant Pass. DIBUTTON_BBALLO_PASS Constant Fake. DIBUTTON_BBALLO_FAKE Constant Play. DIBUTTON_BBALLO_PLAY Constant Dunk. DIBUTTON_BBALLO_DUNK Constant Jab. DIBUTTON_BBALLO_JAB Constant Menu. DIBUTTON_BBALLO_MENU Constant LeftLink. DIBUTTON_BBALLO_LEFT_LINK Constant SubStitute. DIBUTTON_BBALLO_SUBSTITUTE Constant Glance. DIHATSWITCH_BBALLO_GLANCE Functions Constant BrowserGenre. DIVIRTUAL_BROWSER_CONTROL Constant Lateral. DIAXIS_BROWSER_LATERAL Constant Move. DIAXIS_BROWSER_MOVE Constant View. DIAXIS_BROWSER_VIEW Constant Print. DIBUTTON_BROWSER_PRINT Constant Pause. DIBUTTON_BROWSER_PAUSE Constant Select. DIBUTTON_BROWSER_SELECT Constant Menu. DIBUTTON_BROWSER_MENU Constant History. DIBUTTON_BROWSER_HISTORY Constant Next. DIBUTTON_BROWSER_NEXT Constant Home. DIBUTTON_BROWSER_HOME Constant Favorites. DIBUTTON_BROWSER_FAVORITES Constant Stop. DIBUTTON_BROWSER_STOP Constant Refresh. DIBUTTON_BROWSER_REFRESH Constant Previous. DIBUTTON_BROWSER_PREVIOUS Constant Search. DIBUTTON_BROWSER_SEARCH Constant Device. DIBUTTON_BROWSER_DEVICE Functions Constant CivilianFlightGenre. DIVIRTUAL_FLYING_CIVILIAN Constant Pitch. DIAXIS_FLYINGC_PITCH Constant Brake. DIAXIS_FLYINGC_BRAKE Constant Flaps. DIAXIS_FLYINGC_FLAPS Constant Throttle. DIAXIS_FLYINGC_THROTTLE Constant Bank. DIAXIS_FLYINGC_BANK Constant Rudder. DIAXIS_FLYINGC_RUDDER Constant SlowerLink. DIBUTTON_FLYINGC_SLOWER_LINK Constant FasterLink. DIBUTTON_FLYINGC_FASTER_LINK Constant BrakeLink. DIBUTTON_FLYINGC_BRAKE_LINK Constant Gear. DIBUTTON_FLYINGC_GEAR Constant View. DIBUTTON_FLYINGC_VIEW Constant Display. DIBUTTON_FLYINGC_DISPLAY Constant Flapsdown. DIBUTTON_FLYINGC_FLAPSDOWN Constant GlanceDownLink. DIBUTTON_FLYINGC_GLANCE_DOWN_LINK Constant GlanceLeftLink. DIBUTTON_FLYINGC_GLANCE_LEFT_LINK Constant GlanceRightLink. DIBUTTON_FLYINGC_GLANCE_RIGHT_LINK Constant Pause. DIBUTTON_FLYINGC_PAUSE Constant GlanceUpLink. DIBUTTON_FLYINGC_GLANCE_UP_LINK Constant Menu. DIBUTTON_FLYINGC_MENU Constant Device. DIBUTTON_FLYINGC_DEVICE Constant Flapsup. DIBUTTON_FLYINGC_FLAPSUP Constant Glance. DIHATSWITCH_FLYINGC_GLANCE Functions Constant AirCombatGenre. DIVIRTUAL_DRIVING_COMBAT Constant Steer. DIAXIS_DRIVINGC_STEER Constant Accelerate. DIAXIS_DRIVINGC_ACCELERATE Constant BrakeAxis. DIAXIS_DRIVINGC_BRAKE Constant AccelerateAndBrake. DIAXIS_DRIVINGC_ACCEL_AND_BRAKE Constant Fire. DIBUTTON_DRIVINGC_FIRE Constant GlanceRightLink. DIBUTTON_DRIVINGC_GLANCE_RIGHT_LINK Constant Menu. DIBUTTON_DRIVINGC_MENU Constant Weapons. DIBUTTON_DRIVINGC_WEAPONS Constant Pause. DIBUTTON_DRIVINGC_PAUSE Constant Shiftdown. DIBUTTON_DRIVINGC_SHIFTDOWN Constant SteerRightLink. DIBUTTON_DRIVINGC_STEER_RIGHT_LINK Constant GlanceLeftLink. DIBUTTON_DRIVINGC_GLANCE_LEFT_LINK Constant Aids. DIBUTTON_DRIVINGC_AIDS Constant Dashboard. DIBUTTON_DRIVINGC_DASHBOARD Constant Target. DIBUTTON_DRIVINGC_TARGET Constant Shiftup. DIBUTTON_DRIVINGC_SHIFTUP Constant SteerLeftLink. DIBUTTON_DRIVINGC_STEER_LEFT_LINK Constant AccelerateLink. DIBUTTON_DRIVINGC_ACCELERATE_LINK Constant Firesecondary. DIBUTTON_DRIVINGC_FIRESECONDARY Constant Brake. DIBUTTON_DRIVINGC_BRAKE Constant Device. DIBUTTON_DRIVINGC_DEVICE Constant Glance. DIHATSWITCH_DRIVINGC_GLANCE Functions Constant SysMouse. GUID_SysMouse Constant SysKeyboard. GUID_SysKeyboard Constant Joystick. GUID_Joystick Constant SysMouseEm. GUID_SysMouseEm Constant SysMouseEm2. GUID_SysMouseEm2 Constant SysKeyboardEm. GUID_SysKeyboardEm Constant SysKeyboardEm2. GUID_SysKeyboardEm2 Functions Constant MouseUnknown. DI8DEVTYPEMOUSE_UNKNOWN Constant MouseAbsolute. DI8DEVTYPEMOUSE_ABSOLUTE Constant MouseTrackball. DI8DEVTYPEMOUSE_TRACKBALL Constant MouseTraditional. DI8DEVTYPEMOUSE_TRADITIONAL Constant MouseTouchpad. DI8DEVTYPEMOUSE_TOUCHPAD Constant MouseFingerstick. DI8DEVTYPEMOUSE_FINGERSTICK Constant KeyboardNec98106. DI8DEVTYPEKEYBOARD_NEC98106 Constant KeyboardJapanax. DI8DEVTYPEKEYBOARD_JAPANAX Constant KeyboardJapan106. DI8DEVTYPEKEYBOARD_JAPAN106 Constant KeyboardPcxt. DI8DEVTYPEKEYBOARD_PCXT Constant KeyboardNokia9140. DI8DEVTYPEKEYBOARD_NOKIA9140 Constant KeyboardNec98laptop. DI8DEVTYPEKEYBOARD_NEC98LAPTOP Constant KeyboardOlivetti. DI8DEVTYPEKEYBOARD_OLIVETTI Constant KeyboardNec98. DI8DEVTYPEKEYBOARD_NEC98 Constant KeyboardPcat. DI8DEVTYPEKEYBOARD_PCAT Constant KeyboardPcenh. DI8DEVTYPEKEYBOARD_PCENH Constant KeyboardUnknown. DI8DEVTYPEKEYBOARD_UNKNOWN Constant KeyboardNokia1050. DI8DEVTYPEKEYBOARD_NOKIA1050 Constant KeyboardJ3100. DI8DEVTYPEKEYBOARD_J3100 Constant JoystickStandard. DI8DEVTYPEJOYSTICK_STANDARD Constant JoystickLimited. DI8DEVTYPEJOYSTICK_LIMITED Constant GamepadLimited. DI8DEVTYPEGAMEPAD_LIMITED Constant GamepadStandard. DI8DEVTYPEGAMEPAD_STANDARD Constant GamepadTilt. DI8DEVTYPEGAMEPAD_TILT Constant DrivingHandheld. DI8DEVTYPEDRIVING_HANDHELD Constant DrivingThreepedals. DI8DEVTYPEDRIVING_THREEPEDALS Constant DrivingCombinedpedals. DI8DEVTYPEDRIVING_COMBINEDPEDALS Constant DrivingDualpedals. DI8DEVTYPEDRIVING_DUALPEDALS Constant DrivingLimited. DI8DEVTYPEDRIVING_LIMITED Constant FlightLimited. DI8DEVTYPEFLIGHT_LIMITED Constant FlightYoke. DI8DEVTYPEFLIGHT_YOKE Constant FlightStick. DI8DEVTYPEFLIGHT_STICK Constant FlightRc. DI8DEVTYPEFLIGHT_RC Constant FirstPersonLimited. DI8DEVTYPE1STPERSON_LIMITED Constant FirstPersonSixdof. DI8DEVTYPE1STPERSON_SIXDOF Constant FirstPersonUnknown. DI8DEVTYPE1STPERSON_UNKNOWN Constant FirstPersonShooter. DI8DEVTYPE1STPERSON_SHOOTER Constant ScreenPointerLightgun. DI8DEVTYPESCREENPTR_LIGHTGUN Constant ScreenPointerUnknown. DI8DEVTYPESCREENPTR_UNKNOWN Constant ScreenPointerLightpen. DI8DEVTYPESCREENPTR_LIGHTPEN Constant ScreenPointerTouch. DI8DEVTYPESCREENPTR_TOUCH Constant RemoteUnknown. DI8DEVTYPEREMOTE_UNKNOWN Constant DeviceControlCommsselection. DI8DEVTYPEDEVICECTRL_COMMSSELECTION Constant DeviceControlUnknown. DI8DEVTYPEDEVICECTRL_UNKNOWN Constant DeviceControlCommsselectionHardwired. DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED Constant SupplementalHandtracker. DI8DEVTYPESUPPLEMENTAL_HANDTRACKER Constant SupplementalDualpedals. DI8DEVTYPESUPPLEMENTAL_DUALPEDALS Constant SupplementalHeadtracker. DI8DEVTYPESUPPLEMENTAL_HEADTRACKER Constant Supplemental2ndhandcontroller. DI8DEVTYPESUPPLEMENTAL_2NDHANDCONTROLLER Constant SupplementalShifter. DI8DEVTYPESUPPLEMENTAL_SHIFTER Constant SupplementalShiftstickgate. DI8DEVTYPESUPPLEMENTAL_SHIFTSTICKGATE Constant SupplementalCombinedpedals. DI8DEVTYPESUPPLEMENTAL_COMBINEDPEDALS Constant SupplementalSplitthrottle. DI8DEVTYPESUPPLEMENTAL_SPLITTHROTTLE Constant SupplementalRudderpedals. DI8DEVTYPESUPPLEMENTAL_RUDDERPEDALS Constant SupplementalUnknown. DI8DEVTYPESUPPLEMENTAL_UNKNOWN Constant SupplementalThreepedals. DI8DEVTYPESUPPLEMENTAL_THREEPEDALS Constant SupplementalThrottle. DI8DEVTYPESUPPLEMENTAL_THROTTLE Functions Constant SdkVersion. DIRECTINPUT_VERSION Creates a DirectInput object and returns anIDirectInput8 Interfaceor later interface. No documentation. No documentation. No documentation. No documentation. No documentation.

If the function succeeds, the return value is . If the function fails, the return value can be one of the following error values: , , , .

The DirectInput object created by this function is implemented in Dinput8.dll. Versions of interfaces earlier than DirectX 8.0 cannot be obtained in this implementation.

To create a DirectX 8.x interface with the latest DirectX SDK without using CoCreateInstance:

  1. Set "#define 0x0800" before the include statement for Dinput8.h.

  2. Call DirectInput8Create instead of DirectInputCreateEx.

  3. Link to the Dinput8.lib library instead of Dinput.lib.

To create a DirectX 8.x interface with the DirectX 8.x SDK without using CoCreateInstance:

  1. Call DirectInput8Create instead of DirectInputCreateEx.

  2. Link to the Dinput8.lib library instead of Dinput.lib.

To create a DirectX 7.0 interface from the DirectX 8.x or latest DirectX SDK without using CoCreateInstance:

  1. Set "#define 0x0700" before the include statement for dinput.h.

  2. Call DirectInputCreateEx instead of DirectInput8Create.

  3. Link to the Dinput.lib library instead of Dinput8.lib.

To create a DirectX 7.0 interface from the DirectX 8.x or latest DirectX SDK using CoCreateInstance:

  1. Call CoInitializeEx.

  2. Call CoCreateInstance using CLISID_DirectInput.

  3. Use IDirectInput7::Initialize to initialize the DirectInput object.

To create a DirectX 8.x or DirectX 9.0 interface from the DirectX 8.x or latest DirectX SDK using CoCreateInstance:

  1. Call CoInitializeEx.

  2. Call CoCreateInstance using CLISID_DirectInput8.

  3. Use to initialize the DirectInput object.

Calling the function with pUnkOuter = null is equivalent to creating the object through CoCreateInstance( &CLSID_DirectInput8, punkOuter, CLSCTX_INPROC_SERVER, &IID_IDirectInput8W, lplpDirectInput), then initializing it with .

Calling the function with pUnkOuter != null is equivalent to creating the object through CoCreateInstance( &CLSID_DirectInput8, punkOuter, CLSCTX_INPROC_SERVER, &IID_IUnknown, lplpDirectInput). The aggregated object must be initialized manually.

microsoft.directx_sdk.reference.directinput8create HRESULT DirectInput8Create([In] HINSTANCE hinst,[In] unsigned int dwVersion,[In] const GUID& riidltf,[Out] void** ppvOut,[In] IUnknown* punkOuter) DirectInput8Create
Functions Constant ConstantForce. GUID_ConstantForce Constant RampForce. GUID_RampForce Constant Square. GUID_Square Constant Sine. GUID_Sine Constant Triangle. GUID_Triangle Constant SawtoothUp. GUID_SawtoothUp Constant SawtoothDown. GUID_SawtoothDown Constant Spring. GUID_Spring Constant Damper. GUID_Damper Constant Inertia. GUID_Inertia Constant Friction. GUID_Friction Constant CustomForce. GUID_CustomForce Functions Constant FishingGenre. DIVIRTUAL_SPORTS_FISHING Constant Lateral. DIAXIS_FISHING_LATERAL Constant Move. DIAXIS_FISHING_MOVE Constant Rotate. DIAXIS_FISHING_ROTATE Constant Glance. DIHATSWITCH_FISHING_GLANCE Functions Constant FootballDefenseGenre. DIVIRTUAL_SPORTS_FOOTBALL_DEFENSE Constant Move. DIAXIS_FOOTBALLD_MOVE Constant Lateral. DIAXIS_FOOTBALLD_LATERAL Constant Audible. DIBUTTON_FOOTBALLD_AUDIBLE Constant Menu. DIBUTTON_FOOTBALLD_MENU Constant LeftLink. DIBUTTON_FOOTBALLD_LEFT_LINK Constant SubStitute. DIBUTTON_FOOTBALLD_SUBSTITUTE Constant BackLink. DIBUTTON_FOOTBALLD_BACK_LINK Constant RightLink. DIBUTTON_FOOTBALLD_RIGHT_LINK Constant ForwardLink. DIBUTTON_FOOTBALLD_FORWARD_LINK Constant Zoom. DIBUTTON_FOOTBALLD_ZOOM Constant Spin. DIBUTTON_FOOTBALLD_SPIN Constant Tackle. DIBUTTON_FOOTBALLD_TACKLE Constant Jump. DIBUTTON_FOOTBALLD_JUMP Constant Play. DIBUTTON_FOOTBALLD_PLAY Constant Supertackle. DIBUTTON_FOOTBALLD_SUPERTACKLE Constant Swim. DIBUTTON_FOOTBALLD_SWIM Constant Pause. DIBUTTON_FOOTBALLD_PAUSE Constant Select. DIBUTTON_FOOTBALLD_SELECT Constant Rip. DIBUTTON_FOOTBALLD_RIP Constant Fake. DIBUTTON_FOOTBALLD_FAKE Constant Device. DIBUTTON_FOOTBALLD_DEVICE Constant Bullrush. DIBUTTON_FOOTBALLD_BULLRUSH Functions Constant FootballOffenseGenre. DIVIRTUAL_SPORTS_FOOTBALL_OFFENSE Constant Move. DIAXIS_FOOTBALLO_MOVE Constant Lateral. DIAXIS_FOOTBALLO_LATERAL Constant BackLink. DIBUTTON_FOOTBALLO_BACK_LINK Constant Pause. DIBUTTON_FOOTBALLO_PAUSE Constant Throw. DIBUTTON_FOOTBALLO_THROW Constant Turbo. DIBUTTON_FOOTBALLO_TURBO Constant Device. DIBUTTON_FOOTBALLO_DEVICE Constant Juke. DIBUTTON_FOOTBALLO_JUKE Constant Menu. DIBUTTON_FOOTBALLO_MENU Constant Shoulder. DIBUTTON_FOOTBALLO_SHOULDER Constant SubStitute. DIBUTTON_FOOTBALLO_SUBSTITUTE Constant Leftarm. DIBUTTON_FOOTBALLO_LEFTARM Constant Zoom. DIBUTTON_FOOTBALLO_ZOOM Constant Spin. DIBUTTON_FOOTBALLO_SPIN Constant Jump. DIBUTTON_FOOTBALLO_JUMP Constant RightLink. DIBUTTON_FOOTBALLO_RIGHT_LINK Constant LeftLink. DIBUTTON_FOOTBALLO_LEFT_LINK Constant Dive. DIBUTTON_FOOTBALLO_DIVE Constant Rightarm. DIBUTTON_FOOTBALLO_RIGHTARM Constant ForwardLink. DIBUTTON_FOOTBALLO_FORWARD_LINK Functions Constant FootballPlayGenre. DIVIRTUAL_SPORTS_FOOTBALL_FIELD Constant Pause. DIBUTTON_FOOTBALLP_PAUSE Constant Help. DIBUTTON_FOOTBALLP_HELP Constant Select. DIBUTTON_FOOTBALLP_SELECT Constant Device. DIBUTTON_FOOTBALLP_DEVICE Constant Menu. DIBUTTON_FOOTBALLP_MENU Constant Play. DIBUTTON_FOOTBALLP_PLAY Functions Constant FootballQuarterbackGenre. DIVIRTUAL_SPORTS_FOOTBALL_QBCK Constant Lateral. DIAXIS_FOOTBALLQ_LATERAL Constant Move. DIAXIS_FOOTBALLQ_MOVE Constant BackLink. DIBUTTON_FOOTBALLQ_BACK_LINK Constant Pass. DIBUTTON_FOOTBALLQ_PASS Constant Fake. DIBUTTON_FOOTBALLQ_FAKE Constant Snap. DIBUTTON_FOOTBALLQ_SNAP Constant ForwardLink. DIBUTTON_FOOTBALLQ_FORWARD_LINK Constant Menu. DIBUTTON_FOOTBALLQ_MENU Constant Fakesnap. DIBUTTON_FOOTBALLQ_FAKESNAP Constant Motion. DIBUTTON_FOOTBALLQ_MOTION Constant RightLink. DIBUTTON_FOOTBALLQ_RIGHT_LINK Constant Audible. DIBUTTON_FOOTBALLQ_AUDIBLE Constant Jump. DIBUTTON_FOOTBALLQ_JUMP Constant Slide. DIBUTTON_FOOTBALLQ_SLIDE Constant Select. DIBUTTON_FOOTBALLQ_SELECT Constant Pause. DIBUTTON_FOOTBALLQ_PAUSE Constant LeftLink. DIBUTTON_FOOTBALLQ_LEFT_LINK Constant Device. DIBUTTON_FOOTBALLQ_DEVICE Functions Constant GolfGenre. DIVIRTUAL_SPORTS_GOLF Constant Lateral. DIAXIS_GOLF_LATERAL Constant Move. DIAXIS_GOLF_MOVE Constant Terrain. DIBUTTON_GOLF_TERRAIN Constant BackLink. DIBUTTON_GOLF_BACK_LINK Constant Device. DIBUTTON_GOLF_DEVICE Constant Menu. DIBUTTON_GOLF_MENU Constant Timeout. DIBUTTON_GOLF_TIMEOUT Constant ForwardLink. DIBUTTON_GOLF_FORWARD_LINK Constant Down. DIBUTTON_GOLF_DOWN Constant Zoom. DIBUTTON_GOLF_ZOOM Constant SubStitute. DIBUTTON_GOLF_SUBSTITUTE Constant Swing. DIBUTTON_GOLF_SWING Constant RightLink. DIBUTTON_GOLF_RIGHT_LINK Constant Select. DIBUTTON_GOLF_SELECT Constant Flyby. DIBUTTON_GOLF_FLYBY Constant Up. DIBUTTON_GOLF_UP Constant LeftLink. DIBUTTON_GOLF_LEFT_LINK Constant Pause. DIBUTTON_GOLF_PAUSE Functions Constant HandToHandGenre. DIVIRTUAL_FIGHTING_HAND2HAND Constant Move. DIAXIS_FIGHTINGH_MOVE Constant Rotate. DIAXIS_FIGHTINGH_ROTATE Constant Lateral. DIAXIS_FIGHTINGH_LATERAL Constant Device. DIBUTTON_FIGHTINGH_DEVICE Constant Jump. DIBUTTON_FIGHTINGH_JUMP Constant LeftLink. DIBUTTON_FIGHTINGH_LEFT_LINK Constant Display. DIBUTTON_FIGHTINGH_DISPLAY Constant RightLink. DIBUTTON_FIGHTINGH_RIGHT_LINK Constant BackwardLink. DIBUTTON_FIGHTINGH_BACKWARD_LINK Constant Crouch. DIBUTTON_FIGHTINGH_CROUCH Constant Dodge. DIBUTTON_FIGHTINGH_DODGE Constant Pause. DIBUTTON_FIGHTINGH_PAUSE Constant Block. DIBUTTON_FIGHTINGH_BLOCK Constant ForwardLink. DIBUTTON_FIGHTINGH_FORWARD_LINK Constant Menu. DIBUTTON_FIGHTINGH_MENU Constant Punch. DIBUTTON_FIGHTINGH_PUNCH Constant Kick. DIBUTTON_FIGHTINGH_KICK Constant Special1. DIBUTTON_FIGHTINGH_SPECIAL1 Constant Special2. DIBUTTON_FIGHTINGH_SPECIAL2 Constant Select. DIBUTTON_FIGHTINGH_SELECT Constant Slide. DIHATSWITCH_FIGHTINGH_SLIDE Functions Constant HelicopterCombatGenre. DIVIRTUAL_FLYING_HELICOPTER Constant Torque. DIAXIS_FLYINGH_TORQUE Constant Pitch. DIAXIS_FLYINGH_PITCH Constant Collective. DIAXIS_FLYINGH_COLLECTIVE Constant Bank. DIAXIS_FLYINGH_BANK Constant Throttle. DIAXIS_FLYINGH_THROTTLE Constant FasterLink. DIBUTTON_FLYINGH_FASTER_LINK Constant GlanceDownLink. DIBUTTON_FLYINGH_GLANCE_DOWN_LINK Constant GlanceRightLink. DIBUTTON_FLYINGH_GLANCE_RIGHT_LINK Constant GlanceUpLink. DIBUTTON_FLYINGH_GLANCE_UP_LINK Constant Menu. DIBUTTON_FLYINGH_MENU Constant Counter. DIBUTTON_FLYINGH_COUNTER Constant Device. DIBUTTON_FLYINGH_DEVICE Constant Gear. DIBUTTON_FLYINGH_GEAR Constant Fire. DIBUTTON_FLYINGH_FIRE Constant Firesecondary. DIBUTTON_FLYINGH_FIRESECONDARY Constant SlowerLink. DIBUTTON_FLYINGH_SLOWER_LINK Constant GlanceLeftLink. DIBUTTON_FLYINGH_GLANCE_LEFT_LINK Constant View. DIBUTTON_FLYINGH_VIEW Constant Pause. DIBUTTON_FLYINGH_PAUSE Constant Weapons. DIBUTTON_FLYINGH_WEAPONS Constant Target. DIBUTTON_FLYINGH_TARGET Constant Glance. DIHATSWITCH_FLYINGH_GLANCE Functions Constant HockeyDefenseGenre. DIVIRTUAL_SPORTS_HOCKEY_DEFENSE Constant Move. DIAXIS_HOCKEYD_MOVE Constant Lateral. DIAXIS_HOCKEYD_LATERAL Constant Device. DIBUTTON_HOCKEYD_DEVICE Constant Menu. DIBUTTON_HOCKEYD_MENU Constant Timeout. DIBUTTON_HOCKEYD_TIMEOUT Constant LeftLink. DIBUTTON_HOCKEYD_LEFT_LINK Constant SubStitute. DIBUTTON_HOCKEYD_SUBSTITUTE Constant Zoom. DIBUTTON_HOCKEYD_ZOOM Constant Pause. DIBUTTON_HOCKEYD_PAUSE Constant RightLink. DIBUTTON_HOCKEYD_RIGHT_LINK Constant Block. DIBUTTON_HOCKEYD_BLOCK Constant Burst. DIBUTTON_HOCKEYD_BURST Constant Strategy. DIBUTTON_HOCKEYD_STRATEGY Constant BackLink. DIBUTTON_HOCKEYD_BACK_LINK Constant Fake. DIBUTTON_HOCKEYD_FAKE Constant Steal. DIBUTTON_HOCKEYD_STEAL Constant ForwardLink. DIBUTTON_HOCKEYD_FORWARD_LINK Constant Player. DIBUTTON_HOCKEYD_PLAYER Constant Scroll. DIHATSWITCH_HOCKEYD_SCROLL Functions Constant HockeyGoalieGenre. DIVIRTUAL_SPORTS_HOCKEY_GOALIE Constant Move. DIAXIS_HOCKEYG_MOVE Constant Lateral. DIAXIS_HOCKEYG_LATERAL Constant Block. DIBUTTON_HOCKEYG_BLOCK Constant Zoom. DIBUTTON_HOCKEYG_ZOOM Constant RightLink. DIBUTTON_HOCKEYG_RIGHT_LINK Constant Strategy. DIBUTTON_HOCKEYG_STRATEGY Constant LeftLink. DIBUTTON_HOCKEYG_LEFT_LINK Constant Steal. DIBUTTON_HOCKEYG_STEAL Constant Timeout. DIBUTTON_HOCKEYG_TIMEOUT Constant Pass. DIBUTTON_HOCKEYG_PASS Constant Device. DIBUTTON_HOCKEYG_DEVICE Constant BackLink. DIBUTTON_HOCKEYG_BACK_LINK Constant Pause. DIBUTTON_HOCKEYG_PAUSE Constant ForwardLink. DIBUTTON_HOCKEYG_FORWARD_LINK Constant Poke. DIBUTTON_HOCKEYG_POKE Constant SubStitute. DIBUTTON_HOCKEYG_SUBSTITUTE Constant Menu. DIBUTTON_HOCKEYG_MENU Constant Scroll. DIHATSWITCH_HOCKEYG_SCROLL Functions Constant HockeyOffenseGenre. DIVIRTUAL_SPORTS_HOCKEY_OFFENSE Constant Lateral. DIAXIS_HOCKEYO_LATERAL Constant Move. DIAXIS_HOCKEYO_MOVE Constant Pass. DIBUTTON_HOCKEYO_PASS Constant Fake. DIBUTTON_HOCKEYO_FAKE Constant LeftLink. DIBUTTON_HOCKEYO_LEFT_LINK Constant Timeout. DIBUTTON_HOCKEYO_TIMEOUT Constant ForwardLink. DIBUTTON_HOCKEYO_FORWARD_LINK Constant Strategy. DIBUTTON_HOCKEYO_STRATEGY Constant Menu. DIBUTTON_HOCKEYO_MENU Constant Special. DIBUTTON_HOCKEYO_SPECIAL Constant BackLink. DIBUTTON_HOCKEYO_BACK_LINK Constant Shoot. DIBUTTON_HOCKEYO_SHOOT Constant Zoom. DIBUTTON_HOCKEYO_ZOOM Constant SubStitute. DIBUTTON_HOCKEYO_SUBSTITUTE Constant RightLink. DIBUTTON_HOCKEYO_RIGHT_LINK Constant Pause. DIBUTTON_HOCKEYO_PAUSE Constant Device. DIBUTTON_HOCKEYO_DEVICE Constant Burst. DIBUTTON_HOCKEYO_BURST Constant Scroll. DIHATSWITCH_HOCKEYO_SCROLL Functions Constant HuntingGenre. DIVIRTUAL_SPORTS_HUNTING Constant Move. DIAXIS_HUNTING_MOVE Constant Rotate. DIAXIS_HUNTING_ROTATE Constant Lateral. DIAXIS_HUNTING_LATERAL Constant BackLink. DIBUTTON_HUNTING_BACK_LINK Constant RightLink. DIBUTTON_HUNTING_RIGHT_LINK Constant Pause. DIBUTTON_HUNTING_PAUSE Constant Crouch. DIBUTTON_HUNTING_CROUCH Constant Fire. DIBUTTON_HUNTING_FIRE Constant Binocular. DIBUTTON_HUNTING_BINOCULAR Constant Menu. DIBUTTON_HUNTING_MENU Constant ForwardLink. DIBUTTON_HUNTING_FORWARD_LINK Constant RotateLeftLink. DIBUTTON_HUNTING_ROTATE_LEFT_LINK Constant Map. DIBUTTON_HUNTING_MAP Constant Jump. DIBUTTON_HUNTING_JUMP Constant Display. DIBUTTON_HUNTING_DISPLAY Constant Weapon. DIBUTTON_HUNTING_WEAPON Constant Special. DIBUTTON_HUNTING_SPECIAL Constant Firesecondary. DIBUTTON_HUNTING_FIRESECONDARY Constant Call. DIBUTTON_HUNTING_CALL Constant LeftLink. DIBUTTON_HUNTING_LEFT_LINK Constant Device. DIBUTTON_HUNTING_DEVICE Constant Aim. DIBUTTON_HUNTING_AIM Constant RotateRightLink. DIBUTTON_HUNTING_ROTATE_RIGHT_LINK Constant Glance. DIHATSWITCH_HUNTING_GLANCE Functions Constant MechanicalFightingGenre. DIVIRTUAL_DRIVING_MECHA Constant Torso. DIAXIS_MECHA_TORSO Constant Throttle. DIAXIS_MECHA_THROTTLE Constant Steer. DIAXIS_MECHA_STEER Constant Rotate. DIAXIS_MECHA_ROTATE Constant FasterLink. DIBUTTON_MECHA_FASTER_LINK Constant Zoom. DIBUTTON_MECHA_ZOOM Constant ForwardLink. DIBUTTON_MECHA_FORWARD_LINK Constant Jump. DIBUTTON_MECHA_JUMP Constant Reverse. DIBUTTON_MECHA_REVERSE Constant Menu. DIBUTTON_MECHA_MENU Constant Pause. DIBUTTON_MECHA_PAUSE Constant Center. DIBUTTON_MECHA_CENTER Constant RotateRightLink. DIBUTTON_MECHA_ROTATE_RIGHT_LINK Constant Target. DIBUTTON_MECHA_TARGET Constant RightLink. DIBUTTON_MECHA_RIGHT_LINK Constant View. DIBUTTON_MECHA_VIEW Constant LeftLink. DIBUTTON_MECHA_LEFT_LINK Constant SlowerLink. DIBUTTON_MECHA_SLOWER_LINK Constant Weapons. DIBUTTON_MECHA_WEAPONS Constant Fire. DIBUTTON_MECHA_FIRE Constant Device. DIBUTTON_MECHA_DEVICE Constant Firesecondary. DIBUTTON_MECHA_FIRESECONDARY Constant BackLink. DIBUTTON_MECHA_BACK_LINK Constant RotateLeftLink. DIBUTTON_MECHA_ROTATE_LEFT_LINK Constant Glance. DIHATSWITCH_MECHA_GLANCE Functions Constant Models3DGenre. DIVIRTUAL_CAD_MODEL Constant Inout. DIAXIS_CADM_INOUT Constant Move. DIAXIS_CADM_MOVE Constant Rotatez. DIAXIS_CADM_ROTATEZ Constant Rotatey. DIAXIS_CADM_ROTATEY Constant Rotatex. DIAXIS_CADM_ROTATEX Constant Lateral. DIAXIS_CADM_LATERAL Constant Pause. DIBUTTON_CADM_PAUSE Constant Special2. DIBUTTON_CADM_SPECIAL2 Constant Display. DIBUTTON_CADM_DISPLAY Constant Special. DIBUTTON_CADM_SPECIAL Constant Special1. DIBUTTON_CADM_SPECIAL1 Constant Select. DIBUTTON_CADM_SELECT Constant Device. DIBUTTON_CADM_DEVICE Constant Menu. DIBUTTON_CADM_MENU Constant Hatswitch. DIHATSWITCH_CADM_HATSWITCH Functions Constant MountainBikingGenre. DIVIRTUAL_SPORTS_BIKING_MOUNTAIN Constant Pedal. DIAXIS_BIKINGM_PEDAL Constant Brake. DIAXIS_BIKINGM_BRAKE Constant Turn. DIAXIS_BIKINGM_TURN Constant Special1. DIBUTTON_BIKINGM_SPECIAL1 Constant BrakeButtonLink. DIBUTTON_BIKINGM_BRAKE_BUTTON_LINK Constant Pause. DIBUTTON_BIKINGM_PAUSE Constant RightLink. DIBUTTON_BIKINGM_RIGHT_LINK Constant SlowerLink. DIBUTTON_BIKINGM_SLOWER_LINK Constant Menu. DIBUTTON_BIKINGM_MENU Constant Camera. DIBUTTON_BIKINGM_CAMERA Constant Special2. DIBUTTON_BIKINGM_SPECIAL2 Constant Zoom. DIBUTTON_BIKINGM_ZOOM Constant Jump. DIBUTTON_BIKINGM_JUMP Constant Select. DIBUTTON_BIKINGM_SELECT Constant Device. DIBUTTON_BIKINGM_DEVICE Constant LeftLink. DIBUTTON_BIKINGM_LEFT_LINK Constant FasterLink. DIBUTTON_BIKINGM_FASTER_LINK Constant Scroll. DIHATSWITCH_BIKINGM_SCROLL Functions Constant Navigation3DGenre. DIVIRTUAL_CAD_FLYBY Constant Rotatey. DIAXIS_CADF_ROTATEY Constant Inout. DIAXIS_CADF_INOUT Constant Rotatex. DIAXIS_CADF_ROTATEX Constant Move. DIAXIS_CADF_MOVE Constant Lateral. DIAXIS_CADF_LATERAL Constant Rotatez. DIAXIS_CADF_ROTATEZ Constant Pause. DIBUTTON_CADF_PAUSE Constant Special2. DIBUTTON_CADF_SPECIAL2 Constant Menu. DIBUTTON_CADF_MENU Constant Special1. DIBUTTON_CADF_SPECIAL1 Constant Display. DIBUTTON_CADF_DISPLAY Constant Special. DIBUTTON_CADF_SPECIAL Constant Device. DIBUTTON_CADF_DEVICE Constant Select. DIBUTTON_CADF_SELECT Constant Hatswitch. DIHATSWITCH_CADF_HATSWITCH Functions Constant XAxisStr. GUID_XAxis Constant YAxisStr. GUID_YAxis Constant ZAxisStr. GUID_ZAxis Constant RxAxisStr. GUID_RxAxis Constant RyAxisStr. GUID_RyAxis Constant RzAxisStr. GUID_RzAxis Constant ButtonStr. GUID_Button Constant KeyStr. GUID_Key Constant SliderStr. GUID_Slider Constant PovControllerStr. GUID_POV Constant UnknownStr. GUID_Unknown Constant XAxis. GUID_XAxis Constant YAxis. GUID_YAxis Constant ZAxis. GUID_ZAxis Constant RxAxis. GUID_RxAxis Constant RyAxis. GUID_RyAxis Constant RzAxis. GUID_RzAxis Constant Button. GUID_Button Constant Key. GUID_Key Constant Slider. GUID_Slider Constant PovController. GUID_POV Constant Unknown. GUID_Unknown Functions Constant Objects2DGenre. DIVIRTUAL_CAD_2DCONTROL Constant Lateral. DIAXIS_2DCONTROL_LATERAL Constant Inout. DIAXIS_2DCONTROL_INOUT Constant Move. DIAXIS_2DCONTROL_MOVE Constant Rotatez. DIAXIS_2DCONTROL_ROTATEZ Constant Special2. DIBUTTON_2DCONTROL_SPECIAL2 Constant Select. DIBUTTON_2DCONTROL_SELECT Constant Device. DIBUTTON_2DCONTROL_DEVICE Constant Special1. DIBUTTON_2DCONTROL_SPECIAL1 Constant Menu. DIBUTTON_2DCONTROL_MENU Constant Display. DIBUTTON_2DCONTROL_DISPLAY Constant Special. DIBUTTON_2DCONTROL_SPECIAL Constant Pause. DIBUTTON_2DCONTROL_PAUSE Constant Hatswitch. DIHATSWITCH_2DCONTROL_HATSWITCH Functions Constant Objects3DGenre. DIVIRTUAL_CAD_3DCONTROL Constant Rotatex. DIAXIS_3DCONTROL_ROTATEX Constant Rotatez. DIAXIS_3DCONTROL_ROTATEZ Constant Inout. DIAXIS_3DCONTROL_INOUT Constant Rotatey. DIAXIS_3DCONTROL_ROTATEY Constant Lateral. DIAXIS_3DCONTROL_LATERAL Constant Move. DIAXIS_3DCONTROL_MOVE Constant Special1. DIBUTTON_3DCONTROL_SPECIAL1 Constant Pause. DIBUTTON_3DCONTROL_PAUSE Constant Select. DIBUTTON_3DCONTROL_SELECT Constant Display. DIBUTTON_3DCONTROL_DISPLAY Constant Special. DIBUTTON_3DCONTROL_SPECIAL Constant Device. DIBUTTON_3DCONTROL_DEVICE Constant Special2. DIBUTTON_3DCONTROL_SPECIAL2 Constant Menu. DIBUTTON_3DCONTROL_MENU Constant Hatswitch. DIHATSWITCH_3DCONTROL_HATSWITCH Functions Constant PlatformGenre. DIVIRTUAL_ARCADE_PLATFORM Constant Lateral. DIAXIS_ARCADEP_LATERAL Constant Move. DIAXIS_ARCADEP_MOVE Constant Special. DIBUTTON_ARCADEP_SPECIAL Constant Fire. DIBUTTON_ARCADEP_FIRE Constant Menu. DIBUTTON_ARCADEP_MENU Constant BackLink. DIBUTTON_ARCADEP_BACK_LINK Constant Jump. DIBUTTON_ARCADEP_JUMP Constant Select. DIBUTTON_ARCADEP_SELECT Constant RightLink. DIBUTTON_ARCADEP_RIGHT_LINK Constant Device. DIBUTTON_ARCADEP_DEVICE Constant ViewLeftLink. DIBUTTON_ARCADEP_VIEW_LEFT_LINK Constant LeftLink. DIBUTTON_ARCADEP_LEFT_LINK Constant Firesecondary. DIBUTTON_ARCADEP_FIRESECONDARY Constant ForwardLink. DIBUTTON_ARCADEP_FORWARD_LINK Constant ViewUpLink. DIBUTTON_ARCADEP_VIEW_UP_LINK Constant Pause. DIBUTTON_ARCADEP_PAUSE Constant Crouch. DIBUTTON_ARCADEP_CROUCH Constant ViewRightLink. DIBUTTON_ARCADEP_VIEW_RIGHT_LINK Constant ViewDownLink. DIBUTTON_ARCADEP_VIEW_DOWN_LINK Constant View. DIHATSWITCH_ARCADEP_VIEW Functions Constant LogicalRange. DIPROP_LOGICALRANGE Constant Appdata. DIPROP_APPDATA Constant Ffgain. DIPROP_FFGAIN Constant GetPortdisplayname. DIPROP_GETPORTDISPLAYNAME Constant Keyname. DIPROP_KEYNAME Constant Ffload. DIPROP_FFLOAD Constant Physicalrange. DIPROP_PHYSICALRANGE Constant Autocenter. DIPROP_AUTOCENTER Constant Scancode. DIPROP_SCANCODE Constant Calibrationmode. DIPROP_CALIBRATIONMODE Constant Saturation. DIPROP_SATURATION Constant Calibration. DIPROP_CALIBRATION Constant Productname. DIPROP_PRODUCTNAME Constant Vidpid. DIPROP_VIDPID Constant BufferSize. DIPROP_BUFFERSIZE Constant Range. DIPROP_RANGE Constant Cpoints. DIPROP_CPOINTS Constant Joystickid. DIPROP_JOYSTICKID Constant Granularity. DIPROP_GRANULARITY Constant Username. DIPROP_USERNAME Constant InstanceName. DIPROP_INSTANCENAME Constant Deadzone. DIPROP_DEADZONE Constant Guidandpath. DIPROP_GUIDANDPATH Constant Axismode. DIPROP_AXISMODE Constant Typename. DIPROP_TYPENAME Functions Constant RacingGenre. DIVIRTUAL_DRIVING_RACE Constant Steer. DIAXIS_DRIVINGR_STEER Constant Accelerate. DIAXIS_DRIVINGR_ACCELERATE Constant BrakeAxis. DIAXIS_DRIVINGR_BRAKE Constant AccelerateAndBrake. DIAXIS_DRIVINGR_ACCEL_AND_BRAKE Constant Map. DIBUTTON_DRIVINGR_MAP Constant Shiftdown. DIBUTTON_DRIVINGR_SHIFTDOWN Constant SteerRightLink. DIBUTTON_DRIVINGR_STEER_RIGHT_LINK Constant View. DIBUTTON_DRIVINGR_VIEW Constant Dashboard. DIBUTTON_DRIVINGR_DASHBOARD Constant Pit. DIBUTTON_DRIVINGR_PIT Constant Shiftup. DIBUTTON_DRIVINGR_SHIFTUP Constant Boost. DIBUTTON_DRIVINGR_BOOST Constant Pause. DIBUTTON_DRIVINGR_PAUSE Constant GlanceLeftLink. DIBUTTON_DRIVINGR_GLANCE_LEFT_LINK Constant Device. DIBUTTON_DRIVINGR_DEVICE Constant Menu. DIBUTTON_DRIVINGR_MENU Constant AccelerateLink. DIBUTTON_DRIVINGR_ACCELERATE_LINK Constant Brake. DIBUTTON_DRIVINGR_BRAKE Constant SteerLeftLink. DIBUTTON_DRIVINGR_STEER_LEFT_LINK Constant GlanceRightLink. DIBUTTON_DRIVINGR_GLANCE_RIGHT_LINK Constant Aids. DIBUTTON_DRIVINGR_AIDS Constant Glance. DIHATSWITCH_DRIVINGR_GLANCE Functions Constant RacquetGenre. DIVIRTUAL_SPORTS_RACQUET Constant Lateral. DIAXIS_RACQUET_LATERAL Constant Move. DIAXIS_RACQUET_MOVE Constant Pause. DIBUTTON_RACQUET_PAUSE Constant Menu. DIBUTTON_RACQUET_MENU Constant RightLink. DIBUTTON_RACQUET_RIGHT_LINK Constant BackLink. DIBUTTON_RACQUET_BACK_LINK Constant SubStitute. DIBUTTON_RACQUET_SUBSTITUTE Constant LeftLink. DIBUTTON_RACQUET_LEFT_LINK Constant Select. DIBUTTON_RACQUET_SELECT Constant Device. DIBUTTON_RACQUET_DEVICE Constant Timeout. DIBUTTON_RACQUET_TIMEOUT Constant Smash. DIBUTTON_RACQUET_SMASH Constant ForwardLink. DIBUTTON_RACQUET_FORWARD_LINK Constant Backswing. DIBUTTON_RACQUET_BACKSWING Constant Swing. DIBUTTON_RACQUET_SWING Constant Special. DIBUTTON_RACQUET_SPECIAL Constant Glance. DIHATSWITCH_RACQUET_GLANCE Functions Constant RacquetGenre. DIVIRTUAL_REMOTE_CONTROL Constant Slider2. DIAXIS_REMOTE_SLIDER2 Constant Slider. DIAXIS_REMOTE_SLIDER Constant ReverseIew. DIBUTTON_REMOTE_REVIEW Constant Play. DIBUTTON_REMOTE_PLAY Constant Cd. DIBUTTON_REMOTE_CD Constant Select. DIBUTTON_REMOTE_SELECT Constant Digit9. DIBUTTON_REMOTE_DIGIT9 Constant Digit6. DIBUTTON_REMOTE_DIGIT6 Constant Device. DIBUTTON_REMOTE_DEVICE Constant Digit3. DIBUTTON_REMOTE_DIGIT3 Constant Digit0. DIBUTTON_REMOTE_DIGIT0 Constant Pause. DIBUTTON_REMOTE_PAUSE Constant Cable. DIBUTTON_REMOTE_CABLE Constant Cue. DIBUTTON_REMOTE_CUE Constant Mute. DIBUTTON_REMOTE_MUTE Constant Digit8. DIBUTTON_REMOTE_DIGIT8 Constant Digit5. DIBUTTON_REMOTE_DIGIT5 Constant Digit2. DIBUTTON_REMOTE_DIGIT2 Constant Tv. DIBUTTON_REMOTE_TV Constant Vcr. DIBUTTON_REMOTE_VCR Constant Adjust. DIBUTTON_REMOTE_ADJUST Constant Menu. DIBUTTON_REMOTE_MENU Constant Record. DIBUTTON_REMOTE_RECORD Constant Change. DIBUTTON_REMOTE_CHANGE Constant Digit7. DIBUTTON_REMOTE_DIGIT7 Constant Digit4. DIBUTTON_REMOTE_DIGIT4 Constant Digit1. DIBUTTON_REMOTE_DIGIT1 Constant Tuner. DIBUTTON_REMOTE_TUNER Constant Dvd. DIBUTTON_REMOTE_DVD Functions Constant Ok. DI_OK Constant NotAttached. DI_NOTATTACHED Constant BufferOverflow. DI_BUFFEROVERFLOW Constant PropertyHadNoEffect. DI_PROPNOEFFECT Constant NoEffect. DI_NOEFFECT Constant PolledDevice. DI_POLLEDDEVICE Constant DownloadSkipped. DI_DOWNLOADSKIPPED Constant EffectRestarted. DI_EFFECTRESTARTED Constant Truncated. DI_TRUNCATED Constant SettingsNotSaved. DI_SETTINGSNOTSAVED Constant TruncatedAndRestarted. DI_TRUNCATEDANDRESTARTED Constant WriteProtect. DI_WRITEPROTECT Constant ReadOnly. DIERR_READONLY Constant NotFound. DIERR_NOTFOUND Constant MapFileFail. DIERR_MAPFILEFAIL Constant AlreadyInitialized. DIERR_ALREADYINITIALIZED Constant IncompleteEffect. DIERR_INCOMPLETEEFFECT Constant InvalidParam. DIERR_INVALIDPARAM Constant EffectPlaying. DIERR_EFFECTPLAYING Constant NotInitialized. DIERR_NOTINITIALIZED Constant NotAcquired. DIERR_NOTACQUIRED Constant HandleExists. DIERR_HANDLEEXISTS Constant HasEffects. DIERR_HASEFFECTS Constant OldDirectInputVersion. DIERR_OLDDIRECTINPUTVERSION Constant NoAggregation. DIERR_NOAGGREGATION Constant MoreData. DIERR_MOREDATA Constant DeviceFull. DIERR_DEVICEFULL Constant ReportFull. DIERR_REPORTFULL Constant NotDownloaded. DIERR_NOTDOWNLOADED Constant NotBuffered. DIERR_NOTBUFFERED Constant ObjectNotFound. DIERR_OBJECTNOTFOUND Constant InsufficientPrivileges. DIERR_INSUFFICIENTPRIVS Constant NoInterface. DIERR_NOINTERFACE Constant OutOfMemory. DIERR_OUTOFMEMORY Constant DeviceNotRegistered. DIERR_DEVICENOTREG Constant Generic. DIERR_GENERIC Constant OtherApplicationHasPriority. DIERR_OTHERAPPHASPRIO Constant NotExclusiveAcquired. DIERR_NOTEXCLUSIVEACQUIRED Constant InputLost. DIERR_INPUTLOST Constant BetaDirectInputVersion. DIERR_BETADIRECTINPUTVERSION Constant BadDriverVersion. DIERR_BADDRIVERVER Constant Acquired. DIERR_ACQUIRED Constant Unplugged. DIERR_UNPLUGGED Constant Unsupported. DIERR_UNSUPPORTED Functions Constant RolePlayingGenre. DIVIRTUAL_STRATEGY_ROLEPLAYING Constant Lateral. DIAXIS_STRATEGYR_LATERAL Constant Move. DIAXIS_STRATEGYR_MOVE Constant Rotate. DIAXIS_STRATEGYR_ROTATE Constant Map. DIBUTTON_STRATEGYR_MAP Constant Crouch. DIBUTTON_STRATEGYR_CROUCH Constant Cast. DIBUTTON_STRATEGYR_CAST Constant Get. DIBUTTON_STRATEGYR_GET Constant RotateLeftLink. DIBUTTON_STRATEGYR_ROTATE_LEFT_LINK Constant Display. DIBUTTON_STRATEGYR_DISPLAY Constant ForwardLink. DIBUTTON_STRATEGYR_FORWARD_LINK Constant LeftLink. DIBUTTON_STRATEGYR_LEFT_LINK Constant RightLink. DIBUTTON_STRATEGYR_RIGHT_LINK Constant Pause. DIBUTTON_STRATEGYR_PAUSE Constant Select. DIBUTTON_STRATEGYR_SELECT Constant RotateRightLink. DIBUTTON_STRATEGYR_ROTATE_RIGHT_LINK Constant Device. DIBUTTON_STRATEGYR_DEVICE Constant BackLink. DIBUTTON_STRATEGYR_BACK_LINK Constant Menu. DIBUTTON_STRATEGYR_MENU Constant Attack. DIBUTTON_STRATEGYR_ATTACK Constant Jump. DIBUTTON_STRATEGYR_JUMP Constant Apply. DIBUTTON_STRATEGYR_APPLY Constant Glance. DIHATSWITCH_STRATEGYR_GLANCE Functions Constant Sidestep. DIAXIS_FPS_SIDESTEP Constant Rotate. DIAXIS_FPS_ROTATE Constant Lookupdown. DIAXIS_FPS_LOOKUPDOWN Constant Move. DIAXIS_FPS_MOVE Constant GlanceDownLink. DIBUTTON_FPS_GLANCE_DOWN_LINK Constant StepRightLink. DIBUTTON_FPS_STEP_RIGHT_LINK Constant Jump. DIBUTTON_FPS_JUMP Constant Crouch. DIBUTTON_FPS_CROUCH Constant Strafe. DIBUTTON_FPS_STRAFE Constant GlanceUpLink. DIBUTTON_FPS_GLANCE_UP_LINK Constant BackwardLink. DIBUTTON_FPS_BACKWARD_LINK Constant Dodge. DIBUTTON_FPS_DODGE Constant Apply. DIBUTTON_FPS_APPLY Constant StepLeftLink. DIBUTTON_FPS_STEP_LEFT_LINK Constant Firesecondary. DIBUTTON_FPS_FIRESECONDARY Constant Pause. DIBUTTON_FPS_PAUSE Constant Glancer. DIBUTTON_FPS_GLANCER Constant Weapons. DIBUTTON_FPS_WEAPONS Constant RotateLeftLink. DIBUTTON_FPS_ROTATE_LEFT_LINK Constant Glancel. DIBUTTON_FPS_GLANCEL Constant ForwardLink. DIBUTTON_FPS_FORWARD_LINK Constant Select. DIBUTTON_FPS_SELECT Constant Fire. DIBUTTON_FPS_FIRE Constant Device. DIBUTTON_FPS_DEVICE Constant Menu. DIBUTTON_FPS_MENU Constant Display. DIBUTTON_FPS_DISPLAY Constant RotateRightLink. DIBUTTON_FPS_ROTATE_RIGHT_LINK Constant Glance. DIHATSWITCH_FPS_GLANCE Functions Constant SideToSideGenre. DIVIRTUAL_ARCADE_SIDE2SIDE Constant Lateral. DIAXIS_ARCADES_LATERAL Constant Move. DIAXIS_ARCADES_MOVE Constant ViewDownLink. DIBUTTON_ARCADES_VIEW_DOWN_LINK Constant Carry. DIBUTTON_ARCADES_CARRY Constant LeftLink. DIBUTTON_ARCADES_LEFT_LINK Constant Select. DIBUTTON_ARCADES_SELECT Constant ViewRightLink. DIBUTTON_ARCADES_VIEW_RIGHT_LINK Constant Device. DIBUTTON_ARCADES_DEVICE Constant Pause. DIBUTTON_ARCADES_PAUSE Constant BackLink. DIBUTTON_ARCADES_BACK_LINK Constant ForwardLink. DIBUTTON_ARCADES_FORWARD_LINK Constant Attack. DIBUTTON_ARCADES_ATTACK Constant ViewUpLink. DIBUTTON_ARCADES_VIEW_UP_LINK Constant ViewLeftLink. DIBUTTON_ARCADES_VIEW_LEFT_LINK Constant Special. DIBUTTON_ARCADES_SPECIAL Constant RightLink. DIBUTTON_ARCADES_RIGHT_LINK Constant Throw. DIBUTTON_ARCADES_THROW Constant Menu. DIBUTTON_ARCADES_MENU Constant View. DIHATSWITCH_ARCADES_VIEW Functions Constant SkiingGenre. DIVIRTUAL_SPORTS_SKIING Constant Speed. DIAXIS_SKIING_SPEED Constant Turn. DIAXIS_SKIING_TURN Constant Device. DIBUTTON_SKIING_DEVICE Constant Menu. DIBUTTON_SKIING_MENU Constant SlowerLink. DIBUTTON_SKIING_SLOWER_LINK Constant Pause. DIBUTTON_SKIING_PAUSE Constant Crouch. DIBUTTON_SKIING_CROUCH Constant Special2. DIBUTTON_SKIING_SPECIAL2 Constant RightLink. DIBUTTON_SKIING_RIGHT_LINK Constant Zoom. DIBUTTON_SKIING_ZOOM Constant Camera. DIBUTTON_SKIING_CAMERA Constant Jump. DIBUTTON_SKIING_JUMP Constant LeftLink. DIBUTTON_SKIING_LEFT_LINK Constant FasterLink. DIBUTTON_SKIING_FASTER_LINK Constant Select. DIBUTTON_SKIING_SELECT Constant Special1. DIBUTTON_SKIING_SPECIAL1 Constant Glance. DIHATSWITCH_SKIING_GLANCE Functions Constant SoccerDefenseGenre. DIVIRTUAL_SPORTS_SOCCER_DEFENSE Constant Move. DIAXIS_SOCCERD_MOVE Constant Lateral. DIAXIS_SOCCERD_LATERAL Constant Head. DIBUTTON_SOCCERD_HEAD Constant Slide. DIBUTTON_SOCCERD_SLIDE Constant Foul. DIBUTTON_SOCCERD_FOUL Constant Steal. DIBUTTON_SOCCERD_STEAL Constant Pause. DIBUTTON_SOCCERD_PAUSE Constant LeftLink. DIBUTTON_SOCCERD_LEFT_LINK Constant SubStitute. DIBUTTON_SOCCERD_SUBSTITUTE Constant Block. DIBUTTON_SOCCERD_BLOCK Constant Select. DIBUTTON_SOCCERD_SELECT Constant Clear. DIBUTTON_SOCCERD_CLEAR Constant Device. DIBUTTON_SOCCERD_DEVICE Constant RightLink. DIBUTTON_SOCCERD_RIGHT_LINK Constant Fake. DIBUTTON_SOCCERD_FAKE Constant Goaliecharge. DIBUTTON_SOCCERD_GOALIECHARGE Constant BackLink. DIBUTTON_SOCCERD_BACK_LINK Constant Player. DIBUTTON_SOCCERD_PLAYER Constant ForwardLink. DIBUTTON_SOCCERD_FORWARD_LINK Constant Menu. DIBUTTON_SOCCERD_MENU Constant Special. DIBUTTON_SOCCERD_SPECIAL Constant Glance. DIHATSWITCH_SOCCERD_GLANCE Functions Constant SoccerOffenceGenre. DIVIRTUAL_SPORTS_SOCCER_OFFENSE Constant Lateral. DIAXIS_SOCCERO_LATERAL Constant Move. DIAXIS_SOCCERO_MOVE Constant Bend. DIAXIS_SOCCERO_BEND Constant LeftLink. DIBUTTON_SOCCERO_LEFT_LINK Constant Player. DIBUTTON_SOCCERO_PLAYER Constant Sprint. DIBUTTON_SOCCERO_SPRINT Constant ForwardLink. DIBUTTON_SOCCERO_FORWARD_LINK Constant Shootlow. DIBUTTON_SOCCERO_SHOOTLOW Constant Control. DIBUTTON_SOCCERO_CONTROL Constant Shoot. DIBUTTON_SOCCERO_SHOOT Constant RightLink. DIBUTTON_SOCCERO_RIGHT_LINK Constant BackLink. DIBUTTON_SOCCERO_BACK_LINK Constant Pass. DIBUTTON_SOCCERO_PASS Constant SubStitute. DIBUTTON_SOCCERO_SUBSTITUTE Constant Fake. DIBUTTON_SOCCERO_FAKE Constant Head. DIBUTTON_SOCCERO_HEAD Constant Pause. DIBUTTON_SOCCERO_PAUSE Constant Passthru. DIBUTTON_SOCCERO_PASSTHRU Constant Shoothigh. DIBUTTON_SOCCERO_SHOOTHIGH Constant Select. DIBUTTON_SOCCERO_SELECT Constant Special1. DIBUTTON_SOCCERO_SPECIAL1 Constant Device. DIBUTTON_SOCCERO_DEVICE Constant Menu. DIBUTTON_SOCCERO_MENU Constant Glance. DIHATSWITCH_SOCCERO_GLANCE Functions Constant SpaceCombatGenre. DIVIRTUAL_SPACESIM Constant Rotate. DIAXIS_SPACESIM_ROTATE Constant Throttle. DIAXIS_SPACESIM_THROTTLE Constant Lateral. DIAXIS_SPACESIM_LATERAL Constant Climb. DIAXIS_SPACESIM_CLIMB Constant Move. DIAXIS_SPACESIM_MOVE Constant SlowerLink. DIBUTTON_SPACESIM_SLOWER_LINK Constant Gear. DIBUTTON_SPACESIM_GEAR Constant Fire. DIBUTTON_SPACESIM_FIRE Constant RightLink. DIBUTTON_SPACESIM_RIGHT_LINK Constant Device. DIBUTTON_SPACESIM_DEVICE Constant GlanceDownLink. DIBUTTON_SPACESIM_GLANCE_DOWN_LINK Constant GlanceLeftLink. DIBUTTON_SPACESIM_GLANCE_LEFT_LINK Constant Menu. DIBUTTON_SPACESIM_MENU Constant TurnRightLink. DIBUTTON_SPACESIM_TURN_RIGHT_LINK Constant Pause. DIBUTTON_SPACESIM_PAUSE Constant Lower. DIBUTTON_SPACESIM_LOWER Constant GlanceRightLink. DIBUTTON_SPACESIM_GLANCE_RIGHT_LINK Constant BackwardLink. DIBUTTON_SPACESIM_BACKWARD_LINK Constant TurnLeftLink. DIBUTTON_SPACESIM_TURN_LEFT_LINK Constant LeftLink. DIBUTTON_SPACESIM_LEFT_LINK Constant FasterLink. DIBUTTON_SPACESIM_FASTER_LINK Constant Display. DIBUTTON_SPACESIM_DISPLAY Constant GlanceUpLink. DIBUTTON_SPACESIM_GLANCE_UP_LINK Constant Weapons. DIBUTTON_SPACESIM_WEAPONS Constant View. DIBUTTON_SPACESIM_VIEW Constant ForwardLink. DIBUTTON_SPACESIM_FORWARD_LINK Constant Firesecondary. DIBUTTON_SPACESIM_FIRESECONDARY Constant Raise. DIBUTTON_SPACESIM_RAISE Constant Target. DIBUTTON_SPACESIM_TARGET Constant Glance. DIHATSWITCH_SPACESIM_GLANCE Functions Constant TankDrivingGenre. DIVIRTUAL_DRIVING_TANK Constant BrakeAxis. DIAXIS_DRIVINGT_BRAKE Constant AccelerateAndBrake. DIAXIS_DRIVINGT_ACCEL_AND_BRAKE Constant Accelerate. DIAXIS_DRIVINGT_ACCELERATE Constant Rotate. DIAXIS_DRIVINGT_ROTATE Constant Steer. DIAXIS_DRIVINGT_STEER Constant Barrel. DIAXIS_DRIVINGT_BARREL Constant BarrelDownLink. DIBUTTON_DRIVINGT_BARREL_DOWN_LINK Constant GlanceRightLink. DIBUTTON_DRIVINGT_GLANCE_RIGHT_LINK Constant Dashboard. DIBUTTON_DRIVINGT_DASHBOARD Constant Device. DIBUTTON_DRIVINGT_DEVICE Constant SteerLeftLink. DIBUTTON_DRIVINGT_STEER_LEFT_LINK Constant View. DIBUTTON_DRIVINGT_VIEW Constant AccelerateLink. DIBUTTON_DRIVINGT_ACCELERATE_LINK Constant Weapons. DIBUTTON_DRIVINGT_WEAPONS Constant BarrelUpLink. DIBUTTON_DRIVINGT_BARREL_UP_LINK Constant Brake. DIBUTTON_DRIVINGT_BRAKE Constant SteerRightLink. DIBUTTON_DRIVINGT_STEER_RIGHT_LINK Constant RotateLeftLink. DIBUTTON_DRIVINGT_ROTATE_LEFT_LINK Constant Firesecondary. DIBUTTON_DRIVINGT_FIRESECONDARY Constant Fire. DIBUTTON_DRIVINGT_FIRE Constant RotateRightLink. DIBUTTON_DRIVINGT_ROTATE_RIGHT_LINK Constant Pause. DIBUTTON_DRIVINGT_PAUSE Constant Menu. DIBUTTON_DRIVINGT_MENU Constant GlanceLeftLink. DIBUTTON_DRIVINGT_GLANCE_LEFT_LINK Constant Target. DIBUTTON_DRIVINGT_TARGET Constant Glance. DIHATSWITCH_DRIVINGT_GLANCE Functions Constant TankDrivingGenre. DIVIRTUAL_FIGHTING_THIRDPERSON Constant Turn. DIAXIS_TPS_TURN Constant Step. DIAXIS_TPS_STEP Constant Move. DIAXIS_TPS_MOVE Constant TurnLeftLink. DIBUTTON_TPS_TURN_LEFT_LINK Constant Dodge. DIBUTTON_TPS_DODGE Constant Action. DIBUTTON_TPS_ACTION Constant Menu. DIBUTTON_TPS_MENU Constant InverseEntory. DIBUTTON_TPS_INVENTORY Constant ForwardLink. DIBUTTON_TPS_FORWARD_LINK Constant GlanceRightLink. DIBUTTON_TPS_GLANCE_RIGHT_LINK Constant GlanceUpLink. DIBUTTON_TPS_GLANCE_UP_LINK Constant Stepleft. DIBUTTON_TPS_STEPLEFT Constant Pause. DIBUTTON_TPS_PAUSE Constant GlanceLeftLink. DIBUTTON_TPS_GLANCE_LEFT_LINK Constant Run. DIBUTTON_TPS_RUN Constant Jump. DIBUTTON_TPS_JUMP Constant BackwardLink. DIBUTTON_TPS_BACKWARD_LINK Constant Use. DIBUTTON_TPS_USE Constant TurnRightLink. DIBUTTON_TPS_TURN_RIGHT_LINK Constant View. DIBUTTON_TPS_VIEW Constant Select. DIBUTTON_TPS_SELECT Constant Stepright. DIBUTTON_TPS_STEPRIGHT Constant Device. DIBUTTON_TPS_DEVICE Constant GlanceDownLink. DIBUTTON_TPS_GLANCE_DOWN_LINK Constant Glance. DIHATSWITCH_TPS_GLANCE Functions Constant TankDrivingGenre. DIVIRTUAL_STRATEGY_TURN Constant Lateral. DIAXIS_STRATEGYT_LATERAL Constant Move. DIAXIS_STRATEGYT_MOVE Constant Zoom. DIBUTTON_STRATEGYT_ZOOM Constant RightLink. DIBUTTON_STRATEGYT_RIGHT_LINK Constant Display. DIBUTTON_STRATEGYT_DISPLAY Constant Device. DIBUTTON_STRATEGYT_DEVICE Constant LeftLink. DIBUTTON_STRATEGYT_LEFT_LINK Constant Pause. DIBUTTON_STRATEGYT_PAUSE Constant Select. DIBUTTON_STRATEGYT_SELECT Constant Team. DIBUTTON_STRATEGYT_TEAM Constant BackLink. DIBUTTON_STRATEGYT_BACK_LINK Constant Apply. DIBUTTON_STRATEGYT_APPLY Constant ForwardLink. DIBUTTON_STRATEGYT_FORWARD_LINK Constant Menu. DIBUTTON_STRATEGYT_MENU Constant Map. DIBUTTON_STRATEGYT_MAP Constant Instruct. DIBUTTON_STRATEGYT_INSTRUCT Constant Turn. DIBUTTON_STRATEGYT_TURN Gets or sets the dataformat flags. The flags. Gets the defined dataformat objects. The objects. Enumeration of identifiers for Joystick updatable objects. Internal class used to initialize this assembly. Initializes this assembly. This method is called when the assembly is loaded. No documentation. DIMOUSESTATE2 No documentation. DIJOYSTATE2 No documentation. int lX No documentation. int lY No documentation. int lZ No documentation. int lRx No documentation. int lRy No documentation. int lRz No documentation. int rglSlider[2] No documentation. unsigned int rgdwPOV[4] No documentation. unsigned char rgbButtons[128] No documentation. int lVX No documentation. int lVY No documentation. int lVZ No documentation. int lVRx No documentation. int lVRy No documentation. int lVRz No documentation. int rglVSlider[2] No documentation. int lAX No documentation. int lAY No documentation. int lAZ No documentation. int lARx No documentation. int lARy No documentation. int lARz No documentation. int rglASlider[2] No documentation. int lFX No documentation. int lFY No documentation. int lFZ No documentation. int lFRx No documentation. int lFRy No documentation. int lFRz No documentation. int rglFSlider[2] No documentation. DIACTIONW DIACTIONW No documentation. UINT_PTR uAppData UINT_PTR uAppData No documentation. unsigned int dwSemantic unsigned int dwSemantic No documentation. unsigned int dwFlags unsigned int dwFlags No documentation. const void* lptszActionName void lptszActionName No documentation. GUID guidInstance GUID guidInstance No documentation. unsigned int dwObjID unsigned int dwObjID No documentation. unsigned int dwHow unsigned int dwHow Contains information about the calling application and acts as a container for an array ofDIACTIONstructures that define action-to-control mappings for a genre.

The ftTimeStamp member can contain special values that apply to new and unused devices. New devices have never been enumerated for this application and have never had an action map applied to them. Unused devices have been enumerated for the application before but have never had an action map applied. New devices always have DIAFTS_NEWDEVICELOW and DIAFTS_NEWDEVICEHIGH in the low and high DWORDs respectively of the structure. Unused devices have DIAFTS_UNUSEDDEVICELOW and DIAFTS_UNUSEDDEVICEHIGH in these positions.

Applications should not use ftTimeStamp to check for new devices. Instead, they should look for the DIEDBS_RECENTDEVICE and DIEDBS_NEWDEVICE flags in the enumeration callback. For more information, see DIEnumDevicesBySemanticsCallback.

microsoft.directx_sdk.reference.diactionformat DIACTIONFORMATW DIACTIONFORMATW
No documentation. unsigned int dwSize unsigned int dwSize No documentation. unsigned int dwActionSize unsigned int dwActionSize No documentation. unsigned int dwDataSize unsigned int dwDataSize No documentation. unsigned int dwNumActions unsigned int dwNumActions No documentation. DIACTIONW* rgoAction DIACTIONW rgoAction No documentation. GUID guidActionMap GUID guidActionMap No documentation. unsigned int dwGenre unsigned int dwGenre No documentation. unsigned int dwBufferSize unsigned int dwBufferSize No documentation. int lAxisMin int lAxisMin No documentation. int lAxisMax int lAxisMax No documentation. HINSTANCE hInstString HINSTANCE hInstString No documentation. FILETIME ftTimeStamp FILETIME ftTimeStamp No documentation. unsigned int dwCRC unsigned int dwCRC No documentation. wchar_t tszActionMap[260] wchar_t tszActionMap Contains type-specific information for effects that are marked as .

A reference to an array of structures for an effect is passed in the lpvTypeSpecificParams member of the structure. The number of elements in the array must be either one, or equal to the number of axes associated with the effect.

Different types of conditions interpret the parameters differently, but the basic idea is that force resulting from a condition is equal to A(q - q0) where A is a scaling coefficient, q is some metric, and q0 is the neutral value for that metric.

The preceding simplified formula must be adjusted if a nonzero deadband is provided. If the metric is less than lOffset - lDeadBand, the resulting force is given by the following formula:

force = lNegativeCoefficient * ( q - ( lOffset - lDeadBand))

Similarly, if the metric is greater than lOffset + lDeadBand, the resulting force is given by the following formula:

force = lPositiveCoefficient * ( q - ( lOffset + lDeadBand))

A spring condition uses axis position as the metric.

A damper condition uses axis velocity as the metric.

An inertia condition uses axis acceleration as the metric.

If the number of structures in the array is equal to the number of axes for the effect, the first structure applies to the first axis, the second applies to the second axis, and so on. For example, a two-axis spring condition with lOffset set to 0 in both structures would have the same effect as the joystick self-centering spring. When a condition is defined for each axis in this way, the effect must not be rotated.

If there is a single structure for an effect with more than one axis, the direction along which the parameters of the structure are in effect is determined by the direction parameters passed in the rglDirection field of the structure. For example, a friction condition rotated 45 degrees (in polar coordinates) would resist joystick motion in the northeast-southwest direction but would have no effect on joystick motion in the northwest-southeast direction.

ee416601 DICONDITION DICONDITION
No documentation. int lOffset int lOffset No documentation. int lPositiveCoefficient int lPositiveCoefficient No documentation. int lNegativeCoefficient int lNegativeCoefficient No documentation. unsigned int dwPositiveSaturation unsigned int dwPositiveSaturation No documentation. unsigned int dwNegativeSaturation unsigned int dwNegativeSaturation No documentation. int lDeadBand int lDeadBand Carries information required to display a device image or an overlay image with a callout. This structure is passed to theIDirectInputDevice8::GetImageInfomethod as an array within aDIDEVICEIMAGEINFOHEADERstructure. ee416608 DIDEVICEIMAGEINFOW DIDEVICEIMAGEINFOW No documentation. wchar_t tszImagePath[260] wchar_t tszImagePath No documentation. unsigned int dwFlags unsigned int dwFlags No documentation. unsigned int dwViewID unsigned int dwViewID No documentation. RECT rcOverlay RECT rcOverlay No documentation. unsigned int dwObjID unsigned int dwObjID No documentation. unsigned int dwcValidPts unsigned int dwcValidPts No documentation. RECT rcCalloutRect RECT rcCalloutRect No documentation. unsigned int dwTextAlign unsigned int dwTextAlign No documentation. POINT rgptCalloutLine[5] POINT rgptCalloutLine Used by theIDirectInputDevice8::EscapeandIDirectInputEffect::Escapemethods to pass hardware-specific data directly to the device driver.

Because each driver implements different escapes, it is the application's responsibility to ensure that it is talking to the correct driver by comparing the guidFFDriver member in the structure against the value the application is expecting.

ee416618 DIEFFESCAPE DIEFFESCAPE
No documentation. unsigned int dwSize unsigned int dwSize No documentation. unsigned int dwCommand unsigned int dwCommand No documentation. void* lpvInBuffer void lpvInBuffer No documentation. unsigned int cbInBuffer unsigned int cbInBuffer No documentation. void* lpvOutBuffer void lpvOutBuffer No documentation. unsigned int cbOutBuffer unsigned int cbOutBuffer Contains buffered device information. This structure is used with theIDirectInputDevice8::GetDeviceDataand theIDirectInputDevice8::SendDeviceDatamethods.

The system time returned in dwTimeStamp comes from the same clock used by the Microsoft Win32 GetTickCount or timeGetTime functions, but it produces potentially more precise values. For example, on Microsoft Windows 95, the GetTickCount timer is updated only every 55 milliseconds, but the dwTimeStamp value is accurate to within 1 millisecond. Therefore, if you call GetTickCount and it returns n, and you then receive an event with a timestamp of n + n1, you cannot assume that the event took place exactly n1 milliseconds after the call to GetTickCount.

microsoft.directx_sdk.reference.dideviceobjectdata DIDEVICEOBJECTDATA DIDEVICEOBJECTDATA
No documentation. unsigned int dwOfs unsigned int dwOfs No documentation. unsigned int dwData unsigned int dwData No documentation. unsigned int dwTimeStamp unsigned int dwTimeStamp No documentation. unsigned int dwSequence unsigned int dwSequence No documentation. UINT_PTR uAppData UINT_PTR uAppData No documentation. DIPROPCAL DIPROPCAL No documentation. DIPROPHEADER diph DIPROPHEADER diph No documentation. int lMin int lMin No documentation. int lCenter int lCenter No documentation. int lMax int lMax Used to access properties whose values represent a globally unique identifier () and a path.

The diph member must be initialized as follows:

Member Value
dwSize sizeof().
dwHeaderSize sizeof().
dwObj For this structure, this member must be set to 0.
dwHow Specifies how the dwObj member should be interpreted. For this structure, dwHow should be .

The property associated with the structure enables advanced applications to perform operations on a Human Interface Device (human interface device) that are not supported by DirectInput.

The application calls the method with as the rguidProp parameter. The class of the device is returned in the guidClass member of the structure, and the device interface path is returned in the wszPath member. The application can then call the CreateFile function on this path to access the device directly.

microsoft.directx_sdk.reference.dipropguidandpath DIPROPGUIDANDPATH DIPROPGUIDANDPATH
structure.
microsoft.directx_sdk.reference.dipropguidandpath DIPROPHEADER diph DIPROPHEADER diph
Class for the object.
microsoft.directx_sdk.reference.dipropguidandpath GUID guidClass GUID guidClass
Returned path for the object. This is a Unicode string.
microsoft.directx_sdk.reference.dipropguidandpath wchar_t wszPath[260] wchar_t wszPath
Serves as a header for all property structures. ee416638 DIPROPHEADER DIPROPHEADER
Size of the enclosing structure. This member must be initialized before the structure is used.
ee416638 unsigned int dwSize unsigned int dwSize
Size of the structure.
ee416638 unsigned int dwHeaderSize unsigned int dwHeaderSize
Object for which the property is to be accessed. The value set for this member depends on the value specified in the dwHow member.
ee416638 unsigned int dwObj unsigned int dwObj
Value that specifies how the dwObj member should be interpreted. This value can be one of the following:
The dwObj member must be 0.
The dwObj member is the offset into the current data format of the object whose property is being accessed.
The dwObj member is the human interface device usage page and usage values in packed form.
The dwObj member is the object type/instance identifier. This identifier is returned in the dwType member of the structure returned from a previous call to the member.
ee416638 DIPH dwHow DIPH dwHow
Used to access DWORD properties.

The diph member must be initialized as follows:

Member Value
dwSize sizeof()
dwHeaderSize sizeof()
dwObj

If the dwHow member is , this member must be 0.

If the dwHow member is , this member must be the identifier for the object whose property setting is to be set or retrieved.

If the dwHow member is , this member must be a data format offset for the object whose property setting is to be set or retrieved. For example, if the c_dfDIMouse data format is selected, it must be one of the DIMOFS_* values.

If the dwHow member is , the device must be a Human Interface Device (human interface device). The device object will be identified by the HID usage page and usage values in packed form.

dwHow Specifies how the dwObj member should be interpreted. See the preceding description of the dwObj member for details.
microsoft.directx_sdk.reference.dipropdword DIPROPDWORD DIPROPDWORD
structure.
microsoft.directx_sdk.reference.dipropdword DIPROPHEADER diph DIPROPHEADER diph
Property-specific value being set or retrieved.
microsoft.directx_sdk.reference.dipropdword unsigned int dwData unsigned int dwData
Used in setting and retrieving data values of type . This is typically a value associated with an application-specific action associated with a device object in an action map, but can also be a function reference.

The diph member must be initialized as follows:

Member Value
dwSize sizeof()
dwHeaderSize sizeof()
dwObj

If the dwHow member is , this member must be 0.

If the dwHow member is , this member must be the identifier for the object whose property setting is to be set or retrieved.

If the dwHow member is , this member must be a data format offset for the object whose property setting is to be set or retrieved. For example, if the c_dfDIMouse data format is selected, it must be one of the DIMOFS_* values.

If the dwHow member is , the device must be a Human Interface Device (human interface device). The device object will be identified by the HID usage page and usage values in packed form.

dwHow Specifies how the dwObj member should be interpreted. See the preceding description of the dwObj member for details.
ee416639 DIPROPPOINTER DIPROPPOINTER
structure.
ee416639 DIPROPHEADER diph DIPROPHEADER diph
Application-defined value of type , which represents the uAppData value (from an action map) that is associated with a device control.
ee416639 UINT_PTR uData UINT_PTR uData
Contains information about the range of an object within a device. This structure is used with the flag set in theIDirectInputDevice8::GetPropertyandIDirectInputDevice8::SetPropertymethods.

The diph member must be initialized as follows:

Member Value
dwSize sizeof()
dwHeaderSize sizeof()
dwObj

If the dwHow member is , this member must be 0.

If the dwHow member is , this member must be the identifier for the object whose property setting is to be set or retrieved.

If the dwHow member is , this member must be a data format offset for the object whose property setting is to be set or retrieved. For example, if the c_dfDIMouse data format is selected, it must be one of the DIMOFS_* values.Identifier of the object whose property is being retrieved or set.

If the dwHow member is , the device must be a Human Interface Device (human interface device). The device object will be identified by the HID usage page and usage values in packed form.

dwHow Specifies how the dwObj member should be interpreted. See the preceding description of the dwObj member for details.

The range values for devices whose ranges are unrestricted wraparound.

microsoft.directx_sdk.reference.diproprange DIPROPRANGE DIPROPRANGE
No documentation. DIPROPHEADER diph DIPROPHEADER diph No documentation. int lMin int lMin No documentation. int lMax int lMax Gets and retrieves properties as strings.

The diph member must be initialized as follows:

Member Value
dwSize sizeof()
dwHeaderSize sizeof()
dwObj

If the dwHow member is , this member must be 0.

If the dwHow member is , this member must be the identifier for the object whose property setting is to be set or retrieved.

If the dwHow member is , this member must be a data format offset for the object whose property setting is to be set or retrieved. For example, if the c_dfDIMouse data format is selected, it must be one of the DIMOFS_* values.

If the dwHow member is , the device must be a Human Interface Device (human interface device). The device object will be identified by the HID usage page and usage values in packed form.

dwHow Specifies how the dwObj member should be interpreted. See the preceding description of the dwObj member for details.

The and properties associated with the structure enable advanced applications to perform operations on a Human Interface Device (HID) that are not supported by DirectInput.

microsoft.directx_sdk.reference.dipropstring DIPROPSTRING DIPROPSTRING
structure.
microsoft.directx_sdk.reference.dipropstring DIPROPHEADER diph DIPROPHEADER diph
Unicode string that specifies or retrieves the property.
microsoft.directx_sdk.reference.dipropstring wchar_t wsz[260] wchar_t wsz
Contains type-specific information for effects that are marked as .

The structure describes a constant force effect.

A reference to a single structure for an effect is passed in the lpvTypeSpecificParams member of the structure.

microsoft.directx_sdk.reference.diconstantforce DICONSTANTFORCE DICONSTANTFORCE
No documentation. int lMagnitude int lMagnitude Contains type-specific information for effects that are marked as .

The structure describes a custom or user-defined force.

A reference to a structure for an effect is passed in the lpvTypeSpecificParams member of the structure.

ee416605 DICUSTOMFORCE DICUSTOMFORCE
No documentation. unsigned int cChannels unsigned int cChannels No documentation. unsigned int dwSamplePeriod unsigned int dwSamplePeriod No documentation. unsigned int cSamples unsigned int cSamples No documentation. int* rglForceData int rglForceData Contains type-specific information for effects that are marked as .

The structure describes a periodic effect.

A reference to a single structure for an effect is passed in the lpvTypeSpecificParams member of the structure.

A device driver cannot provide support for all values in the dwPhase member. In this case, the value is rounded off to the nearest supported value.

ee416634 DIPERIODIC DIPERIODIC
No documentation. unsigned int dwMagnitude unsigned int dwMagnitude No documentation. int lOffset int lOffset No documentation. unsigned int dwPhase unsigned int dwPhase No documentation. unsigned int dwPeriod unsigned int dwPeriod Contains type-specific information for effects that are marked as . The structure describes a ramp force effect.

A reference to a single structure for an effect is passed in the lpvTypeSpecificParams member of the structure.

The dwDuration for a ramp force effect cannot be INFINITE.

microsoft.directx_sdk.reference.dirampforce DIRAMPFORCE DIRAMPFORCE
No documentation. int lStart int lStart No documentation. int lEnd int lEnd Structure that describes a range value between a minimum and a maximum Minimum value of this range Maximum value of this range Name of this DataObjectFormat. Default is using field name. Gets or sets Guid for the axis, button, or other input source. When requesting a data format, making this member empty indicates that any type of object is permissible. The GUID. Gets or sets the field offset. This is used internally. The offset. Gets or sets the device type that describes the object. The type. Gets or sets the instance number. Setting -1 is applied to any object instance. The instance number. Gets or sets the extra flags used to describe the data format. The flags. The namespace provides a managed DirectInput API. ee416842 DirectInput DirectInput Flags for a dataformat. The dataformat doesn't report any specific information. The dataformat must report acceleration information. The dataformat must report force information. The dataformat must report position information. The dataformat must report velocity information. Properties associated to an Object. Gets or sets the dead zone of a joystick, in the range from 0 through 10,000, where 0 indicates that there is no dead zone, 5,000 indicates that the dead zone extends over 50 percent of the physical range of the axis on both sides of center, and 10,000 indicates that the entire physical range of the axis is dead. When the axis is within the dead zone, it is reported as being at the center of its range. The dead zone. Gets the input granularity. Granularity represents the smallest distance over which the object reports movement. Most axis objects have a granularity of one; that is, all values are possible. Some axes have a larger granularity. For example, the wheel axis on a mouse can have a granularity of 20; that is, all reported changes in position are multiples of 20. In other words, when the user turns the wheel slowly, the device reports a position of 0, then 20, then 40, and so on. This is a read-only property. The granularity. Gets the range of the raw data returned for axes on a human interface device. Devices can return negative values. The logical range. Gets Retrieves the range of data for axes as suggested by the manufacturer of a human interface device. Values can be negative. Normally DirectInput returns values from 0 through 0xFFFF, but the range can be made to conform to the manufacturer's suggested range by using . The physical range. Gets the range of values an object can possibly report. For some devices, this is a read-only property. The range. Gets or sets the saturation zones of a joystick, in the range from 0 through 10,000. The saturation level is the point at which the axis is considered to be at its most extreme position. For example, if the saturation level is set to 9,500, the axis reaches the extreme of its range when it has moved 95 percent of the physical distance from its center position (or from the dead zone). The saturation. This class describes a Periodic force effect. It is passed in the of the structure. Marshal this class from an unamanaged buffer. The size of the unmanaged buffer. The pointer to the unmanaged buffer. An instance of TypeSpecificParameters or null Marshals this class to its native/unmanaged counterpart. A pointer to an allocated buffer containing the unmanaged structure. Gets or sets the magnitude. Magnitude of the effect, in the range from 0 through 10,000. If an envelope is applied to this effect, the value represents the magnitude of the sustain. If no envelope is applied, the value represents the amplitude of the entire effect. The magnitude. Gets or sets the offset of the effect. The range of forces generated by the effect is lOffset minus dwMagnitude to lOffset plus dwMagnitude. The value of the lOffset member is also the baseline for any envelope that is applied to the effect. The offset. Gets or sets the phase. Position in the cycle of the periodic effect at which playback begins, in the range from 0 through 35,999. A device driver cannot provide support for all values in the dwPhase member. In this case, the value is rounded off to the nearest supported value. The phase. Gets or sets the period of the effect, in microseconds. The period. Gets the size of this specific parameter. The size. This class describes a Ramp force effect. It is passed in the of the structure. Marshal this class from an unamanaged buffer. The size of the unmanaged buffer. The pointer to the unmanaged buffer. An instance of TypeSpecificParameters or null Marshals this class to its native/unmanaged counterpart. A pointer to an allocated buffer containing the unmanaged structure. Gets or sets the magnitude at the start of the effect, in the range from - 10,000 through 10,000. The start. Gets or sets the magnitude at the end of the effect, in the range from - 10,000 through 10,000. The end. Gets the size of this specific parameter. The size.