Platform SDK: DirectX |
DirectInputDevice.GetDeviceData メソッドは、デバイスからバッファリング データを取得する。
object.GetDeviceData( _ deviceObjectDataArray() As DIDEVICEOBJECTDATA, _ flags As CONST_DIDGDDFLAGS) As Long
成功すれば、実際に取得されたバッファリング データの要素数が 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 エラーが発生する。