直接データでジョイスティックの状態を取得の初期化と同じ処理をします。
共通の処理 / デバイスの状態を取得と同じ処理をします。DIDEVICEOBJECTDATA構造体の「dwOfs」メンバにはジョイスティックデバイス定数の状態が格納されていています。たとえばボタン0が押されているか判定するには下記のようにします。
// デバイスのバッファリングデータを取得する while( TRUE ) { DIDEVICEOBJECTDATA od; HRESULT hr; DWORD dwInOut = 1; hr = g_lpDIDevice->GetDeviceData( sizeof(od), &od, &dwInOut, 0 ); else if( FAILED(hr) || dwInOut == 0 ) break; else { switch( od.dwOfs ) { case DIJOFS_BUTTON0: // ボタン0が押された break; } } }
共通の処理 / 終了処理と同じ処理をします。
ここまでの手順でジョイスティックの状態をバッファリングデータで取得できます。使用例のサンプルを置いておきます。