Platform SDK: DirectX

DirectInputDevice.GetDeviceData

DirectInputDevice.GetDeviceData メソッドは、デバイスからバッファリング データを取得する。

object.GetDeviceData( _ 
  deviceObjectDataArray() As DIDEVICEOBJECTDATA, _ 
  flags As CONST_DIDGDDFLAGS) As Long

パラメータ

object
DirectInputDevice オブジェクトを表すオブジェクト式。
deviceObjectDataArray()
バッファリング データを受け取るための DIDEVICEOBJECTDATA 型の配列。
flags
データを取得方法を制御するフラグ。この値は、ゼロか、CONST_DIDGDDFLAGS 列挙の定数のいずれかを取ることができる。

戻り値

成功すれば、実際に取得されたバッファリング データの要素数が deviceObjectDataArray に返される。

エラー コード

失敗すればエラーが発生し、Err.Number に次のいずれかのエラー コードが設定される。

DI_BUFFEROVERFLOW
DIERR_INPUTLOST
DIERR_INVALIDPARAM
DIERR_NOTACQUIRED
DIERR_NOTBUFFERED

注意

デバイス データを取得する前に、DirectInputDevice.SetDataFormat メソッドでデータ形式を設定し、DirectInputDevice.SetProperty メソッドでバッファ サイズを設定し、DirectInputDevice.Acquire メソッドでデバイスを取得しなければならない。

このメソッドを使って、SetProperty で作成したバッファから 1 つ以上の入力イベントを取得することができる。一度の呼び出しで、待機中のすべてのイベントを取得する必要はない。たとえば、単一の要素で構成される deviceObjectDataArray() に渡し、すべてのデータが返されるまで GetDeviceData をループ処理することができる。

バッファがオーバーフローすると、待機中のすべてのデータは失われ、DI_BUFFEROVERFLOW エラーが発生する。

参照

DirectInputDevice.Pollポーリングとイベント