DirectInput DirectInput C/C++ 레퍼런스 구조체 DIOBJECTDATAFORMAT   [목차열람] [주소복사] [슬롯비우기]
DIOBJECTDATAFORMAT 구조체
 
Microsoft DirectX 9.0

DIOBJECTDATAFORMAT 구조체


IDirectInputDevice8::SetDataFormat 메서드로 사용하기 위한 장치 개체의 데이터 형식을 나타낸다.

구문

typedef struct DIOBJECTDATAFORMAT {
    const GUID * pguid; 
    DWORD        dwOfs; 
    DWORD        dwType; 
    DWORD        dwFlags; 
} DIOBJECTDATAFORMAT, *LPDIOBJECTDATAFORMAT; 
 
typedef const DIOBJECTDATAFORMAT *LPCDIOBJECTDATAFORMAT;

멤버

pguid
축, 버튼, 또는 그 외의 입력 소스에 대한 일의의 식별자. 데이터 형식의 요구시에 이 멤버를 NULL 로 하면 임의의 타입의 개체를 허가하는 것을 나타낸다.
dwOfs
입력 소스의 데이터를 저장 하는 데이터 패킷내의 오프셋(offset). 이 값은, 축 등,DWORD 사이즈의 데이터에 맞도록(듯이), 4 의 배수여야한다. 버튼의 경우는, 바이트 정렬이라도 좋다.
dwType
개체를 기술하는 장치 타입. 개체의 종류 (축, 버튼등)를 나타내는 이하의 플래그의 편성이며, 중앙의 16 비트는, 개체 인스턴스 번호를 저장 한다. 데이터 형식의 요구시에, 인스턴스 부분에 DIDFT_ANYINSTANCE 를 설정 하면, 임의의 인스턴스를 허가할 수 있다. 또,DIDFT_MAKEINSTANCE (n)로 설정 하면, 요구를 인스턴스 n 로 한정할 수 있다. 「주의」의 예를 참조할것.
DIDFT_ABSAXIS
IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 절대축이어야 한다.
DIDFT_AXIS
IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 절대축 또는 상대축이어야 한다.
DIDFT_BUTTON
IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 푸쉬 버튼 또는 토글버튼이어야 한다.
DIDFT_FFACTUATOR
IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, force feedback 액츄에이터를 포함해야 한다. 즉, 포스를 이 개체에 적용할 수 있을 필요가 있다.
DIDFT_FFEFFECTTRIGGER
IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 유효한 force feedback 이펙트 방아쇠여야 한다.
DIDFT_POV
IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 시점 콘트롤러여야 한다.
DIDFT_PSHBUTTON
IDirectInputDevice8::SetDataFormat 메서드로 선택한 개체는, 푸쉬 버튼이어야 한다.
DIDFT_RELAXIS
IDirectInputDevice8::SetDataFormat 에 의해 선택된 개체는, 상대축이어야 한다.
DIDFT_TGLBUTTON
IDirectInputDevice8::SetDataFormat 에 의해 선택된 개체는, 토글버튼이어야 한다.
DIDFT_VENDORDEFINED
IDirectInputDevice8::SetDataFormat 에 의해 선택된 개체는, 메이커 정의의 타입이어야 한다.
dwFlags
제로 또는 다음의 몇개의 값을 지정한다.
DIDOI_ASPECTACCEL
IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 가속도 정보를 보고해야 한다.
DIDOI_ASPECTFORCE
IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 포스 정보를 보고해야 한다.
DIDOI_ASPECTPOSITION
IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 위치 정보를 보고해야 한다.
DIDOI_ASPECTVELOCITY
IDirectInputDevice8::SetDataFormat 로 선택한 개체는, 속도 정보를 보고해야 한다.

주의

데이터 형식은, 각 개체 (축, 버튼등)가 1 개씩 보유하는 복수의 DIOBJECTDATAFORMAT 구조체로부터 완성된다. 이러한 구조체의 배열은,IDirectInputDevice8::SetDataFormat 에게 건네지는 DIDATAFORMAT 구조체에 저장 된다. 애플리케이션은, 보통,DIOBJECTDATAFORMAT 구조체로부터 완성되는 배열을 생성 할 필요는 없고,DIOBJECTDATAFORMAT 에 사전 정의되고 있는 설정값인 c_dfDIMouse,c_dfDIMouse2,c_dfDIKeyboard,c_dfDIJoystick,c_dfDIJoystick2 등의 데이터 형식 데이터의 어느쪽이든을 사용할 수 있다.

다음의 개체 데이터 형식은, Microsoft® DirectInput® 가 최초의 사용 가능한 축을 선택해, 그 장치 데이터의 오프셋(offset) 4 의 위치에 있는 값을 DWORD 로 보고하지 않으면 안 되는 것을 지정하고 있다.

DIOBJECTDATAFORMAT dfAnyAxis = { 
    0,                              // Wildcard 
    4,                              // Offset
    DIDFT_AXIS | DIDFT_ANYINSTANCE, // Any axis is okay.  
    0,                              // Ignore aspect 
}; 

다음의 개체 데이터 형식은, 장치의 x 축을 장치 데이터의 오프셋(offset) 12 의 위치에 DWORD 로 저장 하도록(듯이) 지정하고 있다. 장치가 복수의 x 축을 가지고 있는 경우는, 최초로 사용 가능한 축이 선택된다.

DIOBJECTDATAFORMAT dfAnyXAxis = { 
    &GUID_XAxis,                    // Must be an X axis 
    12,                             // Offset
    DIDFT_AXIS | DIDFT_ANYINSTANCE, // Any X axis is okay.  
    0,                              // Ignore aspect 
}; 

다음의 개체 데이터 형식은, DirectInput 가 최초로 사용 가능한 버튼을 선택해, 장치 데이터의 오프셋(offset) 16 의 위치에 있는 바이트의 상위 비트의 값을 보고하도록(듯이) 지정하고 있다.

DIOBJECTDATAFORMAT dfAnyButton = { 
    0,                                // Wildcard 
    16,                               // Offset
    DIDFT_BUTTON | DIDFT_ANYINSTANCE, // Any button is okay.  
    0,                                // Ignore aspect 
}; 

다음의 개체 데이터 형식은, 장치의 버튼 0 을 장치 데이터의 오프셋(offset) 18 의 위치에 저장 되고 있는 바이트의 상위 비트로서 보고하도록(듯이) 지정하고 있다.

장치에 버튼 0 이 없는 경우, 이 데이터 형식의 설정은 실패한다.

DIOBJECTDATAFORMAT dfButton0 = { 
    0,                                    // Wildcard 
    18,                                   // Offset
    DIDFT_BUTTON | DIDFT_MAKEINSTANCE(0), // Button zero 
    0,                                    // Ignore aspect 
}; 

구조체의 정보

헤더dinput.h
최저한의 operating system Windows 98


© 2002 Microsoft Corporation. All rights reserved.
↑TOP