DirectInput DirectInput 의 사용법 DirectInput 장치 DirectInput 장치의 생성   [목차열람] [주소복사] [슬롯비우기]
DirectInput 장치의 생성
 
Microsoft DirectX 9.0

DirectInput 장치의 생성


장치로부터 입력 데이터를 얻어오려면, 우선 그 장치를 나타내는 개체를 생성 해야 한다.

IDirectInput8::CreateDevice 메서드를 사용해,IDirectInputDevice8 인터페이스의 포인터를 얻어온다. 그 후, 이 인터페이스의 메서드를 사용해, 장치의 조작과 데이터의 취득을 실시한다.

다음 코드는, 키보드 장치를 생성 하는 예이다. lpdiIDirectInput8 인터페이스의 포인터를 나타낸다.

LPDIRECTINPUTDEVICE8  lpdiKeyboard; 

lpdi->CreateDevice(GUID_SysKeyboard, &lpdiKeyboard, NULL);

IDirectInput8::CreateDevice 의 최초의 파라미터는 인스턴스의 글로벌 일의 식별자 (GUID)이며, 인터페이스의 생성 대상인 장치의 인스턴스를 식별한다. Microsoft® DirectInput® 에는 사전 정의된 2 개의 GUID (GUID_SysMouseGUID_SysKeyboard)가 있어, 각각 시스템 마우스 및 키보드를 나타낸다. 이러한 식별자의 1 개를 IDirectInput8::CreateDevice 메서드에 건네줄 수가 있다. IDirectInput8::CreateDevice 메서드의 파라미터로서 글로벌 변수의 GUID_Joystick 를 사용해서는 안 된다. GUID_Joystick 는 제품 GUID 이며, 인스턴스 GUID 는 아니기 때문에이다.

  컴퓨터에 복수의 마우스가 있는 경우는, 모든 마우스가 결합되어 시스템 장치를 형성한다. 키보드에 대해서도 같이이다.

DirectInput 는, 이 그 밖에도 주로 테스트용으로 사전 정의된 4 개의 GUID 가 있다.

이 GUID 의 1 개를 IDirectInput8::CreateDevice 에 건네주는 것으로, 열거 계층-를 개입시켜, 시스템키 보드나 시스템 마우스에 대한 레벨 1 또는 레벨 2 의 액세스권이 부여된다. 이러한 GUID 는, 항상 시스템 마우스나 시스템키 보드를 나타낸다. 이것들은 GUID_SysKeyboard 및 GUID_SysMouse 의 앨리어스(alias)이며, DIEDFL_INCLUDEALIASES 플래그가 건네받지 않으면,IDirectInput8::EnumDevices 또는 IDirectInput8::EnumDevicesBySemantics 에서는 열거되지 않는다.

시스템 마우스 또는 시스템키 보드 이외의 장치의 경우는,IDirectInput8::EnumDevices 또는 IDirectInput8::EnumDevicesBySemantics 가 돌려주는 장치의 인스턴스 GUID 를 사용한다. 1 개의 장치에 대한 인스턴스 GUID 는 항상 동일하다. 열거한 리스트로부터 사용자에 1 개의 장치를 선택시켜, 그 GUID 를 구성 파일에 보존해 두면 후의 세션으로 그 GUID 를 다시 사용할 수 있다.



© 2002 Microsoft Corporation. All rights reserved.
↑TOP