次の方法で共有


IDirectInput8::CreateDevice

特定のグローバル一意識別子 (GUID) に基づいてデバイスのインスタンスを作成し、初期化します。IDirectInputDevice8 インターフェイス インターフェイスを取得します。

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

パラメータ

  • rguid
    目的の入力デバイスの GUID を参照します (「解説」を参照)。GUID は IDirectInput8::EnumDevices メソッドを使用して取得するか、次に示す定義済み GUID のいずれかを指定できます。次の GUID 値が有効であるためには、アプリケーションのソース ファイルの先頭で他のどのプリプロセッサー ディレクティブよりも前に INITGUID を定義するか、または Dxguid.lib にリンクする必要があります。
    • GUID_SysKeyboard
      デフォルトのシステム キーボード。
    • GUID_SysMouse
      デフォルトのシステム マウス。
  • 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) によってオブジェクトを作成した場合と同じ結果になります。集約オブジェクトは手動で初期化する必要があります。

要件

ヘッダー: Dinput.h 宣言