DirectInput DirectInput C/C++ 레퍼런스 구조체 DIACTIONFORMAT [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
호출원애플리케이션에 관한 정보를 저장 해, 장르의 액션과 컨트롤의 맵핑을 정의하는 DIACTION 구조체 배열의 컨테이너로서 동작한다.
구문
typedef struct { 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;
멤버
- dwSize
- DIACTIONFORMAT 구조체의 사이즈를 바이트 단위로 지정하는 DWORD 값.
- dwActionSize
- DIACTION 구조체의 사이즈를 바이트 단위로 지정하는 DWORD 값.
- dwDataSize
- 장치의 직접 데이터를 사용하는 장치가 돌려주는 장치 데이터의 사이즈를, 바이트 단위로 지정하는 DWORD 값. 이 멤버는,dwNumActions 를 4 배가 된 값이다.
- dwNumActions
- rgoAction 배열의 요소수를 지정하는 DWORD 값.
- rgoAction
- DIACTION 구조체의 배열의 주소. 각 구조체가, 액션과 가상 컨트롤 또는 장치 개체의 맵 방법, 및 맵핑 정보를 사용자에 표시하는 방법을 나타낸다.
- guidActionMap
- 액션 맵을 식별하는 글로벌 일의 식별자 (GUID). 장치 메이커는 이 값을 사용해 특정의 타이틀의 맵핑을 조정할 수 있다.
- dwGenre
- 애플리케이션의 장르를 지정하는 DWORD 값. 설정 가능한 값에 대해서는, 「액션 맵핑 정수」를 참조할것.
- dwBufferSize
- 액션 맵이 적용되는 각 장치의, 버퍼내의 입력 데이터 패킷수를 지정하는 DWORD 값. IDirectInputDevice8::GetDeviceData 로 데이터를 얻어오기 위해 버퍼 사이즈를 제로보다 큰 값으로 설정할 필요가 있다. IDirectInputDevice8::SetActionMap 를 호출하기 전에, 애플리케이션이 이 멤버에 목적의 버퍼 사이즈를 설정하는 경우,IDirectInputDevice8::SetProperty 로 DIPROP_BUFFERSIZE 프로퍼티를 설정할 필요는 없다.
- lAxisMin
- 모든 축으로 취득되는 계측 데이터의 범위의 최소 값. DIACTION. dwFlags 에 DIA_NORANGE 플래그가 설정되었을 경우, 이 값은 특정의 액션 축으로 대해 무시된다.
이 값은, 축액션 에 대해서만 유효하고, 그 외의 모든 조작에 대해서는 0 으로 설정할 필요가 있다. DIPROPRANGE . lMin 로서 사용하면IDirectInputDevice8::SetActionMap 로 액션 맵을 적용할 경우에, 절대 축으로 범위 프로퍼티를 설정할 수 있다.
- lAxisMax
- 모든 축으로 취득되는 계측 데이터의 범위의 최대치. DIACTION. dwFlags 에 DIA_NORANGE 플래그가 설정되었을 경우, 이 값은 특정의 액션 축으로 대해 무시된다.
이 값은, 축액션 에 대해서만 유효하고, 그 외의 모든 조작에 대해서는 0 으로 설정할 필요가 있다. DIPROPRANGE. lMax 로서 사용하면IDirectInputDevice8::SetActionMap 로 액션 맵을 적용할 경우에, 절대 축으로 범위 프로퍼티를 설정할 수 있다.
- hInstString
- 각 액션의 DIACTION 구조체의 uResIdString 멤버로 지정된, 액션명의 캐릭터 라인 리소스를 저장 하는 모듈의 핸들. 액션명이 각 액션의 DIACTION 구조체의 lptszActionName 멤버로 지정되고 있는 경우는, 제로로 할 수 있다.
- ftTimeStamp
- 액션 맵이 마지막에 디스크에 기입해졌을 때 각을 받는 FILETIME 구조체. 「주의」를 참조할것.
- dwCRC
- 이 맵의 순회 장황 검사 (CRC). 맵핑 세트를 디스크에 보존하는 시기를 결정하기 위해서(때문에), Microsoft® DirectInput® 가 내부적으로 사용한다.
- tszActionMap
- 이 액션 맵의 등록명을 지정하는, 최대장 MAX_PATH 의 NULL 종단 캐릭터 라인. 이 캐릭터 라인은, 디폴트 프로퍼티 시트의 드롭 다운 리스트 박스에 표시된다.
주의
ftTimeStamp 멤버에는, 신규 장치나 미사용 장치에 적용하는 특수값을 저장 할 수 있다. 신규 장치란, 이 애플리케이션에서는 열거되지 않고, 액션 맵이 적용되지 않은 장치이다. 미사용 장치란, 이전에 이 애플리케이션으로 열거되고 있지만, 액션 맵이 적용되지 않은 장치이다. 신규 장치의 경우,FILETIME 구조체아래와 위에의 DWORD 에, 각각 DIAFTS_NEWDEVICELOW 와 DIAFTS_NEWDEVICEHIGH 가 항상 설정되어 있다. 미사용 장치의 경우는, 여기에 DIAFTS_UNUSEDDEVICELOW 와 DIAFTS_UNUSEDDEVICEHIGH 가 설정되어 있다.
애플리케이션으로 신규 장치의 유무를 체크하기 위해서 ftTimeStamp 를 사용해서는 안 된다. 이 방법 대신에, 열거 콜백 함수로 DIEDBS_RECENTDEVICE 와 DIEDBS_NEWDEVICE 플래그가 돌려주어졌는지 어떠했는지를 확인할 필요가 있다. 더 자세한 정보는, 「DIEnumDevicesBySemanticsCallback 」를 참조할것.
구조체의 정보
헤더 dinput.h 최저한의 operating system Windows 98
참조
IDirectInput8::EnumDevicesBySemantics ,IDirectInputDevice8::SetActionMap ,IDirectInput8::ConfigureDevices ,IDirectInputDevice8::BuildActionMap ,액션 맵