DirectInput DirectInput C/C++ 레퍼런스 함수 DirectInput8Create [목차열람] [주소복사] [슬롯비우기] |
Microsoft DirectX 9.0 |
Microsoft® DirectInput® 개체를 생성 해,IDirectInput8 또는 그 이후의 인터페이스를 돌려준다.
구문
HRESULT WINAPI DirectInput8Create(
HINSTANCE hinst, DWORD dwVersion, REFIID riidltf, LPVOID *ppvOut, LPUNKNOWN punkOuter );
파라미터
- hinst
- DirectInput 개체를 생성 하는 애플리케이션 또는 DLL 의 인스턴스 핸들. DirectInput 는, 이 값을 사용해, 애플리케이션 또는 DLL 가 인정되고 있는지를 판단함과 동시에, 하위 호환성을 위해서(때문에) 필요한 동작을 확립한다.
DLL 가 부모의 애플리케이션의 핸들을 건네주면 에러가 된다. 예를 들어, Web 페이지에 파묻히고 있어 DirectInput 를 사용하는 Microsoft ActiveX® 컨트롤은, Web 브라우저의 핸들은 아니고, 그것 자신의 인스턴스의 핸들을 건네주지 않으면 안 된다. 이것에 의해, DirectInput 가 그 컨트롤을 인식해, 필요라고 생각되는 특별한 동작을 모두 유효하게 하는 것이 확실히 된다.
- dwVersion
- 애플리케이션의 설계 대상인 DirectInput 의 버전 번호. 이 값은 보통, DIRECTINPUT_VERSION 이다. Dinput.h 파일을 인클루드 하기 전에 애플리케이션이 DIRECTINPUT_VERSION 를 정의하는 경우, 그 값은 0x0800 이상이어야 한다. 이전의 버전에서는 DirectInputCreateEx 를 사용한다. 이것은 Dinput.lib 에 정의되고 있다.
- riidltf
- 목적의 인터페이스의 일의의 식별자. 이 값은 IID_IDirectInput8A 또는 IID_IDirectInput8W 이다. IID_IDirectInput8 정의를 건네주는 것으로, 컴파일시에 UNICODE 가 정의되고 있는지에 의해, Unicode 버전 또는 ANSI 버전의 인터페이스가 선택된다.
- ppvOut
- 호출이 성공했을 경우에 인터페이스 포인터를 받는 변수의 포인터 주소.
- punkOuter
- 구성 요소 개체 모델 (COM) 집성에 대한 제어 개체의 IUnknown 인터페이스의 주소의 포인터. 인터페이스가 집성되지 않은 경우에는 NULL. 보통, 호출측은 NULL 를 건네준다. 집성이 요구되었을 경우,ppvOut 에 돌려받는 개체는, COM 집성이 요구하도록(듯이),IUnknown 의 포인터이다.
반환값
성공했을 경우는,DI_OK 를 돌려준다.
실패했을 경우는, 다음의 에러값의 어느쪽이든을 돌려준다.
DIERR_BETADIRECTINPUTVERSION 애플리케이션은, DirectInput 의 지원되지 않은 릴리스전의 버전용으로 생성 된 것이다. DIERR_INVALIDPARAM 무효인 파라미터가 돌아오는 함수에 건네졌는지, 개체가 그 함수를 호출할 수 있는 상태에 없었다. 이 값은, 표준의 COM 반환값인 E_INVALIDARG 에 동일하다. DIERR_OLDDIRECTINPUTVERSION 애플리케이션은, 보다 새로운 버전의 DirectInput 를 필요로 한다. DIERR_OUTOFMEMORY DirectInput 서브 시스템이 호출을 완료하는데 충분한 메모리를 할당할 수가 없었다. 이 값은, 표준의 COM 반환값인 E_OUTOFMEMORY 에 동일하다.
주의
이 함수가 생성 하는 DirectInput 개체는, Dinput8.dll 에 처리 된다. 이 처리에서는, Microsoft DirectX® 8.0 보다 전의 버전의 인터페이스를 취득할 수 없다.
CoCreateInstance 를 사용하지 않고 , DirectX 9.0 소프트웨어 개발 킷 (SDK)으로 DirectX 8. x 인터페이스를 생성 하려면 :
- Dinput8.h 의 인클루드문의 전에 "#define DIRECTINPUT_VERSION 0x0800" 를 설정한다.
- DirectInputCreateEx 대신에 DirectInput8Create 를 호출한다.
- Dinput.lib 대신에 Dinput8.lib 라이브러리에 링크한다.
CoCreateInstance 를 사용하지 않고 , DirectX 8. x SDK 로 Direct X 8. x 인터페이스를 생성 하려면 :
- DirectInputCreateEx 대신에 DirectInput8Create 를 호출한다.
- Dinput.lib 대신에 Dinput8.lib 라이브러리에 링크한다.
CoCreateInstance 를 사용하지 않고 , DirectX 8. x 또는 DirectX 9.0 SDK 로 Direct X 7.0 인터페이스를 생성 하려면 :
- dinput.h 의 인클루드문의 전에 "#define DIRECTINPUT_VERSION 0x0700" 를 설정한다.
- DirectInput8Create 대신에 DirectInputCreateEx 를 호출한다.
- Dinput8.lib 대신에 Dinput.lib 라이브러리에 링크한다.
CoCreateInstance 를 사용하지 않고 , DirectX 8. x 또는 DirectX 9.0 SDK 로 Direct X 7.0 인터페이스를 생성 하려면 :
- CoInitializeEx 를 호출한다.
- CLISID_DirectInput 를 사용해 CoCreateInstance 를 호출한다.
- IDirectInput7::Initialize 를 사용해 DirectInput 개체를 초기화한다.
CoCreateInstance 를 사용해, DirectX 8. x 또는 DirectX 9.0 SDK 로 DirectX 8. x 또는 DirectX 9.0 인터페이스를 생성 하려면 :
- CoInitializeEx 를 호출한다.
- CLISID_DirectInput8 를 사용해 CoCreateInstance 를 호출한다.
- IDirectInput8::Initialize 를 사용해 DirectInput 개체를 초기화한다.
punkOuter = NULL 를 지정해 이 함수를 호출하는 것은,CoCreateInstance( &CLSID_DirectInput8, punkOuter, CLSCTX_INPROC_SERVER, &IID_IDirectInput8W, lplpDirectInput) 를 사용해 개체를 생성 한 후,IDirectInput8::Initialize 로 초기화하는 것으로 동등하다.
punkOuter != NULL 를 지정해 이 함수를 호출하는 것은,CoCreateInstance( &CLSID_DirectInput8, punkOuter, CLSCTX_INPROC_SERVER, &IID_IUnknown, lplpDirectInput) 를 사용해 개체를 생성 하는 것으로 동등하다. 집성 한 개체는 수동으로 초기화해야 한다.
함수의 정보
헤더 dinput.h 임포트 라이브러리 dinput8.lib 최저한의 operating system Windows 98