Поделиться через


Метод 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)