IDirectInput8::CreateDevice メソッド
IDirectInput8::CreateDevice メソッド
指定のグローバル一意識別子 (GUID) に基づき、デバイスのインスタンスを作成して初期化し、IDirectInputDevice8 インターフェイスを取得する。
構文
HRESULT CreateDevice(
REFGUID rguid,
LPDIRECTINPUTDEVICE *lplpDirectInputDevice,
LPUNKNOWN pUnkOuter
);
パラメータ
- rguid
C++ の場合、目的の入力デバイスのインスタンス GUID に対する参照値。C の場合、この GUID のアドレス (「注意」を参照すること)。この GUID は、IDirectInput8::EnumDevices メソッドを介して取得するか、または、次の事前定義された GUID の 1 つを使う。 この GUID 値を有効にするには、アプリケーションは、ソース ファイルの先頭で、他のすべてのプリプロセッサ ディレクティブより前に INITGUID を定義するか、または DXGUID.LIB にリンクしなければならない。GUID_SysKeyboard
デフォルトのシステム キーボード。GUID_SysMouse
デフォルトのシステム マウス。
- lplpDirectInputDevice
成功時に IDirectInputDevice8 インターフェイス ポインタを取得する変数のアドレス。 - pUnkOuter
COM 集成に対する制御オブジェクトの IUnknown インターフェイスのアドレス。インターフェイスが集成されていない場合には NULL。通常、呼び出し側は NULL を渡す。
戻り値
成功した場合は、DI_OK を返す。
失敗した場合は、次のいずれかの値を返す。
DIERR_DEVICENOTREG | デバイスまたはデバイス インスタンスが Microsoft® DirectInput® に登録されていない。この値は、標準の COM 戻り値である REGDB_E_CLASSNOTREG に等しい。 |
DIERR_INVALIDPARAM | 無効なパラメータが、戻ってくる関数に渡されたか、オブジェクトがその関数を呼び出せる状態になかった。この値は、標準の COM 戻り値である E_INVALIDARG に等しい。 |
DIERR_NOINTERFACE | オブジェクトは、指定のインターフェイスをサポートしていない。この値は、標準の COM 戻り値である E_NOINTERFACE に等しい。 |
DIERR_NOTINITIALIZED | このオブジェクトは初期化されていない。 |
DIERR_OUTOFMEMORY | DirectInput サブシステムが呼び出しを完了するのに十分なメモリを割り当てることができなかった。この値は、標準の COM 戻り値である E_OUTOFMEMORY に等しい。 |
注意
punkOuter = NULL を指定してこのメソッドを呼び出すことは、CoCreateInstance (&CLSID_DirectInputDevice, NULL, CLSCTX_INPROC_SERVER, riid, lplpDirectInputDevice) を使ってオブジェクトを作成した後、Initialize を使って初期化することと同等である。
punkOuter != NULL を指定してこのメソッドを呼び出すことは、CoCreateInstance (&CLSID_DirectInputDevice, punkOuter, CLSCTX_INPROC_SERVER, &IID_IUnknown, lplpDirectInputDevice) を使ってオブジェクトを作成することと同等である。集成したオブジェクトは手動で初期化しなければならない。