Microsoft DirectX 8.0 (C++)

IDirectInput8::CreateDevice

指定の GUID に基づきデバイスのインスタンスを作成して初期化し、IDirectInputDevice8 インターフェイスを取得する。

HRESULT CreateDevice(
  REFGUID rguid,                               
  LPDIRECTINPUTDEVICE *lplpDirectInputDevice,  
  LPUNKNOWN pUnkOuter                          
);

パラメータ

rguid
C++ の場合、目的の入力デバイスのインスタンス GUID に対する参照値。C の場合、この GUID のアドレス (「注意」を参照すること)。この GUID は、IDirectInput8::EnumDevices メソッドを介して取得するか、または、次の事前定義された GUID の 1 つを使用する。
GUID_SysKeyboard
デフォルトのシステム キーボード。
GUID_SysMouse
デフォルトのシステム マウス。

この GUID 値を有効にするには、アプリケーションは、ソース ファイルの先頭で、ほかのすべてのプリプロセッサ ディレクティブに先立ち、INITGUID を定義するか、あるいは DXGUID.LIB にリンクしなければならない。

lplpDirectInputDevice
成功時に IDirectInputDevice8 インターフェイス ポインタを取得する変数のアドレス。
pUnkOuter
COM 集成体に対する制御オブジェクトの IUnknown インターフェイスのアドレス。インターフェイスが集成されていない場合には NULL。普通、呼び出し側は NULL を渡す。

戻り値

成功した場合は、DI_OK を返す。

失敗した場合は、次の戻り値のいずれかを返す。

DIERR_DEVICENOTREG
DIERR_INVALIDPARAM
DIERR_NOINTERFACE
DIERR_NOTINITIALIZED
DIERR_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) を使用してオブジェクトを作成することと同等である。集成したオブジェクトは手動で初期化しなければならない。

動作環境

  Windows NT/2000 : Windows 2000 以降に対する再配布可能ファイルとして提供。
  Windows 95/98 : Windows 95 以降に対する再配布可能ファイルとして提供。
  ヘッダー : dinput.h で宣言。