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) |