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. microsoft.directx_sdk.reference.didevcaps unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.didevcaps DIDC dwFlags DIDC dwFlags No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwDevType unsigned int dwDevType No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwAxes unsigned int dwAxes No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwButtons unsigned int dwButtons No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwPOVs unsigned int dwPOVs No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwFFSamplePeriod unsigned int dwFFSamplePeriod No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwFFMinTimeResolution unsigned int dwFFMinTimeResolution No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwFirmwareRevision unsigned int dwFirmwareRevision No documentation. microsoft.directx_sdk.reference.didevcaps unsigned int dwHardwareRevision unsigned int dwHardwareRevision No documentation. microsoft.directx_sdk.reference.didevcaps 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. Initializes this instance from the specified buffer. Size of the buffer. The buffer pointer. Marshal this class from an unmanaged 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 unmanaged 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 unmanaged 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.

Applications use the methods of the interface to gain and release access to Microsoft DirectInput devices, manage device properties and information, set behavior, perform initialization, create and play force-feedback effects, and invoke a device's control panel.

IDirectInputDevice8 Members
Method Description
Obtains access to the input device.
Builds an action map for the device and retrieves information about it.
Creates and initializes an instance of an effect identified by the effect globally unique identifier ().
Enumerates all the currently created effects for this device.
Enumerates all the effects supported by the force-feedback system on the device.
Enumerates all the effects in a file created by the Force Editor utility or another application using the same file format.
Enumerates the input and output objects available on a device.
Sends a hardware-specific command to the force-feedback driver.
Obtains the capabilities of the DirectInputDevice object.
Retrieves buffered data from the device.
Obtains information about the device's identity.
Retrieves immediate data from the device.
Obtains information about an effect.
Retrieves the state of the device's force-feedback system.
Retrieves information about a device image for use in a configuration property sheet.
Retrieves information about a device object, such as a button or axis.
Retrieves information about the input device.
Initializes a DirectInputDevice object.
Retrieves data from polled objects on a DirectInput device.
Runs the DirectInput control panel associated with this device.
Sends data to a device that accepts output.
Sends a command to the device's force-feedback system.
Sets the data format for a device and maps application-defined actions to device objects.
Establishes the cooperative level for this instance of the device.
Sets the data format for the DirectInput device.
Specifies an event that is to be set when the device state changes.
Sets properties that define the device behavior.
Releases access to the device.
Saves information about one or more force-feedback effects to a file that can be read by using EnumEffectsInFile.

The interface is obtained by using the method. For an example, see Creating a DirectInput Device.

supersedes the IDirectInputDevice, IDirectInputDevice2, and IDirectInputDevice7 interfaces used in previous versions of Microsoft DirectX, but does not inherit from them. Methods that share names with those from older interfaces perform similar services, but may not have exactly the same functionality or behavior. You cannot obtain the earlier interfaces by using QueryInterface.

The LPDIRECTINPUTDEVICE8 type is defined as a reference to the interface:

 typedef struct     *LPDIRECTINPUTDEVICE8;	
            
ee417816 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 input 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 reacquiring 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.

No documentation. 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
Retrieves immediate data from the device.
Size of the buffer in the lpvData parameter, in bytes.
Address of a structure that receives the current state of the device. The format of the data is established by a prior call to the 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_PENDING.

Before device data can be obtained, set the cooperative level by using the method, then set the data format by using , and acquire the device by using the Interface method.

The five predefined data formats require corresponding device state structures according to the following table:

Data format State structure
c_dfDIMouse DIMOUSESTATE
c_dfDIMouse2 DIMOUSESTATE2
c_dfDIKeyboard array of 256 bytes
c_dfDIJoystick DIJOYSTATE
c_dfDIJoystick2 DIJOYSTATE2

For example, if you passed the c_dfDIMouse format to the method, you must pass a DIMOUSESTATE structure to the method.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getdevicestate HRESULT IDirectInputDevice8W::GetDeviceState([In] unsigned int arg0,[In] void* arg1) IDirectInputDevice8W::GetDeviceState
Retrieves buffered data from the device.
Size of the structure, in bytes.
Array of structures to receive the buffered data. The number of elements in this array must be equal to the value of the pdwInOut parameter. If this parameter is null, the buffered data is not stored anywhere, but all other side effects take place.
On entry, the number of elements in the array pointed to by the rgdod parameter. On exit, the number of elements actually obtained.
Flags that control the manner in which data is obtained. This value can be 0 or the following flag.
DIGDD_PEEK
Do not remove the items from the buffer. A subsequent call will read the same data. Normally, data is removed from the buffer after it is read.

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

Note
If the method returns , the data in the rgdod array has been truncated.

In the debug version of DirectInput, if a call is made to and the device has been unacquired, then random bytes will be sent to the device data buffer. To make sure you are not using random device data, always check for the DIERR_UNACQUIRED return code.

Before device data can be obtained, you must set the data format and the buffer size by using the and methods, or by using the method. You must also acquire the device by using the Interface method.

The maximum number of events that the buffer will hold is one less than the buffer size set with the method.

The following code example reads up to ten buffered data elements, removing them from the device buffer as they are read.

  rgdod[10]; 	
            DWORD dwItems = 10; 	
            hres = idirectinputdevice9_GetDeviceData(  sizeof(),  rgdod,  &dwItems,  0); 	
            if (SUCCEEDED(hres)) {  // dwItems = Number of elements read (could be zero). if (hres == ) {  // Buffer had overflowed.  } 	
            } 	
            

Your application can flush the buffer and retrieve the number of flushed items by specifying null for the rgdod parameter and a reference to a variable containing INFINITE for the pdwInOut parameter. The following code example illustrates how this can be done.

 dwItems = INFINITE; 	
            hres = idirectinputdevice9_GetDeviceData(  pdid,  sizeof(),  null,  &dwItems,  0); 	
            if (SUCCEEDED(hres)) {  // Buffer successfully flushed.  // dwItems = Number of elements flushed.  if (hres == ) {  // Buffer had overflowed.  } 	
            }	
            

Your application can query for the number of elements in the device buffer by setting the rgdod parameter to null, setting pdwInOut to INFINITE and setting dwFlags to DIGDD_PEEK. The following code example illustrates how this can be done.

 dwItems = INFINITE; 	
            hres = idirectinputdevice9_GetDeviceData(  pdid,  sizeof(),  null,  &dwItems,  DIGDD_PEEK); 	
            if (SUCCEEDED(hres)) {  // dwItems = Number of elements in buffer.  if (hres == ) {  // Buffer overflow occurred; not all data  //   was successfully captured.  } 	
            } 	
            

To query about whether a buffer overflow has occurred, set the rgdod parameter to null and the pdwInOut parameter to 0. The following code example illustrates how this can be done.

 dwItems = 0; 	
            hres = idirectinputdevice9_GetDeviceData(  pdid,  sizeof(),  null,  &dwItems,  0); 	
            if (hres == ) {  // Buffer overflow occurred. 	
            } 	
            
microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getdevicedata 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.

No documentation. 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).

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getobjectinfo 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.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.enumeffects 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.
microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate 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.
microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.enumcreatedeffectobjects 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.

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.enumeffectsinfile 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 .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.writeeffecttofile 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 .

microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.setactionmap 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. 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 unmanaged 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. microsoft.directx_sdk.reference.didataformat unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.didataformat unsigned int dwObjSize unsigned int dwObjSize Flags describing other attributes of the data format. microsoft.directx_sdk.reference.didataformat DIDF dwFlags DIDF dwFlags No documentation. microsoft.directx_sdk.reference.didataformat unsigned int dwDataSize unsigned int dwDataSize No documentation. microsoft.directx_sdk.reference.didataformat unsigned int dwNumObjs unsigned int dwNumObjs No documentation. microsoft.directx_sdk.reference.didataformat void* rgodf void rgodf Attributes that describes a device data format specification. Gets or sets the data format 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.

microsoft.directx_sdk.reference.dideviceimageinfoheader DIDEVICEIMAGEINFOHEADERW DIDEVICEIMAGEINFOHEADERW
Initializes a new instance of the class. No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwSizeImageInfo unsigned int dwSizeImageInfo No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwcViews unsigned int dwcViews No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwcButtons unsigned int dwcButtons No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwcAxes unsigned int dwcAxes No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwcPOVs unsigned int dwcPOVs No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwBufferSize unsigned int dwBufferSize No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader unsigned int dwBufferUsed unsigned int dwBufferUsed No documentation. microsoft.directx_sdk.reference.dideviceimageinfoheader 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. microsoft.directx_sdk.reference.dideviceinstance unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.dideviceinstance GUID guidInstance GUID guidInstance No documentation. microsoft.directx_sdk.reference.dideviceinstance GUID guidProduct GUID guidProduct No documentation. microsoft.directx_sdk.reference.dideviceinstance unsigned int dwDevType unsigned int dwDevType No documentation. microsoft.directx_sdk.reference.dideviceinstance wchar_t tszInstanceName[260] wchar_t tszInstanceName No documentation. microsoft.directx_sdk.reference.dideviceinstance wchar_t tszProductName[260] wchar_t tszProductName No documentation. microsoft.directx_sdk.reference.dideviceinstance GUID guidFFDriver GUID guidFFDriver No documentation. microsoft.directx_sdk.reference.dideviceinstance HID_USAGE_PAGE wUsagePage HID_USAGE_PAGE wUsagePage No documentation. microsoft.directx_sdk.reference.dideviceinstance 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. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance GUID guidType GUID guidType No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned int dwOfs unsigned int dwOfs No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance DIDFT dwType DIDFT dwType No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance DIDOI dwFlags DIDOI dwFlags No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance wchar_t tszName[260] wchar_t tszName No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned int dwFFMaxForce unsigned int dwFFMaxForce No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned int dwFFForceResolution unsigned int dwFFForceResolution No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned short wCollectionNumber unsigned short wCollectionNumber No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned short wDesignatorIndex unsigned short wDesignatorIndex No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned short wUsagePage unsigned short wUsagePage No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned short wUsage unsigned short wUsage No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned int dwDimension unsigned int dwDimension No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned short wExponent unsigned short wExponent No documentation. microsoft.directx_sdk.reference.dideviceobjectinstance unsigned short wReportId unsigned short wReportId Properties for a . Initializes a new instance of the class. The device. The code. The property type. 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 property 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 or sets the range of values an object can possibly report. The range. For some devices, this is a read-only property. 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.

Applications use the methods of the interface to enumerate, create, and retrieve the status of Microsoft DirectInput devices, initialize the DirectInput object, and invoke an instance of the Microsoft Windows Control Panel.

IDirectInput8 Members
Method Description
IDirectInput8::ConfigureDevices Displays property pages for connected input devices and enables the user to map actions to device controls.
Creates and initializes an instance of a device based on a given globally unique identifier (), and obtains an Interface interface.
Enumerates available devices.
Enumerates devices that most closely match the application-specified action map.
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.
Retrieves the status of a specified device.
Initializes a DirectInput object. Applications normally do not need to call this method. The DirectInput8Create function automatically initializes the DirectInput object after creating it.
Runs Control Panel to enable the user to install a new input device or modify configurations.

supersedes the IDirectInput, IDirectInput2, and IDirectInput7 interfaces used in earlier versions of Microsoft DirectX.

is an interface to a new class of object, represented by the class identifier CLSID_DirectInput8, and cannot be obtained by calling QueryInterface on an interface to objects of class CLSID_DirectInput. Instead, obtain the interface by using the DirectInput8Create function.

The LPDIRECTINPUT8 type is defined as a reference to the interface:

 typedef struct     *LPDIRECTINPUT8;	
            
ee417799 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: , .

microsoft.directx_sdk.idirectinput8.idirectinput8.runcontrolpanel 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.
microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevicesbysemantics 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. microsoft.directx_sdk.reference.difileeffect DIFILEEFFECT DIFILEEFFECT Initializes a new instance of the class. No documentation. microsoft.directx_sdk.reference.difileeffect unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.difileeffect GUID GuidEffect GUID GuidEffect No documentation. microsoft.directx_sdk.reference.difileeffect const DIEFFECT* lpDiEffect DIEFFECT lpDiEffect No documentation. microsoft.directx_sdk.reference.difileeffect char szFriendlyName[260] char szFriendlyName Gets or sets the parameters. The parameters. Used by theIDirectInputDevice8::EnumEffectsandIDirectInputDevice8::GetEffectInfomethods to return information about a particular effect supported by a device.

Use the DIDFT_GETTYPE macro to extract the effect type from the dwEffType flags.

microsoft.directx_sdk.reference.dieffectinfo DIEFFECTINFOW DIEFFECTINFOW
Initializes a new instance of the class. No documentation. microsoft.directx_sdk.reference.dieffectinfo unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.dieffectinfo GUID guid GUID guid No documentation. microsoft.directx_sdk.reference.dieffectinfo DIEFT dwEffType DIEFT dwEffType No documentation. microsoft.directx_sdk.reference.dieffectinfo DIEP dwStaticParams DIEP dwStaticParams No documentation. microsoft.directx_sdk.reference.dieffectinfo DIEP dwDynamicParams DIEP dwDynamicParams No documentation. microsoft.directx_sdk.reference.dieffectinfo 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.
microsoft.directx_sdk.reference.dieffect 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. microsoft.directx_sdk.reference.dieffect unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.dieffect DIEFF dwFlags DIEFF dwFlags No documentation. microsoft.directx_sdk.reference.dieffect unsigned int dwDuration unsigned int dwDuration No documentation. microsoft.directx_sdk.reference.dieffect unsigned int dwSamplePeriod unsigned int dwSamplePeriod No documentation. microsoft.directx_sdk.reference.dieffect unsigned int dwGain unsigned int dwGain No documentation. microsoft.directx_sdk.reference.dieffect unsigned int dwTriggerButton unsigned int dwTriggerButton No documentation. microsoft.directx_sdk.reference.dieffect unsigned int dwTriggerRepeatInterval unsigned int dwTriggerRepeatInterval No documentation. microsoft.directx_sdk.reference.dieffect unsigned int cAxes unsigned int cAxes No documentation. microsoft.directx_sdk.reference.dieffect unsigned int* rgdwAxes unsigned int rgdwAxes No documentation. microsoft.directx_sdk.reference.dieffect int* rglDirection int rglDirection No documentation. microsoft.directx_sdk.reference.dieffect DIENVELOPE* lpEnvelope DIENVELOPE lpEnvelope No documentation. microsoft.directx_sdk.reference.dieffect unsigned int cbTypeSpecificParams unsigned int cbTypeSpecificParams No documentation. microsoft.directx_sdk.reference.dieffect void* lpvTypeSpecificParams void lpvTypeSpecificParams No documentation. microsoft.directx_sdk.reference.dieffect 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 effects. The effects. Enumerator callback for DirectInput EnumDevices. Initializes a new instance of the class. Natives the pointer. Gets or sets the device instances. The device instances. Enumerator callback for DirectInput EnumEffects. Initializes a new instance of the class. Natives the pointer. Gets or sets the effect infos. The effect infos. Enumerator callback for DirectInput EnumEffectsInFile. Initializes a new instance of the class. Natives the pointer. Gets or sets the effects in file. The effects in file. Enumerator callback for DirectInput EnumObjects. Initializes a new instance of the class. Natives the pointer. Gets or sets the device object instances. The device object instances. 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. microsoft.directx_sdk.reference.dienvelope unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.dienvelope unsigned int dwAttackLevel unsigned int dwAttackLevel No documentation. microsoft.directx_sdk.reference.dienvelope unsigned int dwAttackTime unsigned int dwAttackTime No documentation. microsoft.directx_sdk.reference.dienvelope unsigned int dwFadeLevel unsigned int dwFadeLevel No documentation. microsoft.directx_sdk.reference.dienvelope unsigned int dwFadeTime unsigned int dwFadeTime Flags that specify the cooperative level to associate with the input device. This flag is used by method. ee416848 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. ee416848 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. ee416848 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. ee416848 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. ee416848 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. ee416848 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. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DI8DEVCLASS DI8DEVCLASS All devices. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DI8DEVCLASS_ALL DI8DEVCLASS_ALL All devices that do not fall into another class. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DI8DEVCLASS_DEVICE DI8DEVCLASS_DEVICE All devices of type and . microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DI8DEVCLASS_POINTER DI8DEVCLASS_POINTER All keyboards. Equivalent to . microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DI8DEVCLASS_KEYBOARD DI8DEVCLASS_KEYBOARD All game controllers. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DI8DEVCLASS_GAMECTRL DI8DEVCLASS_GAMECTRL Flags that refine the scope of the enumeration used by and methods. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DIEDFL DIEDFL All installed devices are enumerated. This is the default behavior. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DIEDFL_ALLDEVICES DIEDFL_ALLDEVICES Only attached and installed devices. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DIEDFL_ATTACHEDONLY DIEDFL_ATTACHEDONLY Only devices that support force feedback. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DIEDFL_FORCEFEEDBACK DIEDFL_FORCEFEEDBACK Include devices that are aliases for other devices. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DIEDFL_INCLUDEALIASES DIEDFL_INCLUDEALIASES Include hidden devices. For more information about hidden devices, see . microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices DIEDFL_INCLUDEPHANTOMS DIEDFL_INCLUDEPHANTOMS Include phantom (placeholder) devices. microsoft.directx_sdk.idirectinput8.idirectinput8.enumdevices 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. bb152032 DIDFT_FLAGS DIDFT_FLAGS All objects. bb152032 DIDFT_ALL DIDFT_ALL A relative axis. bb152032 DIDFT_RELAXIS DIDFT_RELAXIS An absolute axis. bb152032 DIDFT_ABSAXIS DIDFT_ABSAXIS An axis, either absolute or relative. bb152032 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. bb152032 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. bb152032 DIDFT_TGLBUTTON DIDFT_TGLBUTTON A push button or a toggle button. bb152032 DIDFT_BUTTON DIDFT_BUTTON A point-of-view controller. bb152032 DIDFT_POV DIDFT_POV A HID link collection. HID link collections do not generate data of their own. bb152032 DIDFT_COLLECTION DIDFT_COLLECTION An object that does not generate any data. bb152032 DIDFT_NODATA DIDFT_NODATA Any instance mask. bb152032 DIDFT_ANYINSTANCE DIDFT_ANYINSTANCE An object that contains a force-feedback actuator. In other words, forces can be applied to this object. bb152032 DIDFT_FFACTUATOR DIDFT_FFACTUATOR An object that can be used to trigger force-feedback effects. bb152032 DIDFT_FFEFFECTTRIGGER DIDFT_FFEFFECTTRIGGER An object that supports output. Not supported. bb152032 DIDFT_OUTPUT DIDFT_OUTPUT An object of a type defined by the manufacturer. bb152032 DIDFT_VENDORDEFINED DIDFT_VENDORDEFINED Controls identified by a Human Interface Device alias. This flag applies only to HID-compliant USB devices. bb152032 DIDFT_ALIAS DIDFT_ALIAS Specify that this type is optional. bb152032 DIDFT_OPTIONAL DIDFT_OPTIONAL

The DIJOYTYPEINFO structure contains information about a joystick type.

A "joystick type" describes how DirectInput should communicate with the device and how it should report device data. For example, "A Frobozz Industries SuperStick 5X is a three-axis, five-button joystick with the third axis reported as the first bit on the second port."

DirectInput comes with the following predefined joystick types, all with axes in their default locations:

  • Two-axis, two-button joystick.

  • Two-button game pad.

  • Two-button flight yoke.

  • Two-button flight yoke with throttle.

  • Three-axis, two-button joystick.

  • Three-axis, four-button joystick.

  • Four-button game pad.

  • Four-button flight yoke.

  • Four-button flight yoke with throttle.

If the joystick type has the JOY_HWS_ISGAMEPORTDRIVER flag set in the dwFlags member of the JOYHWSETTINGS structure, then the wszCallout member of the DIJOYTYPEINFO structure contains the name of a driver that can be used as a global driver. The joystick type should be shown on the list of global drivers and not shown on the list of joystick types that can be assigned.

New in DirectX 8.0

The dwFlags2 member was added to the DIJOYCONFIG structure. This member carries information that controls how DirectInput enumerates the device to applications. The dwFlags2 member carries device type and subtype override flags in the low word, and device enumeration "hiding" flags in the high word. The device type and subtype override flags control how DirectInput portrays your device to applications that use DirectInput. These are the same flags that applications receive from DirectInput during device enumeration. For example, if your device is described in its firmware as a telephony device, it would not normally be enumerated to games because telephony devices aren't considered relevant to games. However, if you used and DI8DEVTYPEDEVICECONTROL_COMMSSELECTION to describe this device, DirectInput overrides the data it retrieves from the firmware and enumerates the device to games.

The high word of dwFlags2 can be set to contain flags that scope how DirectInput enumerates the device to DirectInput applications. For example, some devices declare multiple top-level HID collections. Such a device might declare that it can act as a keyboard, a mouse, and a joystick all in one. Generally, one or more of these top-level collections is merely a phantom device, which shouldn't be enumerated to games. For this device, the high word of dwFlags2 could be set to a combination of the JOYTYPE_HIDEACTIVE, JOYTYPE_MOUSEHIDE, and JOYTYPE_KEYBHIDE flags. The JOYTYPE_HIDEACTIVE flag indicates that DirectInput should not enumerate the device by all its types. The JOYTYPE_MOUSEHIDE and JOYTYPE_KEYBHIDE flags also present in the high word indicate to DirectInput that enumeration of the phantom mouse and keyboard on the device should be suppressed. Note that applications can include the (described in the Microsoft Windows SDK documentation) flag to enumerate devices, even if they are hidden.

ff538513 DI8DEVTYPE DI8DEVTYPE

Specifies the size of the structure in bytes. This member must be initialized before the structure is used.

ff538513 DI8DEVTYPE_DEVICE DI8DEVTYPE_DEVICE

Joystick hardware settings.

ff538513 DI8DEVTYPE_MOUSE DI8DEVTYPE_MOUSE

Specifies a CLSID for the joystick type configuration object. Pass this CLSID to CoCreateInstance to create a configuration object. This field is zero if the type does not have custom configuration.

ff538513 DI8DEVTYPE_KEYBOARD DI8DEVTYPE_KEYBOARD

The display name for the joystick type. The display name is the name that should be used to display the name of the joystick type to the end user.

ff538513 DI8DEVTYPE_JOYSTICK DI8DEVTYPE_JOYSTICK

The device responsible for handling polling for devices of this type. This is a null string if the global polling callout is to be used.

ff538513 DI8DEVTYPE_GAMEPAD DI8DEVTYPE_GAMEPAD

The hardware ID for the joystick type. The hardware ID is used by Plug and Play on Windows 2000 and Windows 98 (DirectX 7.0 only) to find the drivers for the joystick.

ff538513 DI8DEVTYPE_DRIVING DI8DEVTYPE_DRIVING

Joystick type flags. This member can be set to a combination of the following flags.

JOYTYPE_ZEROGAMEENUMOEMDATA

Zero GameEnum's OEM data field.

JOYTYPE_NOAUTODETECTGAMEPORT

Device does not support Autodetect gameport.

JOYTYPE_NOHIDDIRECT

Do not use HID directly for this device. (Windows 98 only.)

JOYTYPE_DEFAULTPROPSHEET

CPL overrides custom property sheet.

ff538513 DI8DEVTYPE_FLIGHT DI8DEVTYPE_FLIGHT
First-person action game device. The following subtypes are defined. ff538513 DI8DEVTYPE_1STPERSON DI8DEVTYPE_1STPERSON No documentation. ff538513 DI8DEVTYPE_DEVICECTRL DI8DEVTYPE_DEVICECTRL No documentation. ff538513 DI8DEVTYPE_SCREENPOINTER DI8DEVTYPE_SCREENPOINTER No documentation. ff538513 DI8DEVTYPE_REMOTE DI8DEVTYPE_REMOTE No documentation. ff538513 DI8DEVTYPE_SUPPLEMENTAL DI8DEVTYPE_SUPPLEMENTAL

To load effects, call the method. By default, the enumeration is limited to the standard Microsoft DirectInput effects, but you can enumerate other effects by setting the flag. By setting the flag, you can also instruct DirectInput to modify the parameters of effects, if necessary, so that they work on the device. (For example, an effect authored for two axes can be made to work on a single-axis steering wheel.)

In the following code example, the first three standard effects are loaded from a file and created as DirectInputEffect objects.

 // g_lpdid is a valid  reference to a 	
            // force feedback device. 	
            // The array of effect references is declared globally. 	
            LPDIRECTINPUTEFFECT pEff[3];	
            .	
            .	
            .	
            g_lpdid->EnumEffectsInFile("FEdit1.ffe",  EnumEffectsInFileProc, null,  );	
            .	
            .	
            .	
            

The following callback function is called once for each effect in the file or until it returns DIENUM_STOP. Note that because the flag was passed, the effect parameters may have been modified in lpdife->lpDiEffect. The callback creates the effect with these modified parameters.

  CALLBACK EnumEffectsInFileProc(LPCDIFILEEFFECT lpdife,  LPVOID pvRef) {      hr; static int  i; hr = g_lpdid->CreateEffect(lpdife->GuidEffect,  lpdife->lpDiEffect, &pEff[i],  null); if (FAILED(hr)) { // Error handling } if (++i > 2) return DIENUM_STOP; else return DIENUM_CONTINUE;	
            }	
            
ee418645 DIFEF DIFEF
No documentation. ee418645 DIFEF_DEFAULT DIFEF_DEFAULT No documentation. ee418645 DIFEF_INCLUDENONSTANDARD DIFEF_INCLUDENONSTANDARD No documentation. ee418645 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.
microsoft.directx_sdk.reference.dieffect DIEFF DIEFF
No documentation. microsoft.directx_sdk.reference.dieffect DIEFF_OBJECTIDS DIEFF_OBJECTIDS No documentation. microsoft.directx_sdk.reference.dieffect DIEFF_OBJECTOFFSETS DIEFF_OBJECTOFFSETS No documentation. microsoft.directx_sdk.reference.dieffect DIEFF_CARTESIAN DIEFF_CARTESIAN No documentation. microsoft.directx_sdk.reference.dieffect DIEFF_POLAR DIEFF_POLAR No documentation. microsoft.directx_sdk.reference.dieffect DIEFF_SPHERICAL DIEFF_SPHERICAL None. None None

You can modify the basic magnitude of some effects by applying an envelope and an offset. For an overview, see Basic Concepts of Force Feedback.

To apply an envelope when creating or modifying an effect, initialize a structure and put a reference to it in the lpEnvelope member of the structure.

The device driver determines which effects support envelopes. Typically, you can apply an envelope to a constant force, a ramp force, or a periodic effect, but not to a condition. To determine whether a particular effect supports an envelope, call the method and check for the flag in the dwStaticParams member of the DIEffectInfo structure.

To apply an offset, set the lOffset member of the or structure pointed to by the lpvTypeSpecificParams member of the structure. For periodic effects, the absolute value of the offset plus the magnitude of the effect must not exceed DI_FFNOMINALMAX.

You cannot apply an offset to a constant force or ramp force. In these cases, you can achieve the same effect by altering the magnitude.

ee417546 DIEP DIEP
No documentation. ee417546 DIEP_DURATION DIEP_DURATION No documentation. ee417546 DIEP_SAMPLEPERIOD DIEP_SAMPLEPERIOD No documentation. ee417546 DIEP_GAIN DIEP_GAIN No documentation. ee417546 DIEP_TRIGGERBUTTON DIEP_TRIGGERBUTTON No documentation. ee417546 DIEP_TRIGGERREPEATINTERVAL DIEP_TRIGGERREPEATINTERVAL No documentation. ee417546 DIEP_AXES DIEP_AXES No documentation. ee417546 DIEP_DIRECTION DIEP_DIRECTION No documentation. ee417546 DIEP_ENVELOPE DIEP_ENVELOPE No documentation. ee417546 DIEP_TYPESPECIFICPARAMS DIEP_TYPESPECIFICPARAMS No documentation. ee417546 DIEP_STARTDELAY DIEP_STARTDELAY No documentation. ee417546 DIEP_ALLPARAMS_DX5 DIEP_ALLPARAMS_DX5 No documentation. ee417546 DIEP_ALLPARAMS DIEP_ALLPARAMS No documentation. ee417546 DIEP_START DIEP_START No documentation. ee417546 DIEP_NORESTART DIEP_NORESTART No documentation. ee417546 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 Retrieves the status of an effect. microsoft.directx_sdk.idirectinputeffect.idirectinputeffect.geteffectstatus DIEGES DIEGES
Status flags for the effect. The value can be 0 or one or more of the following constants:
The effect is playing.
The effect is emulated.
microsoft.directx_sdk.idirectinputeffect.idirectinputeffect.geteffectstatus DIEGES_PLAYING DIEGES_PLAYING
No documentation. microsoft.directx_sdk.idirectinputeffect.idirectinputeffect.geteffectstatus DIEGES_EMULATED DIEGES_EMULATED None. None None No documentation. ff542434 DIEFT DIEFT No documentation. ff542434 DIEFT_ALL DIEFT_ALL No documentation. ff542434 DIEFT_CONSTANTFORCE DIEFT_CONSTANTFORCE No documentation. ff542434 DIEFT_RAMPFORCE DIEFT_RAMPFORCE No documentation. ff542434 DIEFT_PERIODIC DIEFT_PERIODIC No documentation. ff542434 DIEFT_CONDITION DIEFT_CONDITION No documentation. ff542434 DIEFT_CUSTOMFORCE DIEFT_CUSTOMFORCE No documentation. ff542434 DIEFT_HARDWARE DIEFT_HARDWARE No documentation. ff542434 DIEFT_FFATTACK DIEFT_FFATTACK No documentation. ff542434 DIEFT_FFFADE DIEFT_FFFADE No documentation. ff542434 DIEFT_SATURATION DIEFT_SATURATION No documentation. ff542434 DIEFT_POSNEGCOEFFICIENTS DIEFT_POSNEGCOEFFICIENTS No documentation. ff542434 DIEFT_POSNEGSATURATION DIEFT_POSNEGSATURATION No documentation. ff542434 DIEFT_DEADBAND DIEFT_DEADBAND No documentation. ff542434 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.sendforcefeedbackcommand 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate DIGFFS DIGFFS The device has no downloaded effects. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate DIGFFS_EMPTY DIGFFS_EMPTY No effects are playing, and the device is not paused. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate DIGFFS_STOPPED DIGFFS_STOPPED Playback of all active effects has been paused. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate DIGFFS_PAUSED DIGFFS_PAUSED The device's force-feedback actuators are enabled. If the device cannot report the actuator state, neither nor is returned. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate DIGFFS_ACTUATORSON DIGFFS_ACTUATORSON The device's force-feedback actuators are disabled. If the device cannot report the actuator state, neither nor is returned. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate DIGFFS_POWERON DIGFFS_POWERON The force-feedback system is not currently available. If the device cannot report the power state, neither nor is returned. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate 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. microsoft.directx_sdk.idirectinputdevice8.idirectinputdevice8.getforcefeedbackstate DIGFFS_DEVICELOST DIGFFS_DEVICELOST 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. microsoft.directx_sdk.reference.dideviceimageinfo DIDIFT DIDIFT No documentation. microsoft.directx_sdk.reference.dideviceimageinfo DIDIFT_CONFIGURATION DIDIFT_CONFIGURATION No documentation. microsoft.directx_sdk.reference.dideviceimageinfo DIDIFT_OVERLAY DIDIFT_OVERLAY

Joystick device constants represent offsets within a joystick device's data packet, the DIJOYSTATE structure. The data at a given offset is associated with a device object; that is, a button or axis. Typically, these values are used in the dwOfs member of the , DIOBJECTDATAFORMAT or structures.

The following macros return a constant indicating the offset of the data for a particular button or axis relative to the beginning of the DIJOYSTATE structure.

ee418634 DIJOFS DIJOFS
No documentation. ee418634 DIJOFS_X DIJOFS_X No documentation. ee418634 DIJOFS_Y DIJOFS_Y No documentation. ee418634 DIJOFS_Z DIJOFS_Z No documentation. ee418634 DIJOFS_RX DIJOFS_RX No documentation. ee418634 DIJOFS_RY DIJOFS_RY No documentation. ee418634 DIJOFS_RZ DIJOFS_RZ No documentation. ee418634 DIJOFS_BUTTON0 DIJOFS_BUTTON0 No documentation. ee418634 DIJOFS_BUTTON1 DIJOFS_BUTTON1 No documentation. ee418634 DIJOFS_BUTTON2 DIJOFS_BUTTON2 No documentation. ee418634 DIJOFS_BUTTON3 DIJOFS_BUTTON3 No documentation. ee418634 DIJOFS_BUTTON4 DIJOFS_BUTTON4 No documentation. ee418634 DIJOFS_BUTTON5 DIJOFS_BUTTON5 No documentation. ee418634 DIJOFS_BUTTON6 DIJOFS_BUTTON6 No documentation. ee418634 DIJOFS_BUTTON7 DIJOFS_BUTTON7 No documentation. ee418634 DIJOFS_BUTTON8 DIJOFS_BUTTON8 No documentation. ee418634 DIJOFS_BUTTON9 DIJOFS_BUTTON9 No documentation. ee418634 DIJOFS_BUTTON10 DIJOFS_BUTTON10 No documentation. ee418634 DIJOFS_BUTTON11 DIJOFS_BUTTON11 No documentation. ee418634 DIJOFS_BUTTON12 DIJOFS_BUTTON12 No documentation. ee418634 DIJOFS_BUTTON13 DIJOFS_BUTTON13 No documentation. ee418634 DIJOFS_BUTTON14 DIJOFS_BUTTON14 No documentation. ee418634 DIJOFS_BUTTON15 DIJOFS_BUTTON15 No documentation. ee418634 DIJOFS_BUTTON16 DIJOFS_BUTTON16 No documentation. ee418634 DIJOFS_BUTTON17 DIJOFS_BUTTON17 No documentation. ee418634 DIJOFS_BUTTON18 DIJOFS_BUTTON18 No documentation. ee418634 DIJOFS_BUTTON19 DIJOFS_BUTTON19 No documentation. ee418634 DIJOFS_BUTTON20 DIJOFS_BUTTON20 No documentation. ee418634 DIJOFS_BUTTON21 DIJOFS_BUTTON21 No documentation. ee418634 DIJOFS_BUTTON22 DIJOFS_BUTTON22 No documentation. ee418634 DIJOFS_BUTTON23 DIJOFS_BUTTON23 No documentation. ee418634 DIJOFS_BUTTON24 DIJOFS_BUTTON24 No documentation. ee418634 DIJOFS_BUTTON25 DIJOFS_BUTTON25 No documentation. ee418634 DIJOFS_BUTTON26 DIJOFS_BUTTON26 No documentation. ee418634 DIJOFS_BUTTON27 DIJOFS_BUTTON27 No documentation. ee418634 DIJOFS_BUTTON28 DIJOFS_BUTTON28 No documentation. ee418634 DIJOFS_BUTTON29 DIJOFS_BUTTON29 No documentation. ee418634 DIJOFS_BUTTON30 DIJOFS_BUTTON30 No documentation. ee418634 DIJOFS_BUTTON31 DIJOFS_BUTTON31 No documentation. ee418634 DIJOFS_SLIDER0 DIJOFS_SLIDER0 No documentation. ee418634 DIJOFS_SLIDER1 DIJOFS_SLIDER1 No documentation. ee418634 DIJOFS_POINT_OF_VIEW0 DIJOFS_POINT_OF_VIEW0 No documentation. ee418634 DIJOFS_POINT_OF_VIEW1 DIJOFS_POINT_OF_VIEW1 No documentation. ee418634 DIJOFS_POINT_OF_VIEW2 DIJOFS_POINT_OF_VIEW2 No documentation. ee418634 DIJOFS_POINT_OF_VIEW3 DIJOFS_POINT_OF_VIEW3 Keyboard device constants, defined in Dinput.h, represent offsets within a keyboard device's data packet, a 256-byte array.

The following alternate names are available:

Alternate name Regular name Note
DIK_BACKSPACE BACKSPACE
DIK_CAPSLOCK CAPS LOCK
DIK_CIRCUMFLEX On Japanese keyboard
DIK_DOWNARROW On arrow keypad
DIK_LALT Left ALT
DIK_LEFTARROW On arrow keypad
DIK_NUMPADMINUS DIK__SUBTRACT MINUS SIGN (-) on numeric keypad
DIK_NUMPADPERIOD PERIOD (decimal point) on numeric keypad
DIK_NUMPADPLUS PLUS SIGN (+) on numeric keypad
DIK_NUMPADSLASH DIK__DIVIDE Forward slash (/) on numeric keypad
DIK_NUMPADSTAR Asterisk (*) on numeric keypad
DIK_PGDN On arrow keypad
DIK_PGUP On arrow keypad
DIK_RALT Right ALT
DIK_RIGHTARROW On arrow keypad
DIK_UPARROW On arrow keypad

For information about Japanese keyboards, see DirectInput and Japanese Keyboards.

The data at a given offset is associated with a keyboard key. Typically, these values are used in the dwOfs member of the , DIOBJECTDATAFORMAT or structures, or as indices when accessing data within the array using array notation.

ee418641 DIK DIK
No documentation. ee418641 DIK_ESCAPE DIK_ESCAPE No documentation. ee418641 DIK_1 DIK_1 No documentation. ee418641 DIK_2 DIK_2 No documentation. ee418641 DIK_3 DIK_3 No documentation. ee418641 DIK_4 DIK_4 No documentation. ee418641 DIK_5 DIK_5 No documentation. ee418641 DIK_6 DIK_6 No documentation. ee418641 DIK_7 DIK_7 No documentation. ee418641 DIK_8 DIK_8 No documentation. ee418641 DIK_9 DIK_9 No documentation. ee418641 DIK_0 DIK_0 No documentation. ee418641 DIK_MINUS DIK_MINUS No documentation. ee418641 DIK_EQUALS DIK_EQUALS No documentation. ee418641 DIK_BACK DIK_BACK No documentation. ee418641 DIK_TAB DIK_TAB No documentation. ee418641 DIK_Q DIK_Q No documentation. ee418641 DIK_W DIK_W No documentation. ee418641 DIK_E DIK_E No documentation. ee418641 DIK_R DIK_R No documentation. ee418641 DIK_T DIK_T No documentation. ee418641 DIK_Y DIK_Y No documentation. ee418641 DIK_U DIK_U No documentation. ee418641 DIK_I DIK_I No documentation. ee418641 DIK_O DIK_O No documentation. ee418641 DIK_P DIK_P No documentation. ee418641 DIK_LBRACKET DIK_LBRACKET No documentation. ee418641 DIK_RBRACKET DIK_RBRACKET No documentation. ee418641 DIK_RETURN DIK_RETURN No documentation. ee418641 DIK_LCONTROL DIK_LCONTROL No documentation. ee418641 DIK_A DIK_A No documentation. ee418641 DIK_S DIK_S No documentation. ee418641 DIK_D DIK_D No documentation. ee418641 DIK_F DIK_F No documentation. ee418641 DIK_G DIK_G No documentation. ee418641 DIK_H DIK_H No documentation. ee418641 DIK_J DIK_J No documentation. ee418641 DIK_K DIK_K No documentation. ee418641 DIK_L DIK_L No documentation. ee418641 DIK_SEMICOLON DIK_SEMICOLON No documentation. ee418641 DIK_APOSTROPHE DIK_APOSTROPHE No documentation. ee418641 DIK_GRAVE DIK_GRAVE No documentation. ee418641 DIK_LSHIFT DIK_LSHIFT No documentation. ee418641 DIK_BACKSLASH DIK_BACKSLASH No documentation. ee418641 DIK_Z DIK_Z No documentation. ee418641 DIK_X DIK_X No documentation. ee418641 DIK_C DIK_C No documentation. ee418641 DIK_V DIK_V No documentation. ee418641 DIK_B DIK_B No documentation. ee418641 DIK_N DIK_N No documentation. ee418641 DIK_M DIK_M No documentation. ee418641 DIK_COMMA DIK_COMMA No documentation. ee418641 DIK_PERIOD DIK_PERIOD No documentation. ee418641 DIK_SLASH DIK_SLASH No documentation. ee418641 DIK_RSHIFT DIK_RSHIFT No documentation. ee418641 DIK_MULTIPLY DIK_MULTIPLY No documentation. ee418641 DIK_LMENU DIK_LMENU No documentation. ee418641 DIK_SPACE DIK_SPACE No documentation. ee418641 DIK_CAPITAL DIK_CAPITAL No documentation. ee418641 DIK_F1 DIK_F1 No documentation. ee418641 DIK_F2 DIK_F2 No documentation. ee418641 DIK_F3 DIK_F3 No documentation. ee418641 DIK_F4 DIK_F4 No documentation. ee418641 DIK_F5 DIK_F5 No documentation. ee418641 DIK_F6 DIK_F6 No documentation. ee418641 DIK_F7 DIK_F7 No documentation. ee418641 DIK_F8 DIK_F8 No documentation. ee418641 DIK_F9 DIK_F9 No documentation. ee418641 DIK_F10 DIK_F10 No documentation. ee418641 DIK_NUMLOCK DIK_NUMLOCK No documentation. ee418641 DIK_SCROLL DIK_SCROLL No documentation. ee418641 DIK_NUMPAD7 DIK_NUMPAD7 No documentation. ee418641 DIK_NUMPAD8 DIK_NUMPAD8 No documentation. ee418641 DIK_NUMPAD9 DIK_NUMPAD9 No documentation. ee418641 DIK_SUBTRACT DIK_SUBTRACT No documentation. ee418641 DIK_NUMPAD4 DIK_NUMPAD4 No documentation. ee418641 DIK_NUMPAD5 DIK_NUMPAD5 No documentation. ee418641 DIK_NUMPAD6 DIK_NUMPAD6 No documentation. ee418641 DIK_ADD DIK_ADD No documentation. ee418641 DIK_NUMPAD1 DIK_NUMPAD1 No documentation. ee418641 DIK_NUMPAD2 DIK_NUMPAD2 No documentation. ee418641 DIK_NUMPAD3 DIK_NUMPAD3 No documentation. ee418641 DIK_NUMPAD0 DIK_NUMPAD0 No documentation. ee418641 DIK_DECIMAL DIK_DECIMAL No documentation. ee418641 DIK_OEM_102 DIK_OEM_102 No documentation. ee418641 DIK_F11 DIK_F11 No documentation. ee418641 DIK_F12 DIK_F12 No documentation. ee418641 DIK_F13 DIK_F13 No documentation. ee418641 DIK_F14 DIK_F14 No documentation. ee418641 DIK_F15 DIK_F15 No documentation. ee418641 DIK_KANA DIK_KANA No documentation. ee418641 DIK_ABNT_C1 DIK_ABNT_C1 No documentation. ee418641 DIK_CONVERT DIK_CONVERT No documentation. ee418641 DIK_NOCONVERT DIK_NOCONVERT No documentation. ee418641 DIK_YEN DIK_YEN No documentation. ee418641 DIK_ABNT_C2 DIK_ABNT_C2 No documentation. ee418641 DIK_NUMPADEQUALS DIK_NUMPADEQUALS No documentation. ee418641 DIK_PREVTRACK DIK_PREVTRACK No documentation. ee418641 DIK_AT DIK_AT No documentation. ee418641 DIK_COLON DIK_COLON No documentation. ee418641 DIK_UNDERLINE DIK_UNDERLINE No documentation. ee418641 DIK_KANJI DIK_KANJI No documentation. ee418641 DIK_STOP DIK_STOP No documentation. ee418641 DIK_AX DIK_AX No documentation. ee418641 DIK_UNLABELED DIK_UNLABELED No documentation. ee418641 DIK_NEXTTRACK DIK_NEXTTRACK No documentation. ee418641 DIK_NUMPADENTER DIK_NUMPADENTER No documentation. ee418641 DIK_RCONTROL DIK_RCONTROL No documentation. ee418641 DIK_MUTE DIK_MUTE No documentation. ee418641 DIK_CALCULATOR DIK_CALCULATOR No documentation. ee418641 DIK_PLAYPAUSE DIK_PLAYPAUSE No documentation. ee418641 DIK_MEDIASTOP DIK_MEDIASTOP No documentation. ee418641 DIK_VOLUMEDOWN DIK_VOLUMEDOWN No documentation. ee418641 DIK_VOLUMEUP DIK_VOLUMEUP No documentation. ee418641 DIK_WEBHOME DIK_WEBHOME No documentation. ee418641 DIK_NUMPADCOMMA DIK_NUMPADCOMMA No documentation. ee418641 DIK_DIVIDE DIK_DIVIDE No documentation. ee418641 DIK_SYSRQ DIK_SYSRQ No documentation. ee418641 DIK_RMENU DIK_RMENU No documentation. ee418641 DIK_PAUSE DIK_PAUSE No documentation. ee418641 DIK_HOME DIK_HOME No documentation. ee418641 DIK_UP DIK_UP No documentation. ee418641 DIK_PRIOR DIK_PRIOR No documentation. ee418641 DIK_LEFT DIK_LEFT No documentation. ee418641 DIK_RIGHT DIK_RIGHT No documentation. ee418641 DIK_END DIK_END No documentation. ee418641 DIK_DOWN DIK_DOWN No documentation. ee418641 DIK_NEXT DIK_NEXT No documentation. ee418641 DIK_INSERT DIK_INSERT No documentation. ee418641 DIK_DELETE DIK_DELETE No documentation. ee418641 DIK_LWIN DIK_LWIN No documentation. ee418641 DIK_RWIN DIK_RWIN No documentation. ee418641 DIK_APPS DIK_APPS No documentation. ee418641 DIK_POWER DIK_POWER No documentation. ee418641 DIK_SLEEP DIK_SLEEP No documentation. ee418641 DIK_WAKE DIK_WAKE No documentation. ee418641 DIK_WEBSEARCH DIK_WEBSEARCH No documentation. ee418641 DIK_WEBFAVORITES DIK_WEBFAVORITES No documentation. ee418641 DIK_WEBREFRESH DIK_WEBREFRESH No documentation. ee418641 DIK_WEBSTOP DIK_WEBSTOP No documentation. ee418641 DIK_WEBFORWARD DIK_WEBFORWARD No documentation. ee418641 DIK_WEBBACK DIK_WEBBACK No documentation. ee418641 DIK_MYCOMPUTER DIK_MYCOMPUTER No documentation. ee418641 DIK_MAIL DIK_MAIL No documentation. ee418641 DIK_MEDIASELECT DIK_MEDIASELECT No documentation. ee418641 DIK_UNKNOWN DIK_UNKNOWN Mouse device constants, defined in Dinput.h, represent offsets within a mouse device's data packet, theDIMOUSESTATEorDIMOUSESTATE2structure.

The data at a given offset is associated with a device object (button or axis). Typically, these values are used in the dwOfs member of the , DIOBJECTDATAFORMAT or structures.

ee418674 DIMOFS DIMOFS
No documentation. ee418674 DIMOFS_X DIMOFS_X No documentation. ee418674 DIMOFS_Y DIMOFS_Y No documentation. ee418674 DIMOFS_Z DIMOFS_Z No documentation. ee418674 DIMOFS_BUTTON0 DIMOFS_BUTTON0 No documentation. ee418674 DIMOFS_BUTTON1 DIMOFS_BUTTON1 No documentation. ee418674 DIMOFS_BUTTON2 DIMOFS_BUTTON2 No documentation. ee418674 DIMOFS_BUTTON3 DIMOFS_BUTTON3 No documentation. ee418674 DIMOFS_BUTTON4 DIMOFS_BUTTON4 No documentation. ee418674 DIMOFS_BUTTON5 DIMOFS_BUTTON5 No documentation. ee418674 DIMOFS_BUTTON6 DIMOFS_BUTTON6 No documentation. ee418674 DIMOFS_BUTTON7 DIMOFS_BUTTON7

Before you begin asking for input from a device, you need to know something about its capabilities. Does the joystick have a point-of-view hat? Is the mouse currently attached to the user's computer?

   DIMouseCaps;	
                hr; 	
            BOOLEAN    WheelAvailable;  DIMouseCaps.dwSize = sizeof(); 	
            hr = lpdiMouse->GetCapabilities(&DIMouseCaps); 	
            WheelAvailable = ((DIMouseCaps.dwFlags & )  && (DIMouseCaps.dwAxes > 2)); 	
            

Another way to check for a button or axis is to call for that object. If the call returns , the object is not present. The following code determines whether there is a z-axis, even if it is not the third axis:

   didoi;  didoi.dwSize = sizeof(); 	
            hr = lpdiMouse->GetObjectInfo(&didoi, , );  WheelAvailable = SUCCEEDED(hr);	
            
ee416850 DIDOI DIDOI
No documentation. ee416850 DIDOI_FFACTUATOR DIDOI_FFACTUATOR No documentation. ee416850 DIDOI_FFEFFECTTRIGGER DIDOI_FFEFFECTTRIGGER No documentation. ee416850 DIDOI_POLLED DIDOI_POLLED No documentation. ee416850 DIDOI_ASPECTPOSITION DIDOI_ASPECTPOSITION No documentation. ee416850 DIDOI_ASPECTVELOCITY DIDOI_ASPECTVELOCITY No documentation. ee416850 DIDOI_ASPECTACCEL DIDOI_ASPECTACCEL No documentation. ee416850 DIDOI_ASPECTFORCE DIDOI_ASPECTFORCE No documentation. ee416850 DIDOI_ASPECTMASK DIDOI_ASPECTMASK No documentation. ee416850 DIDOI_GUIDISUSAGE DIDOI_GUIDISUSAGE Serves as a header for all property structures. microsoft.directx_sdk.reference.dipropheader DIPH DIPH
Size of the enclosing structure. This member must be initialized before the structure is used.
microsoft.directx_sdk.reference.dipropheader DIPH_DEVICE DIPH_DEVICE
Size of the structure.
microsoft.directx_sdk.reference.dipropheader DIPH_BYOFFSET DIPH_BYOFFSET
Object for which the property is to be accessed. The value set for this member depends on the value specified in the dwHow member.
microsoft.directx_sdk.reference.dipropheader DIPH_BYID DIPH_BYID
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.
microsoft.directx_sdk.reference.dipropheader DIPH_BYUSAGE DIPH_BYUSAGE
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. microsoft.directx_sdk.reference.dideviceimageinfo DIDAL DIDAL No documentation. microsoft.directx_sdk.reference.dideviceimageinfo DIDAL_CENTERED DIDAL_CENTERED No documentation. microsoft.directx_sdk.reference.dideviceimageinfo DIDAL_LEFTALIGNED DIDAL_LEFTALIGNED No documentation. microsoft.directx_sdk.reference.dideviceimageinfo DIDAL_RIGHTALIGNED DIDAL_RIGHTALIGNED No documentation. microsoft.directx_sdk.reference.dideviceimageinfo DIDAL_MIDDLE DIDAL_MIDDLE No documentation. microsoft.directx_sdk.reference.dideviceimageinfo DIDAL_TOPALIGNED DIDAL_TOPALIGNED No documentation. microsoft.directx_sdk.reference.dideviceimageinfo 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 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 GlanceDownLink. DIBUTTON_FLYINGC_GLANCE_DOWN_LINK 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 DeviceControlUnknown. DI8DEVTYPEDEVICECTRL_UNKNOWN Constant DeviceControlCommsselectionHardwired. DI8DEVTYPEDEVICECTRL_COMMSSELECTION_HARDWIRED Constant DeviceControlCommsselection. DI8DEVTYPEDEVICECTRL_COMMSSELECTION 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 View. DIBUTTON_FLYINGH_VIEW 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 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 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 Autocenter. DIPROP_AUTOCENTER 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 Lateral. DIAXIS_SOCCERD_LATERAL Constant Move. DIAXIS_SOCCERD_MOVE 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 Head. DIBUTTON_SOCCERO_HEAD 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 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 data format flags. The flags. Gets the defined data format 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]

Describes a mapping of one game action to one device semantic. An array of structures is contained by a structure.

Syntax
 typedef struct _DIACTION {     uAppData; DWORD       dwSemantic; DWORD       dwFlags; union { LPCTSTR lptszActionName; UINT    uResIdString; };         guidInstance; DWORD       dwObjID; DWORD       dwHow;	
            } , *LPDIACTION; typedef const  *LPCDIACTION;	
            
Members
uAppData
Address of an application-defined UINT value to be returned to the application by when the state of the control associated with the action changes. This value is returned in the uAppData member of the structure. It is typically an identifier for the application-specific action associated with the device object, but can also be a function reference.
dwSemantic
For a joystick, a predefined action mapping constant for this application genre representing a virtual control or a constant for a control not defined in the genre. For a keyboard or mouse, a constant that represents a particular device object. See Action Mapping Constants.
dwFlags

Flags used to request specific attributes or processing. Can be zero or one or more of the following values.

DIA_APPFIXED
The action cannot be remapped by DirectInput.
DIA_APPMAPPED
The dwObjID member is valid, and will not override the application-defined mapping.
DIA_APPNOMAP
This action is not to be mapped.
DIA_FORCEFEEDBACK
The action must be mapped to an actuator or trigger.
DIA_NORANGE
The default range is not to be set for this action. This flag can be set only for absolute axis actions.
lptszActionName
Application-defined name of the action. This string is displayed by the device property sheet when IDirectInput8::ConfigureDevices is called.
uResIdString
Resource identifier for the string for this action. The module instance for this resource is specified in the hInstString member of the structure that contains this structure.
guidInstance
Device instance globally unique identifier () if a specific device is requested. Otherwise GUID_NULL.
dwObjID
Control identifier. Use the DIDFT_GETINSTANCE and DIDFT_GetType macros to retrieve the instance and type from this value.
dwHow

When the structure is returned by , this member receives a value to indicate the mapping mechanism used by DirectInput to configure the action. This member is ignored when the action map is passed to . The following values are defined.

DIAH_APPREQUESTED
The mapping was configured by the application, which specified the device (guidInstance) and device object (dwObjID) when calling .
DIAH_DEFAULT
The mapping was determined by DirectInput in the absence of other mapping information.
DIAH_ERROR
An error occurred. The action cannot be matched to a control on the device. The action will be ignored when the action map is set.
DIAH_HWAPP
The mapping was specified by the hardware manufacturer for this game.
DIAH_HWDEFAULT
The mapping was specified by the hardware manufacturer for this genre.
DIAH_UNMAPPED
No suitable device object was found.
DIAH_USERCONFIG
The mapping was configured by the user.
ee416598 DIACTIONW DIACTIONW
No documentation. ee416598 UINT_PTR uAppData UINT_PTR uAppData No documentation. ee416598 unsigned int dwSemantic unsigned int dwSemantic No documentation. ee416598 unsigned int dwFlags unsigned int dwFlags No documentation. ee416598 const void* lptszActionName void lptszActionName No documentation. ee416598 GUID guidInstance GUID guidInstance No documentation. ee416598 unsigned int dwObjID unsigned int dwObjID No documentation. ee416598 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. microsoft.directx_sdk.reference.diactionformat unsigned int dwSize unsigned int dwSize No documentation. microsoft.directx_sdk.reference.diactionformat unsigned int dwActionSize unsigned int dwActionSize No documentation. microsoft.directx_sdk.reference.diactionformat unsigned int dwDataSize unsigned int dwDataSize No documentation. microsoft.directx_sdk.reference.diactionformat unsigned int dwNumActions unsigned int dwNumActions No documentation. microsoft.directx_sdk.reference.diactionformat DIACTIONW* rgoAction DIACTIONW rgoAction No documentation. microsoft.directx_sdk.reference.diactionformat GUID guidActionMap GUID guidActionMap No documentation. microsoft.directx_sdk.reference.diactionformat unsigned int dwGenre unsigned int dwGenre No documentation. microsoft.directx_sdk.reference.diactionformat unsigned int dwBufferSize unsigned int dwBufferSize No documentation. microsoft.directx_sdk.reference.diactionformat int lAxisMin int lAxisMin No documentation. microsoft.directx_sdk.reference.diactionformat int lAxisMax int lAxisMax No documentation. microsoft.directx_sdk.reference.diactionformat HINSTANCE hInstString HINSTANCE hInstString No documentation. microsoft.directx_sdk.reference.diactionformat FILETIME ftTimeStamp FILETIME ftTimeStamp No documentation. microsoft.directx_sdk.reference.diactionformat unsigned int dwCRC unsigned int dwCRC No documentation. microsoft.directx_sdk.reference.diactionformat 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.

microsoft.directx_sdk.reference.dicondition DICONDITION DICONDITION
No documentation. microsoft.directx_sdk.reference.dicondition int lOffset int lOffset No documentation. microsoft.directx_sdk.reference.dicondition int lPositiveCoefficient int lPositiveCoefficient No documentation. microsoft.directx_sdk.reference.dicondition int lNegativeCoefficient int lNegativeCoefficient No documentation. microsoft.directx_sdk.reference.dicondition unsigned int dwPositiveSaturation unsigned int dwPositiveSaturation No documentation. microsoft.directx_sdk.reference.dicondition unsigned int dwNegativeSaturation unsigned int dwNegativeSaturation No documentation. microsoft.directx_sdk.reference.dicondition 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. microsoft.directx_sdk.reference.dideviceimageinfo DIDEVICEIMAGEINFOW DIDEVICEIMAGEINFOW No documentation. microsoft.directx_sdk.reference.dideviceimageinfo wchar_t tszImagePath[260] wchar_t tszImagePath No documentation. microsoft.directx_sdk.reference.dideviceimageinfo unsigned int dwFlags unsigned int dwFlags No documentation. microsoft.directx_sdk.reference.dideviceimageinfo unsigned int dwViewID unsigned int dwViewID No documentation. microsoft.directx_sdk.reference.dideviceimageinfo RECT rcOverlay RECT rcOverlay No documentation. microsoft.directx_sdk.reference.dideviceimageinfo unsigned int dwObjID unsigned int dwObjID No documentation. microsoft.directx_sdk.reference.dideviceimageinfo unsigned int dwcValidPts unsigned int dwcValidPts No documentation. microsoft.directx_sdk.reference.dideviceimageinfo RECT rcCalloutRect RECT rcCalloutRect No documentation. microsoft.directx_sdk.reference.dideviceimageinfo unsigned int dwTextAlign unsigned int dwTextAlign No documentation. microsoft.directx_sdk.reference.dideviceimageinfo POINT rgptCalloutLine[5] POINT rgptCalloutLine No documentation. bb280505 DIEFFESCAPE DIEFFESCAPE No documentation. bb280505 unsigned int dwSize unsigned int dwSize No documentation. bb280505 unsigned int dwCommand unsigned int dwCommand No documentation. bb280505 void* lpvInBuffer void lpvInBuffer No documentation. bb280505 unsigned int cbInBuffer unsigned int cbInBuffer No documentation. bb280505 void* lpvOutBuffer void lpvOutBuffer No documentation. bb280505 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. microsoft.directx_sdk.reference.dideviceobjectdata unsigned int dwOfs unsigned int dwOfs No documentation. microsoft.directx_sdk.reference.dideviceobjectdata unsigned int dwData unsigned int dwData No documentation. microsoft.directx_sdk.reference.dideviceobjectdata unsigned int dwTimeStamp unsigned int dwTimeStamp No documentation. microsoft.directx_sdk.reference.dideviceobjectdata unsigned int dwSequence unsigned int dwSequence No documentation. microsoft.directx_sdk.reference.dideviceobjectdata 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
No documentation. bb280498 DIPROPHEADER DIPROPHEADER No documentation. bb280498 unsigned int dwSize unsigned int dwSize No documentation. bb280498 unsigned int dwHeaderSize unsigned int dwHeaderSize No documentation. bb280498 unsigned int dwObj unsigned int dwObj No documentation. bb280498 DIPH dwHow DIPH dwHow No documentation. bb280499 DIPROPDWORD DIPROPDWORD No documentation. bb280499 DIPROPHEADER diph DIPROPHEADER diph No documentation. bb280499 unsigned int dwData unsigned int dwData No documentation. bb280497 DIPROPPOINTER DIPROPPOINTER No documentation. bb280497 DIPROPHEADER diph DIPROPHEADER diph No documentation. bb280497 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. microsoft.directx_sdk.reference.diproprange DIPROPHEADER diph DIPROPHEADER diph No documentation. microsoft.directx_sdk.reference.diproprange int lMin int lMin No documentation. microsoft.directx_sdk.reference.diproprange int lMax int lMax No documentation. bb280495 DIPROPSTRING DIPROPSTRING No documentation. bb280495 DIPROPHEADER diph DIPROPHEADER diph No documentation. bb280495 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. microsoft.directx_sdk.reference.diconstantforce int lMagnitude int lMagnitude No documentation. bb280512 DICUSTOMFORCE DICUSTOMFORCE No documentation. bb280512 unsigned int cChannels unsigned int cChannels No documentation. bb280512 unsigned int dwSamplePeriod unsigned int dwSamplePeriod No documentation. bb280512 unsigned int cSamples unsigned int cSamples No documentation. bb280512 int* rglForceData int rglForceData No documentation. bb280501 DIPERIODIC DIPERIODIC No documentation. bb280501 unsigned int dwMagnitude unsigned int dwMagnitude No documentation. bb280501 int lOffset int lOffset No documentation. bb280501 unsigned int dwPhase unsigned int dwPhase No documentation. bb280501 unsigned int dwPeriod unsigned int dwPeriod No documentation. bb280494 DIRAMPFORCE DIRAMPFORCE No documentation. bb280494 int lStart int lStart No documentation. bb280494 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 data format. The data format doesn't report any specific information. The data format must report acceleration information. The data format must report force information. The data format must report position information. The data format 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 unmanaged 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 unmanaged 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.