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 結構的數位, (每個軸的一個 DICONDITION 結構或每個軸一個 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 成員也可以包含描述效果功能的零、一或多個下列旗標:

DIEFT_FFATTACK

此效果的效果產生器支援攻擊信封參數。 如果效果產生器不支援攻擊,效果會忽略 DIENVELOPE 結構的攻擊層級和攻擊時間參數。

DIEFT_FFFADE

這個效果的效果產生器支援淡出參數。 如果效果產生器不支援淡化,效果會忽略 DIENVELOPE 結構的淡出層級和淡出時間參數。 如果未設定DIEFT_FFATTACK或DIEFT_FFFADE,則效果不支援信封,而且會忽略任何提供的信封。

DIEFT_SATURATION

此效果的效果產生器支援條件效果的飽和度。 如果效果產生器不支持飽和度,則條件所產生的強制只會受限於裝置可以產生的最大強制。

DIEFT_POSNEGCOEFFICIENTS

此效果的效果產生器支援條件的兩個係數值:一個用於座標軸的正位移,另一個用於座標軸的負位移。 如果裝置不支援這兩個係數,則會忽略 DICONDITION 結構中的負係數,並雙向使用正係數。

DIEFT_POSNEGSATURATION

效果的效果產生器支援正面和負強制輸出的最大飽和度。 如果裝置不支援這兩個飽和度值,則會忽略 DICONDITION 結構中的負飽和度,並雙向使用正飽和度。

dwStaticParams

描述效果所支持的參數。 例如,如果已設定DIEP_ENVELOPE,效果就會支援信封。 所有效果都應該至少支援DIEP_DURATION、DIEP_AXES和DIEP_TYPESPECIFICPARAMS。 應用程式嘗試使用裝置不支援的效果參數不是錯誤。 不支援的參數只會被忽略。 此值可以是零、一或多個下列旗標:

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

一或多個座標系統旗標 (DIEFF_CARTESIAN、DIEFF_POLAR,DIEFF_SPHERICAL) 指出效果支持哪些坐标系统。 至少必須支援一個座標系統。 如果應用程式嘗試在不支援的座標系統中設定方向,DirectInput 會自動將它轉換成裝置所支援的座標系統。

備註

如需 DIEFFECT、DICONSTANTFORCE、DIRAMPFORCE、DIPERIODIC、DICONDITION、DICUSTOMFORCE 和 DIENVELOPE 結構的相關信息,請參閱 DirectX SDK 的 DirectInput 一節。

規格需求

需求
標頭 dinputd.h