次の方法で共有


IDirectInputDevice8::SendForceFeedbackCommand

デバイスのフォース フィードバック システムにコマンドを送ります。

HRESULT 
SendForceFeedbackCommand(
  DWORD dwFlags
);

パラメータ

  • dwFlags
    行いたい状態の変更を示す単一の値。値は、次のいずれかです。
    • DISFFC_CONTINUE
      一時停止していたすべてのアクティブ エフェクトの再生を続行します。デバイスが一時停止状態でないときにこのコマンドを送信すると、エラーになります。

    • DISFFC_PAUSE
      すべてのアクティブ エフェクトの再生を一時停止します。このコマンドはエフェクトのクロックも停止するので、再開すると、エフェクトは所要時間の終了まで再生されます。

      デバイスを一時停止すると、新規エフェクトは開始できず、既存のエフェクトは変更できません。そのようにすると、後続の DISFFC_CONTINUE コマンドが正しく実行されなくなる可能性があります。

      一時停止を中断してすべてのエフェクトを停止するには、DISFFC_STOPALL コマンドまたは DISFCC_RESET コマンドを使用します。

    • DISFFC_RESET
      デバイスのフォース フィードバック システムを起動時の状態にします。すべてのエフェクトがデバイスから削除され、無効になるので、再び使用するにはエフェクトを再作成する必要があります。デバイスのアクチュエーターは無効になります。

    • DISFFC_SETACTUATORSOFF
      デバイスのフォース フィードバック アクチュエーターを無効にします。アクチュエーターがオフになっている間は、エフェクトの再生は継続されますが、デバイスはエフェクトを無視します。サウンド再生デバイスにたとえると、一時停止ではなく消音状態に相当します。

    • DISFFC_SETACTUATORSON
      デバイスのフォース フィードバック アクチュエーターを有効にします。

    • DISFFC_STOPALL
      すべてのアクティブ エフェクトの再生を停止します。すべてのアクティブ エフェクトがリセットされますが、エフェクトは引き続きデバイスによって維持され、有効のままです。デバイスが一時停止状態である場合、その状態は失われます。このコマンドは、再生中のそれぞれのエフェクトごとに IDirectInputEffect::Stop メソッドを呼び出すことと同等です。

戻り値

メソッドが正常に実行された場合、戻り値は DI_OK です。メソッドが失敗した場合、戻り値は次のいずれかのエラー値です。DIERR_INPUTLOST、DIERR_INVALIDPARAM、DIERR_NOTEXCLUSIVEACQUIRED、DIERR_NOTINITIALIZED、DIERR_UNSUPPORTED

解説 

このメソッドを正常に実行するには、デバイスを排他協調レベルで獲得する必要があります。

    IDirectInputDevice8::GetForceFeedbackState を呼び出す際に、返されたデバイスの状態が予期した状態と一致しない可能性があります。この原因としては、直前に IDirectInputDevice8::SendForceFeedbackCommand によって送信されたコマンドがまだ処理中であることが考えられます。少し待ってからデバイスの状態を再度チェックしてください。

要件

ヘッダー: Dinput.h 宣言