Share via


Método IDirectInputEffectDriver::D ownloadEffect (dinputd.h)

El método IDirectInputEffectDriver::D ownloadEffect envía un efecto al dispositivo.

Sintaxis

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

Parámetros

unnamedParam1

Especifica el número de joystick externo que se va a abordar.

unnamedParam2

Especifica el miembro dwEffectId de la estructura DIEFFECTATTRIBUTES asociada al efecto que la aplicación está intentando crear. La estructura DIEFFECTATTRIBUTES se almacena en el Registro bajo la clave del Registro de efectos correspondiente y puede ser cualquier valor de 32 bits. DirectInput pasa el valor de 32 bits al controlador sin interpretación.

unnamedParam3

En la entrada, este parámetro es un puntero al identificador del efecto que se va a descargar. Si este parámetro apunta a cero, se descarga un nuevo efecto. Al salir, este parámetro es un puntero a un DWORD que contiene el nuevo identificador de efecto. En caso de error, el DWORD al que apunta este parámetro se establece en cero si se pierde el efecto o se deja solo si el efecto sigue siendo válido con sus parámetros antiguos. Tenga en cuenta que cero nunca es un identificador de efecto válido.

unnamedParam4

Apunta a una estructura DIEFFECT que describe el nuevo efecto. Los valores de eje y botón se han convertido en identificadores de objeto, que constan de lo siguiente:

Un especificador de tipo:

DIDFT_RELAXIS
DIDFT_ABSAXIS
DIDFT_PSHBUTTON
DIDFT_TGLBUTTON
DIDFT_POV

Un identificador de instancia:

DIDFT_MAKEINSTANCE(n)

Otros bits del identificador de objeto están reservados y deben omitirse.

Por ejemplo, 0x02000104 = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE(1) | otras cosas

Este valor indica que el efecto usa el botón 1.

unnamedParam5

Especifica qué partes de la información del efecto han cambiado del efecto que ya se ha aplicado al dispositivo. Esta información se pasa a los controladores para permitir la optimización de la modificación del efecto. Si se modifica un efecto, es posible que un controlador pueda actualizar el efecto en su posición original y transmitir al dispositivo solo la información que ha cambiado. Sin embargo, los controladores no son necesarios para implementar esta optimización. Todos los miembros de la estructura DIEFFECT a los que apunta el parámetro peff son válidos y un controlador puede elegir simplemente actualizar todos los parámetros del efecto en cada descarga. (Para obtener información sobre la estructura DIEFFECT, consulte la sección DirectInput del SDK independiente de DirectX).

Este parámetro puede ser cero, uno o varios de los siguientes:

DIEP_DURATION

Indica que el miembro dwDuration de la estructura DIEFFECT se está descargando por primera vez o ha cambiado desde su última descarga.

DIEP_SAMPLEPERIOD

Indica que el miembro dwSamplePeriod de la estructura DIEFFECT se está descargando por primera vez o ha cambiado desde su última descarga.

DIEP_GAIN

Indica que el miembro dwGain de la estructura DIEFFECT se está descargando por primera vez o ha cambiado desde su última descarga.

DIEP_TRIGGERBUTTON

Indica que el miembro dwTriggerButton de la estructura DIEFFECT se está descargando por primera vez o ha cambiado desde su última descarga.

DIEP_TRIGGERREPEATINTERVAL

Indica que el miembro dwTriggerRepeatInterval de la estructura DIEFFECT se está descargando por primera vez o ha cambiado desde su última descarga.

DIEP_AXES

Indica que los miembros cAxes y rgdwAxes de la estructura DIEFFECT se descargan por primera vez o han cambiado desde su última descarga.

DIEP_DIRECTION

Indica que los miembros cAxes y rglDirection de la estructura DIEFFECT se descargan por primera vez o han cambiado desde su última descarga. (El miembro dwFlags de la estructura DIEFFECT especifica, mediante DIEFF_CARTESIAN o DIEFF_POLAR, el sistema de coordenadas en el que se deben interpretar los valores).

DIEP_ENVELOPE

Indica que el miembro lpEnvelope de la estructura DIEFFECT se está descargando por primera vez o ha cambiado desde su última descarga. Si se establece esta marca y el miembro lpEnvelope es un puntero NULL , el efecto se crea sin sobre o se elimina el sobre existente.

DIEP_TYPESPECIFICPARAMS

Indica que los miembros cbTypeSpecificParams y lpTypeSpecificParams de la estructura DIEFFECT se descargan por primera vez o han cambiado desde su última descarga.

DIEP_START

Indica que el efecto se va a reiniciar desde el principio después de actualizar los parámetros del efecto. Tenga en cuenta que la marca DIEP_NODOWNLOAD invalida la marca DIEP_START.

DIEP_NORESTART

Si no se especifica esta marca, se permite que el controlador de dispositivo de efecto reinicie el efecto si es necesario cambiar los parámetros especificados. Tenga en cuenta que las marcas DIEP_NODOWNLOAD y DIEP_START invalidan esta marca.

DIEP_NODOWNLOAD

Suprime la descarga automática que se realiza normalmente después de actualizar los parámetros. Si se establece esta marca, el controlador debe validar los parámetros sin realizar una descarga real.

Valor devuelto

Devuelve S_OK si se realiza correctamente; de lo contrario, un valor de error.

Requisitos

   
Plataforma de destino Escritorio
Encabezado dinputd.h (incluya Dinputd.h)