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 宣言