次の方法で共有


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