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

IDirectInputDevice8::Acquire 메서드


입력 장치에의 액세스권을 얻어온다.

구문

HRESULT Acquire(VOID);

반환값

성공했을 경우는, DI_OK 를 돌려준다. 장치가 취득 끝난 경우는, S_FALSE 를 돌려준다.

실패했을 경우는, 다음의 몇개의 에러값을 돌려준다.

DIERR_INVALIDPARAM무효인 파라미터가, 돌아오는 함수에 건네졌는지, 개체가 그 함수를 호출할 수 있는 상태에 없었다. 이 값은, 표준의 구성 요소 개체 모델 (COM) 반환값인 E_INVALIDARG 에 동일하다.
DIERR_NOTINITIALIZED이 개체는 초기화되지 않다.
DIERR_OTHERAPPHASPRIO다른 애플리케이션의 우선 레벨이 높기 때문에, 이 호출을 실행할 수 없다. 이 값은, 표준의 COM 반환값인 E_ACCESSDENIED 에 동일하다. 이 에러가 돌려받는 것은, 장치에 대한 애플리케이션의 액세스권이 foreground 액세스권인 것에도 불구하고, 백그라운드일 때 장치를 취득하려고 했을 경우이다.


주의

장치 취득전에 IDirectInputDevice8::SetDataFormat 메서드나 IDirectInputDevice8::SetActionMap 메서드를 사용해, 데이터 형식을 설정해야 한다. 데이터 형식이 설정되지 않은 경우,IDirectInputDevice8::AcquireDIERR_INVALIDPARAM 를 돌려준다.

장치에 대해서 IDirectInputDevice8::GetDeviceState 또는 IDirectInputDevice8::GetDeviceData 메서드를 호출하기 전에, 그 장치를 취득해 두지 않으면 안 된다.

장치 취득에서는,참조 카운트를 사용하지 않는다. 이 때문에, 애플리케이션이 IDirectInputDevice8::Acquire 메서드를 2 회 호출해, 그 후 IDirectInputDevice8::Unacquire 메서드를 1 회 호출하면, 장치는 릴리즈 된다.

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



© 2002 Microsoft Corporation. All rights reserved.
↑TOP