次の方法で共有


DIEffectInfo

IDirectInputDevice8::EnumEffects および IDirectInputDevice8::GetEffectInfo メソッドで、デバイスによってサポートされる特定のエフェクトに関する情報を返すために使用されます。

typedef struct DIEffectInfo {
    DWORD dwSize;
    GUID guid;
    DWORD dwEffType;
    DWORD dwStaticParams;
    DWORD dwDynamicParams;
    TCHAR tszName[MAX_PATH];
} DIEffectInfo, *LPDIEffectInfo;

メンバ

  • dwSize
    構造体のサイズ (バイト単位) です。列挙中に、アプリケーションはこの値を調べて、構造体のメンバーの中で有効なメンバーの数を確認することができます。構造体を IDirectInputDevice8::GetEffectInfo メソッドに渡す前に、このメンバーを初期化する必要があります。
  • guid
    エフェクトの識別子です。
  • dwEffType
    次の値を 1 つ以上指定するか、まったく指定しません。
    • DIEFT_ALL
      IDirectInputDevice8::EnumEffects のみに有効です。タイプに関係なく、すべてのエフェクトを列挙します。このフラグは、他のフラグと組み合わせることはできません。

    • DIEFT_CONDITION
      このエフェクトは条件を表します。条件を作成または変更する際、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICONDITION 構造体の配列をポイントし (軸ごとに 1 つ)、cbTypeSpecificParams メンバーは cAxis * sizeof(DICONDITION) が設定される必要があります。

      すべてのデバイスで、条件のすべてのパラメーターがサポートされているわけではありません。エフェクトの能力フラグをチェックして、使用可能な能力を確認してください。

      このフラグを IDirectInputDevice8::EnumEffects に渡して、列挙を条件に制限することができます。

    • DIEFT_CONSTANTFORCE
      このエフェクトはコンスタント フォース エフェクトを表します。コンスタント フォース エフェクトを作成または変更する際、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICONSTANTFORCE 構造体をポイントします。cbTypeSpecificParams メンバーには sizeof(DICONSTANTFORCE) が設定される必要があります。

      このフラグを IDirectInputDevice8::EnumEffects に渡して、列挙をコンスタント フォース エフェクトに制限することができます。

    • DIEFT_CUSTOMFORCE
      このエフェクトはカスタム フォース エフェクトを表します。カスタム フォース エフェクトを作成または変更する際、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICUSTOMFORCE 構造体をポイントします。cbTypeSpecificParams メンバーには sizeof(DICUSTOMFORCE) が設定される必要があります。

      このフラグを IDirectInputDevice8::EnumEffects に渡して、列挙をカスタム フォース エフェクトに制限することができます。

    • DIEFT_DEADBAND
      この条件エフェクトのエフェクト ジェネレーターは、lDeadBand パラメーターをサポートします。

    • DIEFT_FFATTACK
      このエフェクトのエフェクト ジェネレーターは、アタック エンベロープ パラメーターをサポートします。エフェクト ジェネレーターがアタックをサポートしていない場合、DIENVELOPE 構造体のアタック レベルとアタック時間のパラメーターはエフェクトで無視されます。

      DIEFT_FFATTACK も DIEFT_FFFADE も設定されていない場合、エフェクトはエンベロープをサポートせず、指定されたエンベロープはすべて無視されます。

    • DIEFT_FFFADE
      このエフェクトのエフェクト ジェネレーターは、フェード パラメーターをサポートします。エフェクト ジェネレーターがフェードをサポートしていない場合、DIENVELOPE 構造体のフェード レベルとフェード時間のパラメーターはエフェクトで無視されます。

      DIEFT_FFATTACK も DIEFT_FFFADE も設定されていない場合、エフェクトはエンベロープをサポートせず、指定されたエンベロープはすべて無視されます。

    • DIEFT_HARDWARE
      このエフェクトはハードウェア固有のエフェクトを表します。ハードウェア固有のエフェクトの使用の詳細については、ハードウェアのドキュメントを参照してください。

      このフラグを IDirectInputDevice8::EnumEffects メソッドに渡して、列挙をハードウェア固有のエフェクトに制限することができます。

    • DIEFT_PERIODIC
      このエフェクトは周期的エフェクトを表します。周期エフェクトを作成または変更する際、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DIPERIODIC 構造体をポイントします。cbTypeSpecificParams メンバーには sizeof(DIPERIODIC) が設定される必要があります。

      このフラグを IDirectInputDevice8::EnumEffects に渡して、列挙を周期的エフェクトに制限することができます。

    • DIEFT_POSNEGCOEFFICIENTS
      このエフェクトのエフェクト ジェネレーターは、条件の 2 つの係数値をサポートします。1 つは正の軸移動の係数で、もう 1 つは負の軸移動の係数です。デバイスがいずれかの係数をサポートしない場合、DICONDITION 構造体の負の係数は無視され、正の係数は両方の方向に使用されます。

    • DIEFT_POSNEGSATURATION
      このエフェクトのエフェクト ジェネレーターは、正のフォースと負のフォース両方の出力の最大飽和をサポートします。デバイスがいずれかの飽和値をサポートしない場合、DICONDITION 構造体の負の飽和は無視され、正の飽和は両方の方向に使用されます。

    • DIEFT_RAMPFORCE
      このエフェクトはランプ フォース エフェクトを表します。ランプ フォース エフェクトを作成または変更する際、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DIRAMPFORCE 構造体をポイントします。cbTypeSpecificParams メンバーには sizeof(DIRAMPFORCE) が設定される必要があります。

      このフラグを IDirectInputDevice8::EnumEffects に渡して、列挙をランプ フォース エフェクトに制限することができます。

    • DIEFT_SATURATION
      このエフェクトのエフェクト ジェネレーターは、条件エフェクトの飽和をサポートします。エフェクト ジェネレーターが飽和をサポートしていない場合、条件によって生成されたフォースは、デバイスで生成可能な最大フォースのみによって制限されます。

    • DIEFT_STARTDELAY
      このエフェクトでは、再生されるまでに遅延が発生し、すぐには開始されません。これを使用して、エフェクトが順番に再生されるように、エフェクトをオフセットすることができます。

  • dwStaticParams
    0、またはエフェクトによってサポートされるパラメーターを表す DIEP_* 値 (複数可) です。たとえば、DIEP_ENVELOPE が設定されている場合、エフェクトはエンベロープをサポートします。有効な値の一覧については、「IDirectInputEffect::GetParameters」を参照してください。 デバイスでサポートされていないエフェクト パラメーターをアプリケーションが使用しても、エラーにはなりません。サポートされていないパラメーターは無視されます。 この情報は、アプリケーションが特定のデバイスの能力に合わせてフォース フィードバックの使用を調整できるようにするために提供されています。
  • dwDynamicParams
    0、またはエフェクトの再生中に変更できるエフェクトのパラメーターを表す DIEP_* 値 (複数可) です。有効な値の一覧については、「IDirectInputEffect::GetParameters」を参照してください。 エフェクトの再生中にアプリケーションがパラメーターを変更しようとしても、ドライバーがそのエフェクトの動的な変更をサポートしていない場合、ドライバーはエフェクトを停止して、パラメーターを更新した後、エフェクトを再開することができます。詳細については、「IDirectInputEffect::SetParameters」を参照してください。
  • tszName
    "Sawtooth up" や "Constant force" など、エフェクトの名前です。

解説 

dwEffType フラグからエフェクト タイプを抽出するには、DIDFT_GETTYPE マクロを使用してください。