Platform SDK: DirectX

DirectInputCreate

DirectInputCreate 関数は、IDirectInput COM インターフェイスをサポートする DirectInput オブジェクトを作成する。

HRESULT WINAPI DirectInputCreate(
  HINSTANCE hinst,                  
  DWORD dwVersion,                  
  LPDIRECTINPUT * lplpDirectInput,  
  LPUNKNOWN punkOuter               
);

パラメータ

hinst
DirectInput オブジェクトを作成するアプリケーションまたは DLL のインスタンス ハンドル。DirectInput は、この値を使用して、アプリケーションまたは DLL が、オブジェクト作成の資格を認められているかどうかを判断し、下位互換性のためにとるべき特別な動作を確定する。

DLL が親のアプリケーションのハンドルを渡すと、エラーとなる。たとえば、Web ページに埋め込まれている DirectInput を使用する ActiveX コントロールは、Web ブラウザのハンドルではなく、それ自身のインスタンスのハンドルを渡さなければならない。これにより、DirectInput がそのコントロールを認識し、必要と思われる特別な動作をすべて有効にすることが確実になる。

dwVersion
アプリケーションの設計対象である DirectInput のバージョン番号。この値は通常、DIRECTINPUT_VERSION である。以前のバージョン番号を渡すと、DirectInput がそのバージョンをエミュレートすることになる。詳細については、「前のバージョンの DirectInput の設計」を参照すること。
lplpDirectInput
呼び出しが成功した場合に IDirectInput インターフェイス ポインタを受け取る変数のアドレス。
punkOuter
COM 集合化に対する制御オブジェクトの IUnknown インターフェイスのアドレスへのポインタ。インターフェイスが集合化されていない場合には NULL。普通、呼び出し側は NULL を渡す。集合化が要求された場合、*lplpDirectInput に返されるオブジェクトは、COM 集合化が要求するように、IDirectInput インターフェイスではなく IUnknown へのポインタである。

戻り値

成功すれば DI_OK を返す。

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

DIERR_BETADIRECTINPUTVERSION
DIERR_INVALIDPARAM
DIERR_OLDDIRECTINPUTVERSION
DIERR_OUTOFMEMORY

注意

この関数は、DirectInputCreateEx に引き継がれている。新しい関数は、DirectInput オブジェクトの既存のインターフェイスを取得できる。新しい関数を使って、より機能の豊富な IDirectInput7 インターフェイスを取得することを推奨する。

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

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

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

動作環境

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