DirectInput DirectInput C/C++ 레퍼런스 함수 DirectInput8Create   [목차열람] [주소복사] [슬롯비우기]
DirectInput8Create 함수
 
Microsoft DirectX 9.0

DirectInput8Create 함수


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_OUTOFMEMORYDirectInput 서브 시스템이 호출을 완료하는데 충분한 메모리를 할당할 수가 없었다. 이 값은, 표준의 COM 반환값인 E_OUTOFMEMORY 에 동일하다.


주의

이 함수가 생성 하는 DirectInput 개체는, Dinput8.dll 에 처리 된다. 이 처리에서는, Microsoft DirectX® 8.0 보다 전의 버전의 인터페이스를 취득할 수 없다.

CoCreateInstance  World Wide Web 링크 를 사용하지 않고 , DirectX 9.0 소프트웨어 개발 킷 (SDK)으로 DirectX 8. x 인터페이스를 생성 하려면 :

  1. Dinput8.h 의 인클루드문의 전에 "#define DIRECTINPUT_VERSION 0x0800" 를 설정한다.
  2. DirectInputCreateEx 대신에 DirectInput8Create 를 호출한다.
  3. Dinput.lib 대신에 Dinput8.lib 라이브러리에 링크한다.

CoCreateInstance 를 사용하지 않고 , DirectX 8. x SDK 로 Direct X 8. x 인터페이스를 생성 하려면 :

  1. DirectInputCreateEx 대신에 DirectInput8Create 를 호출한다.
  2. Dinput.lib 대신에 Dinput8.lib 라이브러리에 링크한다.

CoCreateInstance 를 사용하지 않고 , DirectX 8. x 또는 DirectX 9.0 SDK 로 Direct X 7.0 인터페이스를 생성 하려면 :

  1. dinput.h 의 인클루드문의 전에 "#define DIRECTINPUT_VERSION 0x0700" 를 설정한다.
  2. DirectInput8Create 대신에 DirectInputCreateEx 를 호출한다.
  3. Dinput8.lib 대신에 Dinput.lib 라이브러리에 링크한다.

CoCreateInstance 를 사용하지 않고 , DirectX 8. x 또는 DirectX 9.0 SDK 로 Direct X 7.0 인터페이스를 생성 하려면 :

  1. CoInitializeEx 를 호출한다.
  2. CLISID_DirectInput 를 사용해 CoCreateInstance 를 호출한다.
  3. IDirectInput7::Initialize 를 사용해 DirectInput 개체를 초기화한다.

CoCreateInstance 를 사용해, DirectX 8. x 또는 DirectX 9.0 SDK 로 DirectX 8. x 또는 DirectX 9.0 인터페이스를 생성 하려면 :

  1. CoInitializeEx  World Wide Web 링크 를 호출한다.
  2. CLISID_DirectInput8 를 사용해 CoCreateInstance 를 호출한다.
  3. 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


© 2002 Microsoft Corporation. All rights reserved.
↑TOP