IDirectInputEffectDriver::D ownloadEffect 方法 (dinputd.h)

IDirectInputEffectDriver::D ownloadEffect 方法将效果发送到设备。

语法

HRESULT DownloadEffect(
  DWORD       unnamedParam1,
  DWORD       unnamedParam2,
  LPDWORD     unnamedParam3,
  LPCDIEFFECT unnamedParam4,
  DWORD       unnamedParam5
);

参数

unnamedParam1

指定要寻址的外部游戏杆编号。

unnamedParam2

指定与应用程序尝试创建的效果关联的 DIEFFECTATTRIBUTES 结构的 dwEffectId 成员。 DIEFFECTATTRIBUTES 结构存储在注册表中的相应效果注册表项下,可以是任何 32 位值。 DirectInput 将 32 位值传递给驱动程序,无需解释。

unnamedParam3

在输入时,此参数是指向正在下载的效果句柄的指针。 如果此参数指向零,则下载新效果。 退出时,此参数是指向包含新效果句柄的 DWORD 的指针。 失败时,如果效果丢失,则此参数指向的 DWORD 设置为零;如果效果仍然有效,则将其旧参数保留为单独。 请注意,零从来不是有效的效果句柄。

unnamedParam4

指向描述新效果的 DIEFFECT 结构。 轴和按钮值已转换为对象标识符,其中包括:

一种类型说明符:

DIDFT_RELAXIS
DIDFT_ABSAXIS
DIDFT_PSHBUTTON
DIDFT_TGLBUTTON
DIDFT_POV

一个实例标识符:

DIDFT_MAKEINSTANCE (n)

对象标识符中的其他位是保留的,应忽略。

例如,0x02000104 = DIDFT_PSHBUTTON |DIDFT_MAKEINSTANCE (1) |其他内容

此值指示效果使用按钮 1。

unnamedParam5

指定效果信息的哪些部分已从已应用于设备的效果更改。 此信息将传递给驱动程序,以允许优化效果修改。 如果正在修改效果,驱动程序可能能够更新其原始位置的效果,并仅将已更改的信息传输到设备。 但是,实现此优化不需要驱动程序。 peff 参数指向的 DIEFFECT 结构中的所有成员都是有效的,驱动程序可以选择在每次下载时仅更新效果的所有参数。 (有关 DIEFFECT 结构的信息,请参阅独立 DirectX SDK 的 DirectInput 部分 )

此参数可以是零、一个或多个以下参数:

DIEP_DURATION

指示 DIEFFECT 结构的 dwDuration 成员是第一次下载或自上次下载以来已更改。

DIEP_SAMPLEPERIOD

指示 DIEFFECT 结构的 dwSamplePeriod 成员是第一次下载或自上次下载以来已更改。

DIEP_GAIN

指示 DIEFFECT 结构的 dwGain 成员是第一次下载或自上次下载以来已更改。

DIEP_TRIGGERBUTTON

指示 DIEFFECT 结构的 dwTriggerButton 成员是第一次下载或自上次下载以来已更改。

DIEP_TRIGGERREPEATINTERVAL

指示 DIEFFECT 结构的 dwTriggerRepeatInterval 成员是第一次下载或自上次下载以来已更改。

DIEP_AXES

指示 DIEFFECT 结构的 cAxesrgdwAxes 成员是第一次下载或自上次下载以来已更改。

DIEP_DIRECTION

指示 DIEFFECT 结构的 cAxesrglDirection 成员是第一次下载或自上次下载以来已更改。 (DIEFFECT 结构的 dwFlags 成员通过DIEFF_CARTESIAN或DIEFF_POLAR指定应在其中解释值的坐标系。)

DIEP_ENVELOPE

指示 DIEFFECT 结构的 lpEnvelope 成员是首次下载的,或者自上次下载以来已更改。 如果设置了此标志,并且 lpEnvelope 成员为 NULL 指针,则创建效果时不带信封,或者正在删除现有信封。

DIEP_TYPESPECIFICPARAMS

指示 DIEFFECT 结构的 cbTypeSpecificParamslpTypeSpecificParams 成员是第一次下载或自上次下载以来已更改。

DIEP_START

指示在更新效果的参数后,将从头开始重启效果。 请注意,DIEP_NODOWNLOAD标志将替代DIEP_START标志。

DIEP_NORESTART

如果未指定此标志,则允许效果设备驱动程序重启效果(如果这样做是更改指定参数所必需的)。 请注意,DIEP_NODOWNLOAD和DIEP_START标志将替代此标志。

DIEP_NODOWNLOAD

禁止在更新参数后通常执行的自动下载。 如果设置了此标志,驱动程序应验证参数而不执行实际下载。

返回值

如果成功,则返回 S_OK,否则返回错误值。

要求

   
目标平台 桌面
标头 dinputd.h (包括 Dinputd.h)