次の方法で共有


IDirectInputDevice8::GetForceFeedbackState

デバイスのフォース フィードバック システムの状態を取得します。

HRESULT 
GetForceFeedbackState(
  LPDWORD pdwOut
);

パラメータ

  • pdwOut
    デバイスのフォース フィードバック システムの現在の状態を示すフラグの場所。 この値は次の定数の組み合わせです。
    • DIGFFS_ACTUATORSOFF
      デバイスのフォース フィードバック アクチュエーターが無効になっています。デバイスがアクチュエーターの状態を報告できない場合は、DIGFFS_ACTUATORSON または DIGFFS_ACTUATORSOFF のどちらも返されません。
    • DIGFFS_ACTUATORSON
      デバイスのフォース フィードバック アクチュエーターが有効になっています。デバイスがアクチュエーターの状態を報告できない場合は、DIGFFS_ACTUATORSON または DIGFFS_ACTUATORSOFF のどちらも返されません。
    • DIGFFS_DEVICELOST
      デバイスに予期しない障害が発生し、不確定な状態になっています。デバイスの獲得を解除し、再獲得するか、または DISFFC_RESET コマンドを送信して、デバイスをリセットする必要があります。
    • DIGFFS_EMPTY
      デバイスにはエフェクトがダウンロードされていません。
    • DIGFFS_PAUSED
      アクティブ エフェクトの再生がすべて一時停止されています。
    • DIGFFS_POWEROFF
      現在、フォース フィードバック システムは使用できません。デバイスが電源状態を報告できない場合は、DIGFFS_POWERON または DIGFFS_POWEROFF のどちらも返されません。
    • DIGFFS_POWERON
      現在、フォース フィードバック システムに電源が供給されています。デバイスが電源状態を報告できない場合は、DIGFFS_POWERON または DIGFFS_POWEROFF のどちらも返されません。
    • DIGFFS_SAFETYSWITCHOFF
      現在、安全スイッチがオフになっています。つまり、デバイスは動作できません。デバイスが安全スイッチの状態を報告できない場合は、DIGFFS_SAFETYSWITCHON または DIGFFS_SAFETYSWITCHOFF のどちらも返されません。
    • DIGFFS_SAFETYSWITCHON
      現在、安全スイッチがオンになっています。つまり、デバイスは動作できます。デバイスが安全スイッチの状態を報告できない場合は、DIGFFS_SAFETYSWITCHON または DIGFFS_SAFETYSWITCHOFF のどちらも返されません。
    • DIGFFS_STOPPED
      エフェクトは再生されておらず、デバイスは一時停止していません。
    • DIGFFS_USERFFSWITCHOFF
      現在、ユーザー フォース フィードバック スイッチがオフになっています。つまり、デバイスは動作できません。デバイスがユーザー フォース フィードバック スイッチの状態を報告できない場合は、DIGFFS_USERFFSWITCHON または DIGFFS_USERFFSWITCHOFF のどちらも返されません。
    • DIGFFS_USERFFSWITCHON
      現在、ユーザー フォース フィードバック スイッチがオンになっています。つまり、デバイスは動作できます。デバイスがユーザー フォース フィードバック スイッチの状態を報告できない場合は、DIGFFS_USERFFSWITCHON または DIGFFS_USERFFSWITCHOFF のどちらも返されません。 現在定義されていないフラグは、アプリケーションですべて無視する必要があります。

戻り値

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

解説 

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

DIGFFS_PAUSED フラグと DIGFFS_STOPPED フラグは、常に正しく報告されるとは限りません。これは、ドライバーがこれらのフラグをサポートしているかどうか報告する手段がないからです。

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

要件

ヘッダー: Dinput.h 宣言