DIEFFECTATTRIBUTES 構造体 (dinputd.h)

DIEFFECTATTRIBUTES 構造体は、強制フィードバック デバイスでサポートされている各効果のレジストリ キーの "属性" 値に含まれる情報を記述します。

構文

typedef struct DIEFFECTATTRIBUTES {
  DWORD dwEffectId;
  DWORD dwEffType;
  DWORD dwStaticParams;
  DWORD dwDynamicParams;
  DWORD dwCoords;
} DIEFFECTATTRIBUTES, *LPDIEFFECTATTRIBUTES;

メンバー

dwEffectId

効果を識別するためにドライバーに渡される任意の 32 ビット値を指定します。 ドライバーは、この値を dwEffectID パラメーターとして IDirectInputEffectDriver::D ownloadEffect メソッドに受け取ります。

dwEffType

効果のカテゴリと機能について説明します。 このメンバーは、次のいずれかの値で構成されている必要があります。

DIEFT_CONSTANTFORCE

効果は、一定の力効果を表します。 定数フォース効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICONSTANTFORCE 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DICONSTANTFORCE) に設定されます。

DIEFT_RAMPFORCE

効果はランプフォース効果を表します。 ランプフォース効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DIRAMPFORCE 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DIRAMPFORCE) に設定されます。

DIEFT_PERIODIC

効果は、定期的な効果を表します。 定期的な効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DIPERIODIC 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DIPERIODIC) に設定されます。

DIEFT_CONDITION

効果は条件を表します。 条件を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICONDITION 構造体の配列 (軸ごとに 1 つの DICONDITION 構造体または 1 つの DICONDITION 構造体のいずれか) を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーはそれぞれ sizeof(DICONDITION) または cAxis * sizeof(DICONDITION) に設定されます。 cbTypeSpecificParams が sizeof(DICONDITION) に設定されている場合、効果は回転可能な単一軸条件を表します。 cbTypeSpecificParams が cAxis * sizeof(DICONDITION) に設定されている場合、効果は複数軸の条件を表し、各 DICONDITION 構造体は rgdwAxes リストのそれぞれの軸に適用されます。

DIEFT_CUSTOMFORCE

効果は、ユーザー設定の強制効果を表します。 カスタムフォース効果を作成または変更する場合、DIEFFECT 構造体の lpvTypeSpecificParams メンバーは DICUSTOMFORCE 構造体を指し、DIEFFECT 構造体の cbTypeSpecificParams メンバーは sizeof(DICUSTOMFORCE) に設定されます。

DIEFT_HARDWARE

効果は、ハードウェア固有の効果を表します。 ハードウェア ベンダーは、効果の使用方法に関する追加のドキュメントをアプリケーション ライターに提供する必要があります。 dwEffTtype メンバーには、カテゴリ コードに加えて、効果の機能を記述する次のフラグを 0 個、1 つ以上含めることもできます。

DIEFT_FFATTACK

この効果の効果ジェネレーターは、攻撃エンベロープ パラメーターをサポートしています。 効果ジェネレーターが攻撃をサポートしていない場合、DIENVELOPE 構造体の攻撃レベルと攻撃時間パラメーターは、効果によって無視されます。

DIEFT_FFFADE

このエフェクトのエフェクト ジェネレータは、フェード パラメータをサポートしています。 エフェクトジェネレータがフェードをサポートしていない場合、DIENVELOPE構造体のフェードレベルおよびフェード時間パラメータはエフェクトによって無視されます。 DIEFT_FFATTACKまたはDIEFT_FFFADEが設定されていない場合、効果は封筒をサポートせず、指定された封筒は無視されます。

DIEFT_SATURATION

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

DIEFT_POSNEGCOEFFICIENTS

この効果の効果ジェネレーターは、条件に対して 2 つの係数値をサポートしています。1 つは軸の正の変位用、1 つは軸の負の変位です。 デバイスが両方の係数をサポートしていない場合、DICONDITION 構造体の負の係数は無視され、正の係数が両方向に使用されます。

DIEFT_POSNEGSATURATION

効果の効果ジェネレーターは、正と負の両方の力出力の最大飽和をサポートします。 デバイスが両方の飽和値をサポートしていない場合、DICONDITION 構造体の負の彩度は無視され、正の彩度が両方向で使用されます。

dwStaticParams

効果でサポートされるパラメーターについて説明します。 たとえば、DIEP_ENVELOPEが設定されている場合、効果は封筒をサポートします。 すべての効果は、少なくともDIEP_DURATION、DIEP_AXES、およびDIEP_TYPESPECIFICPARAMSをサポートする必要があります。 アプリケーションが、デバイスでサポートされていない効果パラメーターの使用を試行してもエラーではありません。 サポートされていないパラメーターは無視されるだけです。 この値には、次のフラグの 0、1、または複数を指定できます。

DIEP_DURATION

エフェクトが再生されていない場合に、ドライバーがエフェクトの dwDuration (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。

DIEP_SAMPLEPERIOD

エフェクトが再生されていない場合に、ドライバーがエフェクトの dwSamplePeriod (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。

DIEP_GAIN

エフェクトが再生されていない場合に、ドライバーがエフェクトの dwGain (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。

DIEP_TRIGGERBUTTON

エフェクトが再生されていない場合に、ドライバーがエフェクトの dwTriggerButton (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。

DIEP_TRIGGERREPEATINTERVAL

効果が再生されていない場合に、ドライバーが効果の dwTriggerRepeatInterval (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。

DIEP_AXES

効果が再生されていない場合に、ドライバーが効果の cAxes と rgdwAxes の変更をサポートしていることを示します (DIEFFECT 構造体を参照)。

DIEP_DIRECTION

効果が再生されていない場合に、ドライバーが効果の cAxes と rglDirection (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。 (DIEFFECT 構造体の dwFlags メンバーは、DIEFF_CARTESIANまたはDIEFF_POLARによって、値を解釈する座標系を指定します)。

DIEP_ENVELOPE

エフェクトが再生されていない場合に、ドライバーがエフェクトの lpEnvelope (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。

DIEP_TYPESPECIFICPARAMS

効果が再生されていない場合に、ドライバーが効果の cbTypeSpecificParamslpTypeSpecificParams (DIEFFECT 構造体を参照) の変更をサポートしていることを示します。 DIEFFECT 構造体の lpTypeSpecificParams メンバーが指すバッファーは、効果の有効期間 (または型固有のパラメーターが新しい値に設定されるまで) 有効なままである必要があることに注意してください。 DirectInput はバッファーのプライベート コピーを作成しません。

dwDynamicParams

効果の再生中に変更できる効果のパラメーターについて説明します。 エフェクトの再生中にアプリケーションがパラメーターを変更しようとして、ドライバーがその効果を動的に変更できない場合、ドライバーはDIERR_EFFECTPLAYINGを返します。 このメンバーは dwStaticParams メンバーと同じフラグを使用します。ただし、フラグは、ドライバーが効果の再生中ではなく、効果の再生中に効果のパラメーターを変更できるかどうかを示すものとして解釈されます。

dwCoords

効果でサポートされている座標系を示す 1 つ以上の座標系フラグ (DIEFF_CARTESIAN、DIEFF_POLAR、DIEFF_SPHERICAL)。 少なくとも 1 つの座標系がサポートされている必要があります。 アプリケーションがサポートされていない座標系の方向を設定しようとすると、DirectInput によって自動的にデバイスがサポートする座標系に変換されます。

注釈

DIEFFECT、DICONSTANTFORCE、DIRAMPFORCE、DIPERIODIC、DICONDITION、DICUSTOMFORCE、DIENVELOPE 構造体の詳細については、DirectX SDK の DirectInput セクションを参照してください。

要件

要件
Header dinputd.h