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 结构的 cAxes 和 rgdwAxes 成员是第一次下载或自上次下载以来已更改。
DIEP_DIRECTION
指示 DIEFFECT 结构的 cAxes 和 rglDirection 成员是第一次下载或自上次下载以来已更改。 (DIEFFECT 结构的 dwFlags 成员通过DIEFF_CARTESIAN或DIEFF_POLAR指定应在其中解释值的坐标系。)
DIEP_ENVELOPE
指示 DIEFFECT 结构的 lpEnvelope 成员是首次下载的,或者自上次下载以来已更改。 如果设置了此标志,并且 lpEnvelope 成员为 NULL 指针,则创建效果时不带信封,或者正在删除现有信封。
DIEP_TYPESPECIFICPARAMS
指示 DIEFFECT 结构的 cbTypeSpecificParams 和 lpTypeSpecificParams 成员是第一次下载或自上次下载以来已更改。
DIEP_START
指示在更新效果的参数后,将从头开始重启效果。 请注意,DIEP_NODOWNLOAD标志将替代DIEP_START标志。
DIEP_NORESTART
如果未指定此标志,则允许效果设备驱动程序重启效果(如果这样做是更改指定参数所必需的)。 请注意,DIEP_NODOWNLOAD和DIEP_START标志将替代此标志。
DIEP_NODOWNLOAD
禁止在更新参数后通常执行的自动下载。 如果设置了此标志,驱动程序应验证参数而不执行实际下载。
返回值
如果成功,则返回 S_OK,否则返回错误值。
要求
目标平台 | 桌面 |
标头 | dinputd.h (包括 Dinputd.h) |