DirectInput8Create
DirectInput オブジェクトを作成し、IDirectInput8 インターフェイス またはそれ以降のインターフェイスを返します。
HRESULT
DirectInput8Create(
HINSTANCE hinst,
DWORD dwVersion,
REFIID riidltf,
LPVOID * ppvOut,
LPUNKNOWN punkOuter
);
パラメータ
- hinst
DirectInput オブジェクトを作成するアプリケーションまたはダイナミック リンク ライブラリ (DLL) のインスタンス ハンドル。DirectInput は、この値を使用してアプリケーションまたは DLL が認証されているかどうか判別し、後方互換性のために必要な特殊動作があれば設定します。DLL が親アプリケーションのハンドルを渡すとエラーになります。たとえば、DirectInput を使用する Web ページに組み込まれた Microsoft ActiveX コントロールは、ブラウザーのハンドルではなくコントロール自身のインスタンス ハンドルを渡す必要があります。これにより、DirectInput がコントロールを認識でき、必要な特殊動作があればその動作を有効にできます。 - dwVersion
アプリケーションが設計された対象の DirectInput のバージョン番号。この値は通常は DIRECTINPUT_VERSION です。アプリケーションが Dinput.h をインクルードする前に DIRECTINPUT_VERSION を定義した場合、この値は 0x0800 より大きくする必要があります。以前のバージョンでは、Dinput.lib 内にある DirectInputCreateEx を使用します。 - riidltf
使用するインターフェイスの一意識別子。この値は IID_IDirectInput8A または IID_IDirectInput8W です。IID_IDirectInput8 を渡すと、コンパイル時に UNICODE が定義されたかどうかに応じて、ANSI または Unicode のバージョンのインターフェイスが define によって選択されます。 - ppvOut
呼び出しが正常に行われた場合にインターフェイス ポインターを受け取る変数のポインターのアドレス。 - punkOuter
COM 集約に使用する制御オブジェクトの IUnknown インターフェイスのアドレスへのポインター、または NULL (インターフェイスを集約しない場合)。呼び出し側アプリケーションのほとんどは NULL を渡します。集約が要求されている場合、ppvOut に返されるオブジェクトは、COM 集約に必要な IUnknown へのポインターです。
戻り値
関数が正常に実行された場合、戻り値は DI_OK です。関数が失敗した場合、戻り値は次のいずれかのエラー値です。DIERR_BETADIRECTINPUTVERSION、DIERR_INVALIDPARAM、DIERR_OLDDIRECTINPUTVERSION、DIERR_OUTOFMEMORY
解説
この関数によって作成される DirectInput オブジェクトは、Dinput8.dll 内で実装されます。DirectX 8.0 より前のバージョンのインターフェイスは、この実装では取得できません。
CoCreateInstance を使用せず、最新の DirectX SDK を使用して DirectX 8.x インターフェイスを作成するには、次の手順で行います。
- Dinput8.h の include ステートメントの前に "#define DIRECTINPUT_VERSION 0x0800" を設定します。
- DirectInputCreateEx の代わりに DirectInput8Create を呼び出します。
- Dinput.lib の代わりに Dinput8.lib ライブラリにリンクします。
CoCreateInstance を使用せず、DirectX 8.x SDK を使用して DirectX 8.x インターフェイスを作成するには、次の手順で行います。
- DirectInputCreateEx の代わりに DirectInput8Create を呼び出します。
- Dinput.lib の代わりに Dinput8.lib ライブラリにリンクします。
CoCreateInstance を使用せず、DirectX 8.x または最新の DirectX SDK から DirectX 7.0 インターフェイスを作成するには、次の手順で行います。
- dinput.h の include ステートメントの前に "#define DIRECTINPUT_VERSION 0x0700" を設定します。
- DirectInput8Create の代わりに DirectInputCreateEx を呼び出します。
- Dinput8.lib の代わりに Dinput.lib ライブラリにリンクします。
CoCreateInstance を使用して、DirectX 8.x または最新の DirectX SDK から DirectX 7.0 インターフェイスを作成するには、次の手順で行います。
- CoInitializeEx を呼び出します。
- CLISID_DirectInput を使用して CoCreateInstance を呼び出します。
- IDirectInput7::Initialize を使用して DirectInput オブジェクトを初期化します。
CoCreateInstance を使用して、DirectX 8.x または最新の DirectX 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 宣言