Метод IDirectInputEffectDriver::D ownloadEffect (dinputd.h)
Метод IDirectInputEffectDriver::D ownloadEffect отправляет эффект на устройство.
Синтаксис
HRESULT DownloadEffect(
DWORD unnamedParam1,
DWORD unnamedParam2,
LPDWORD unnamedParam3,
LPCDIEFFECT unnamedParam4,
DWORD unnamedParam5
);
Параметры
unnamedParam1
Указывает номер внешнего джойстика для обращения.
unnamedParam2
Указывает член dwEffectId структуры DIEFFECTATTRIBUTES , связанной с эффектом, который приложение пытается создать. Структура 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
Указывает, какие части сведений о эффекте были изменены по сравнению с уже примененным к устройству эффектом. Эти сведения передаются драйверам для оптимизации изменения эффекта. При изменении эффекта драйвер может обновить эффект в его исходном положении и передать устройству только измененные сведения. Однако для реализации этой оптимизации драйверы не требуются. Все элементы в структуре DIEFFECT, на которые указывает параметр peff , являются допустимыми, и драйвер может просто обновлять все параметры эффекта при каждой загрузке. (Сведения о структуре DIEFFECT см. в разделе DirectInput автономного пакета SDK для DirectX.)
Этот параметр может быть равен нулю, одному или нескольким из следующих значений:
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 загружаются впервые или изменяются с момента последнего скачивания. (Элемент dwFlags структуры DIEFFECT определяет систему координат, в которой следует интерпретировать значения, с помощью DIEFF_CARTESIAN или DIEFF_POLAR.)
DIEP_ENVELOPE
Указывает, что элемент lpEnvelope структуры DIEFFECT загружается впервые или изменился с момента последнего скачивания. Если этот флаг установлен и элемент lpEnvelope является указателем NULL , то эффект создается без конверта или удаляется существующий конверт.
DIEP_TYPESPECIFICPARAMS
Указывает, что элементы cbTypeSpecificParams и lpTypeSpecificParams структуры DIEFFECT загружаются впервые или изменяются с момента последнего скачивания.
DIEP_START
Указывает, что эффект должен быть перезапущен с самого начала после обновления параметров эффекта. Обратите внимание, что флаг DIEP_NODOWNLOAD переопределяет флаг DIEP_START.
DIEP_NORESTART
Если этот флаг не указан, драйвер устройства с эффектом может перезапустить эффект, если это необходимо для изменения указанных параметров. Обратите внимание, что флаги DIEP_NODOWNLOAD и DIEP_START переопределяют этот флаг.
DIEP_NODOWNLOAD
Подавляет автоматическую загрузку, которая обычно выполняется после обновления параметров. Если этот флаг установлен, драйвер должен проверить параметры, не выполняя фактическое скачивание.
Возвращаемое значение
Возвращает S_OK в случае успешного выполнения или значение ошибки в противном случае.
Требования
Целевая платформа | Персональный компьютер |
Верхняя часть | dinputd.h (включая Dinputd.h) |