GetJoypadDirectInputState は DirectInput から得られる情報をそのまま返している関数で
そして、残念ですが DirectInput から得られる情報の形をソフトウエア側から変更することはできません
( パッドの製造メーカーがドライバを書き換えてくれたりしないと駄目です… )
パッドが XInput にも対応していれば GetJoypadXInputState でも有効な情報を取得することができて、
そちらでは R2 と L2 が RightTrigger と LeftTrigger という別々の変数に格納されますので
よろしければお試しになってみてください m(_ _)m
// XInput から得られる入力デバイス( Xbox360コントローラ等 )の生のデータを取得する
// ( XInput非対応のパッドの場合はエラーとなり -1 を返す、DX_INPUT_KEY や DX_INPUT_KEY_PAD1 など、
// キーボードが絡むタイプを InputType に渡すとエラーとなり -1 を返す )
int GetJoypadXInputState( int InputType, XINPUT_STATE *XInputState ) ;
// XInput のジョイパッド入力情報
struct XINPUT_STATE
{
unsigned char Buttons[ 16 ] ; // ボタン16個( 添字には XINPUT_BUTTON_DPAD_UP 等を使用する、0:押されていない 1:押されている )
unsigned char LeftTrigger ; // 左トリガー( 0〜255 )
unsigned char RightTrigger ; // 右トリガー( 0〜255 )
short ThumbLX ; // 左スティックの横軸値( -32768 〜 32767 )
short ThumbLY ; // 左スティックの縦軸値( -32768 〜 32767 )
short ThumbRX ; // 右スティックの横軸値( -32768 〜 32767 )
short ThumbRY ; // 右スティックの縦軸値( -32768 〜 32767 )
} ;
// XInputボタン入力定義
#define XINPUT_BUTTON_DPAD_UP (0) // デジタル方向ボタン上
#define XINPUT_BUTTON_DPAD_DOWN (1) // デジタル方向ボタン下
#define XINPUT_BUTTON_DPAD_LEFT (2) // デジタル方向ボタン左
#define XINPUT_BUTTON_DPAD_RIGHT (3) // デジタル方向ボタン右
#define XINPUT_BUTTON_START (4) // STARTボタン
#define XINPUT_BUTTON_BACK (5) // BACKボタン
#define XINPUT_BUTTON_LEFT_THUMB (6) // 左スティック押し込み
#define XINPUT_BUTTON_RIGHT_THUMB (7) // 右スティック押し込み
#define XINPUT_BUTTON_LEFT_SHOULDER (8) // LBボタン
#define XINPUT_BUTTON_RIGHT_SHOULDER (9) // RBボタン
#define XINPUT_BUTTON_A (12) // Aボタン
#define XINPUT_BUTTON_B (13) // Bボタン
#define XINPUT_BUTTON_X (14) // Xボタン
#define XINPUT_BUTTON_Y (15) // Yボタン