Platform SDK: DirectX

DirectInputCreateEx

DirectInputCreateEx 関数は、IDirectInputIDirectInput2、または IDirectInput7 COM インターフェイスをサポートする DirectInput オブジェクトを作成する。

HRESULT WINAPI DirectInputCreateEx(
  HINSTANCE hinst,                  
  DWORD dwVersion,                  
  REFIID riidltf,
  LPVOID * ppvOut,  
  LPUNKNOWN punkOuter               
);

パラメータ

詳細については、「前のバージョンの DirectInput の設計」を参照すること。
riidltf
目的の DirectInput インターフェイスの一意な識別子。サポートされる値は、IID_IDirectInput、IID_IDirectInput2、および IID_IDirectInput7 である。コンパイル時に UNICODE が定義されている場合、インターフェイスの Unicode 版が返される。それ以外の場合は、ANSI 版のインターフェイスが返される。
ppvOut
コールの成功時にインターフェイス ポインタを受け取る変数のアドレス。
punkOuter
COM 集合化に対する制御オブジェクトの IUnknown インターフェイスのアドレスへのポインタ。インターフェイスが集合化されていない場合には NULL。普通、呼び出し側は NULL を渡す。集合化が要求された場合、*ppvOut に返されるオブジェクトは、COM 集合化が要求するように、IDirectInput インターフェイスではなく IUnknown へのポインタである。

戻り値

成功すれば DI_OK を返す。

失敗すれば次のエラー値のいずれかを返す。

DIERR_BETADIRECTINPUTVERSION
DIERR_INVALIDPARAM
DIERR_OLDDIRECTINPUTVERSION
DIERR_OUTOFMEMORY

注意

punkOuter = NULL を指定してこの関数を呼び出すことは、CoCreateInstance(&CLSID_DirectInput, punkOuter, CLSCTX_INPROC_SERVER, &IID_IDirectInput7W, lplpDirectInput) を使用してオブジェクトを作成した後、IDirectInput7::Initialize で初期化することと同等である。

punkOuter != NULL を指定してこの関数を呼び出すことは、CoCreateInstance(&CLSID_DirectInput, punkOuter, CLSCTX_INPROC_SERVER, &IID_IUnknown, lplpDirectInput) を使用してオブジェクトを作成することと同等である。集合化したオブジェクトは手動で初期化しなければならない。

このサービスは、ANSI と Unicode のバージョンに分かれている。ANSI バージョンは、IDirectInputA インターフェイスをサポートするオブジェクトを作成し、Unicode バージョンは IDirectInputW インターフェイスをサポートするオブジェクトを作成する。文字セットの問題に敏感な他のシステム サービスと同様に、ヘッダー ファイル内のマクロは、DirectInputCreateEx を適切な文字セットにマップする。

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dinput.h で宣言。
  インポート ライブラリ : dinput.lib を使用。