DirectInput DirectInput C/C++ 레퍼런스 인터페이스 IDirectInputDevice8 SetActionMap   [목차열람] [주소복사] [슬롯비우기]
IDirectInputDevice8::SetActionMap 메서드
 
Microsoft DirectX 9.0

IDirectInputDevice8::SetActionMap 메서드


장치의 데이터 형식을 설정해, 애플리케이션 정의의 액션을 장치 개체에 맵 한다. 버퍼링 데이터의 버퍼 사이즈도 설정한다.

구문

HRESULT SetActionMap(      

    LPCDIACTIONFORMAT lpdiActionFormat,     LPCTSTR lptszUserName,     DWORD dwFlags );

파라미터

lpdiActionFormat
적용하는 액션 맵에 관한 정보를 저장 하는 DIACTIONFORMAT 구조체의 주소.
lptszUserName
어느 사용자의 액션 맵을 설정해 있을까에 임해서, 사용자명을 지정하는 Unicode 캐릭터 라인. NULL 를 지정 하면, 현재 시스템에 로그인하고 있는 사용자를 나타낸다.
dwFlags
액션 맵의 적용 방법을 지정하는 DWORD 값. 다음의 몇개의 값을 지정할 수 있다.
DIDSAM_DEFAULT
이 사용자의 액션 맵을 설정한다. 맵이 현재의 맵과 다른 경우, 새로운 설정이 디스크에 보존된다.
DIDSAM_FORCESAVE
항상 구성을 디스크에 보존한다.
DIDSAM_NOUSER
디폴트의 구성 프로퍼티 시트로 이 장치의 사용자 소유권을 리셋 한다. 사용자 소유권을 리셋 해도, 현재의 액션 맵은 삭제되지 않는다.

반환값

성공했을 경우는, DI_OK, DI_SETTINGSNOTSAVED 또는 DI_WRITEPROTECT 를 돌려준다.

실패했을 경우는, 에러값 DIERR_ACQUIRED 또는 DIERR_INVALIDPARAM 를 돌려준다.

DI_OK조작은 완전하게 종료했다. 이 값은, 구성 요소 개체 모델 (COM)의 표준의 반환값인 S_OK 에 동일하다.
DI_SETTINGSNOTSAVED액션 맵은 장치에 적용되었지만, 설정 정보는 보존되지 않았다.
DI_WRITEPROTECT설정을 변경할 수 없는 것을 나타내는 성공 코드.
DIERR_ACQUIRED조작은, 장치가 취득 상태의 사이는 실행할 수 없다.
DIERR_INVALIDPARAM무효인 파라미터가, 돌아오는 함수에 건네졌는지, 개체가 그 함수를 호출할 수 있는 상태에 없었다. 이 값은, 표준의 COM 반환값인 E_INVALIDARG 에 동일하다.


주의

이 메서드에 의해, 액션과 컨트롤의 맵핑을 장치의 디폴트로부터 변경할 수 있는 메카니즘을 얻을 수 있다. 애플리케이션은, 이 메서드를 사용해 게임내의 액션을 가상 컨트롤에 맵 할 필요가 있다.

이 메서드에 건네지는 사용자명에 의해, 장치의 액션 맵세트가 특정 사용자에 바인드 된다. 설정이 현재 적용되고 있는 맵과 다른 경우는, 자동적으로 디스크에 보존된다. 복수의 사용자로부터 입력을 받아들이는 애플리케이션은, 각 사용자의 액션 맵이 경합 할 가능성이 있으므로, 시스템의 마우스나 키보드에 액션 맵을 적용할 때는 주의가 필요하다.

이 메서드는, 장치가 취득되지 않은 경우에만 호출할 수가 있다.

IDirectInputDevice8::BuildActionMap 가 성공해도, 어느 액션도 맵 되지 않는 경우는, 그 후 IDirectInputDevice8::SetActionMap 를 호출하면 DI_OK 가 돌아가지만,IDirectInputDevice8::Acquire 를 호출하면 실패해, DIERR_INVALIDPARAM 가 돌아간다.

참조

IDirectInputDevice8::BuildActionMap


© 2002 Microsoft Corporation. All rights reserved.
↑TOP