IDirectInputEffectDriver::D ownloadEffect-Methode (dinputd.h)

Die IDirectInputEffectDriver::D ownloadEffect-Methode sendet einen Effekt an das Gerät.

Syntax

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

Parameter

unnamedParam1

Gibt die adressierte externe Joysticknummer an.

unnamedParam2

Gibt den dwEffectId-Member der DIEFFECTATTRIBUTES-Struktur an, die dem Effekt zugeordnet ist, den die Anwendung zu erstellen versucht. Die DIEFFECTATTRIBUTES-Struktur wird in der Registrierung unter dem entsprechenden Effektregistrierungsschlüssel gespeichert und kann ein beliebiger 32-Bit-Wert sein. DirectInput übergibt den 32-Bit-Wert ohne Interpretation an den Treiber.

unnamedParam3

Bei der Eingabe ist dieser Parameter ein Zeiger auf das Handle des heruntergeladenen Effekts. Wenn dieser Parameter auf eine Null zeigt, wird ein neuer Effekt heruntergeladen. Beim Beenden ist dieser Parameter ein Zeiger auf ein DWORD , das das neue Effekthandle enthält. Bei Einem Fehler wird das DWORD , auf das dieser Parameter verweist, auf Null festgelegt, wenn der Effekt verloren geht, oder allein gelassen, wenn der Effekt weiterhin mit seinen alten Parametern gültig ist. Beachten Sie, dass null nie ein gültiges Effekthandle ist.

unnamedParam4

Verweist auf eine DIEFFECT-Struktur, die den neuen Effekt beschreibt. Die Achsen- und Schaltflächenwerte wurden in Objektbezeichner konvertiert, die aus folgendem Bestehen bestehen:

Ein Typspezifizierer:

DIDFT_RELAXIS
DIDFT_ABSAXIS
DIDFT_PSHBUTTON
DIDFT_TGLBUTTON
DIDFT_POV

Ein instance Bezeichner:

DIDFT_MAKEINSTANCE(n)

Andere Bits im Objektbezeichner sind reserviert und sollten ignoriert werden.

Beispiel: 0x02000104 = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE(1) | Sonstiges

Dieser Wert gibt an, dass der Effekt Schaltfläche 1 verwendet.

unnamedParam5

Gibt an, welche Teile der Effektinformationen gegenüber dem Effekt geändert wurden, der bereits auf das Gerät angewendet wurde. Diese Informationen werden an Treiber übergeben, um die Optimierung der Effektänderung zu ermöglichen. Wenn ein Effekt geändert wird, kann ein Treiber möglicherweise den Effekt an seiner ursprünglichen Position aktualisieren und nur die geänderten Informationen an das Gerät übertragen. Treiber sind jedoch nicht erforderlich, um diese Optimierung zu implementieren. Alle Member in der DIEFFECT-Struktur, auf die der peff-Parameter verweist, sind gültig, und ein Treiber kann einfach alle Parameter des Effekts bei jedem Download aktualisieren. (Informationen zur DIEFFECT-Struktur finden Sie im Abschnitt DirectInput des eigenständigen DirectX SDK.)

Dieser Parameter kann null, ein oder mehrere der folgenden Parameter sein:

DIEP_DURATION

Gibt an, dass der dwDuration-Member der DIEFFECT-Struktur zum ersten Mal heruntergeladen wird oder sich seit dem letzten Download geändert hat.

DIEP_SAMPLEPERIOD

Gibt an, dass das dwSamplePeriod-Element der DIEFFECT-Struktur zum ersten Mal heruntergeladen wird oder sich seit dem letzten Download geändert hat.

DIEP_GAIN

Gibt an, dass das dwGain-Element der DIEFFECT-Struktur zum ersten Mal heruntergeladen wird oder sich seit dem letzten Download geändert hat.

DIEP_TRIGGERBUTTON

Gibt an, dass das dwTriggerButton-Element der DIEFFECT-Struktur zum ersten Mal heruntergeladen wird oder sich seit dem letzten Download geändert hat.

DIEP_TRIGGERREPEATINTERVAL

Gibt an, dass das dwTriggerRepeatInterval-Element der DIEFFECT-Struktur zum ersten Mal heruntergeladen wird oder sich seit dem letzten Download geändert hat.

DIEP_AXES

Gibt an, dass die cAxes - und rgdwAxes-Member der DIEFFECT-Struktur zum ersten Mal heruntergeladen werden oder sich seit dem letzten Download geändert haben.

DIEP_DIRECTION

Gibt an, dass die cAxes - und rglDirection-Member der DIEFFECT-Struktur zum ersten Mal heruntergeladen werden oder sich seit dem letzten Download geändert haben. (Der dwFlags-Member der DIEFFECT-Struktur gibt über DIEFF_CARTESIAN oder DIEFF_POLAR das Koordinatensystem an, in dem die Werte interpretiert werden sollen.)

DIEP_ENVELOPE

Gibt an, dass das lpEnvelope-Element der DIEFFECT-Struktur zum ersten Mal heruntergeladen wird oder sich seit dem letzten Download geändert hat. Wenn dieses Flag festgelegt ist und der lpEnvelope-Member ein NULL-Zeiger ist, wird der Effekt ohne Umschlag erstellt oder der vorhandene Umschlag gelöscht.

DIEP_TYPESPECIFICPARAMS

Gibt an, dass die Member cbTypeSpecificParams und lpTypeSpecificParams der DIEFFECT-Struktur zum ersten Mal heruntergeladen werden oder sich seit dem letzten Download geändert haben.

DIEP_START

Gibt an, dass der Effekt von Anfang an neu gestartet werden soll, nachdem die Parameter des Effekts aktualisiert wurden. Beachten Sie, dass das DIEP_NODOWNLOAD-Flag das DIEP_START-Flag überschreibt.

DIEP_NORESTART

Wenn dieses Flag nicht angegeben ist, kann der Effektgerätetreiber den Effekt neu starten, wenn dies erforderlich ist, um die angegebenen Parameter zu ändern. Beachten Sie, dass die flags DIEP_NODOWNLOAD und DIEP_START dieses Flag überschreiben.

DIEP_NODOWNLOAD

Unterdrückt den automatischen Download, der normalerweise nach dem Aktualisieren der Parameter ausgeführt wird. Wenn dieses Flag festgelegt ist, sollte der Treiber Parameter überprüfen, ohne einen tatsächlichen Download durchzuführen.

Rückgabewert

Gibt bei erfolgreicher Ausführung S_OK oder andernfalls einen Fehlerwert zurück.

Anforderungen

   
Zielplattform Desktop
Kopfzeile dinputd.h (include Dinputd.h)