DIACTIONFORMAT
Contains information about the calling application and acts as a container for an array of DIACTION structures that define action-to-control mappings for a genre.
typedef struct DIACTIONFORMAT {
DWORD dwSize;
DWORD dwActionSize;
DWORD dwDataSize;
DWORD dwNumActions;
LPDIACTION rgoAction;
GUID guidActionMap;
DWORD dwGenre;
DWORD dwBufferSize;
LONG lAxisMin;
LONG lAxisMax;
HINSTANCE hInstString;
FILETIME ftTimeStamp;
DWORD dwCRC;
TCHAR tszActionMap[MAX_PATH];
} DIACTIONFORMAT, *LPDIACTIONFORMAT;
Members
- dwSize
-
DWORD value that specifies the size of the DIACTIONFORMAT structure, in bytes.
- dwActionSize
-
DWORD value that specifies the size of the DIACTION structure, in bytes.
- dwDataSize
-
DWORD value that specifies the size of the device data to be returned by the device for immediate device data, in bytes. This member should be
dwNumActions multiplied by four.
- dwNumActions
-
DWORD value that specifies the number of elements in the
rgoAction array.
- rgoAction
- Address of an array of DIACTION structures, each of which describes how an action maps to a virtual control or device object, and how the mapping information should be displayed to the user.
- guidActionMap
- Globally unique identifier (GUID) that identifies the action map. Device manufacturers can use this value to tune mappings for a specific title.
- dwGenre
-
DWORD value that specifies the genre of the application. For possible values, see Action Mapping Constants.
- dwBufferSize
-
DWORD value that specifies the number of input data packets in the buffer for each device to which this action map is to be applied. The buffer size must be set to a value greater than zero in order to retrieve data by using IDirectInputDevice8::GetDeviceData. Applications that set this member to the desired buffer size before calling IDirectInputDevice8::SetActionMap do not need to set the DIPROP_BUFFERSIZE property by using IDirectInputDevice8::SetProperty.
- lAxisMin
Minimum value for the range of scaled data to be returned for all axes. This value is ignored for a specific action axis if the DIA_NORANGE flag is set in
DIACTION.dwFlags.
- This value is valid only for axis actions and should be set to zero for all other actions. It is used as the DIPROPRANGE.lmin value to set the range property on an absolute axis when the action map is applied using IDirectInputDevice8::SetActionMap.
- lAxisMax
Maximum value for the range of scaled data to be returned for all axes. This value is ignored for a specific action axis if the DIA_NORANGE flag is set in
DIACTION.dwFlags.
- This value is valid only for axis actions and should be set to zero for all other actions. It is used as the DIPROPRANGE.lmax value to set the range property on an absolute axis when the action map is applied using IDirectInputDevice8::SetActionMap.
- hInstString
- Handle of the module containing string resources for action names, as specified in the uResIdString member of the DIACTION structure for each action. Can be zero if action names are specified in the lptszActionName member of the DIACTION structure for each action.
- ftTimeStamp
-
FILETIME structure that receives the time at which this action map was last written to disk. See Remarks.
- dwCRC
- Cyclic redundancy check for this map. Used internally by DirectInput to determine when a set of mappings should be saved to disk.
- tszActionMap
- Null-terminated string, of maximum length MAX_PATH, that specifies the friendly name for this action map. This string appears in the drop-down list box in the default property sheet.
Remarks
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
FILETIME 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.
See Also
IDirectInput8::EnumDevicesBySemantics, IDirectInputDevice8::SetActionMap, IDirectInput8::ConfigureDevices, IDirectInputDevice8::BuildActionMap, Action Mapping