Platform SDK: DirectX

DIJOYSTATE2

DIJOYSTATE2 構造体は、拡張機能付きジョイスティック デバイスの状態に関する情報を格納する。この構造体は、IDirectInputDevice7::GetDeviceState メソッドで使用する。

typedef struct DIJOYSTATE2 {
    LONG    lX;
    LONG    lY;
    LONG    lZ;
    LONG    lRx;
    LONG    lRy;
    LONG    lRz;
    LONG    rglSlider[2];
    DWORD   rgdwPOV[4];
    BYTE    rgbButtons[128];
    LONG    lVX;
    LONG    lVY;
    LONG    lVZ;
    LONG    lVRx;
    LONG    lVRy;
    LONG    lVRz;
    LONG    rglVSlider[2];
    LONG    lAX;
    LONG    lAY;
    LONG    lAZ;
    LONG    lARx;
    LONG    lARy;
    LONG    lARz;
    LONG    rglASlider[2];
    LONG    lFX;
    LONG    lFY;
    LONG    lFZ;
    LONG    lFRx;
    LONG    lFRy;
    LONG    lFRz;
    LONG    rglFSlider[2];
} DIJOYSTATE2, *LPDIJOYSTATE2;

メンバ

lX
ジョイスティックの x 軸の情報 (通常は、スティックの左右の動き)。
lY
ジョイスティックの y 軸の情報 (通常は、スティックの前後の動き)。
lZ
ジョイスティックの z 軸の情報 (通常は、スロットル制御)。ジョイスティックにこの軸がなければ、値はゼロである。
lRx
ジョイスティックの x 軸回転の情報。ジョイスティックにこの軸がなければ、値はゼロである。
lRy
ジョイスティックの y 軸回転の情報。ジョイスティックにこの軸がなければ、値はゼロである。
lRz
ジョイスティックの z 軸回転の情報 (方向舵のコントロールでよく呼び出される)。ジョイスティックにこの軸がなければ、値はゼロである。
rglSlider[2]
2 つの追加軸の値 (以前には u 軸と v 軸と呼ばれていた)。この値の意味はジョイスティックで異なる。これらの値の意味についての情報を得るには、IDirectInputDevice7::GetObjectInfo メソッドを使用する。
rgdwPOV[4]
最高 4 つまでの方向コントローラ (視点ハットなど) の現在位置。この位置は、北から (ユーザーの正面側) 時計回りの実角度の 100 倍で表される。中心位置は通常 -1 と報告されるが、これについては「注意」を参照すること。5 つの位置しか持たないインジケータの場合、コントローラの値は -1、0、9,000、18,000、27,000 のどれか 1 つの値を取る。
rgbButtons[128]
ボタン状態の配列。バイトの上位ビットは、対応するボタンがダウン状態にあるときに設定され、ボタンがアップ状態または存在しないときには消去される。
lVX
x 軸速度の情報。
lVY
y 軸速度の情報。
lVZ
z 軸速度の情報。
lVRx
x 軸角速度の情報。
lVRy
y 軸角速度の情報。
lVRz
z 軸角速度の情報。
rglVSlider[2]
追加軸の速度の情報。
lAX
x 軸加速度の情報。
lAY
y 軸加速度の情報。
lAZ
z 軸加速度の情報。
lARx
x 軸角加速度の情報。
lARy
y 軸角加速度の情報。
lARz
z 軸角加速度の情報。
rglASlider[2]
追加軸の加速度の情報。
lFX
x 軸フォースの情報。
lFY
y 軸フォースの情報。
lFZ
z 軸フォースの情報。
lFRx
x 軸トルクの情報。
lFRy
y 軸トルクの情報。
lFRz
z 軸トルクの情報。
rglFSlider[2]
追加軸のフォースの情報。

注意

拡張機能付きジョイスティックへのアクセス用にデバイスを準備するには、IDirectInputDevice7::SetDataFormat メソッドを呼び出し、c_dfDIJoystick2 グローバルデータ形式変数を渡す。

DIJOYSTATE2 構造体は IDirectInputDevice7 インターフェイスと特別な関連はない。DIJOYSTATE または DIJOYSTATE2 のどちらか一方を、IDirectInputDevice インターフェイスまたは IDirectInputDevice7 インターフェイスのどちらか一方と共に使用することができる。

軸が相対モードである場合は、適切なメンバが位置の変化量を格納する。絶対モードの場合には、同じメンバが軸の絶対位置を格納する。

POV インジケータの中心位置を 65,535 と報告するドライバもある。POV インジケータが中心位置にあるかどうかは、次のようにして確認する。

BOOL POVCentered = (LOWORD(dwPOV) == 0xFFFF);

動作環境

  Windows NT/2000 :Windows 2000 が必要。
  Windows 95/98 : Windows 95 以降が必要。Windows 95 用に再配布可能な形で使用可能。
  ヘッダー : dinput.h で宣言。