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 のどちらも返されません。 現在定義されていないフラグは、アプリケーションですべて無視する必要があります。
- DIGFFS_ACTUATORSOFF
戻り値
メソッドが正常に実行された場合、戻り値は DI_OK です。メソッドが失敗した場合、戻り値は次のいずれかのエラー値です。DIERR_INPUTLOST、DIERR_INVALIDPARAM、DIERR_NOTEXCLUSIVEACQUIRED、DIERR_NOTINITIALIZED、DIERR_UNSUPPORTED
解説
このメソッドを正常に実行するには、デバイスを排他協調レベルで獲得する必要があります。
DIGFFS_PAUSED フラグと DIGFFS_STOPPED フラグは、常に正しく報告されるとは限りません。これは、ドライバーがこれらのフラグをサポートしているかどうか報告する手段がないからです。
注 IDirectInputDevice8::GetForceFeedbackState を呼び出す際に、返されたデバイスの状態が予期した状態と一致しない可能性があります。この原因としては、直前に IDirectInputDevice8::SendForceFeedbackCommand によって送信されたコマンドがまだ処理中であることが考えられます。少し待ってからデバイスの状態を再度チェックしてください。
要件
ヘッダー: Dinput.h 宣言