Condividi tramite


Metodo IDirectInputEffectDriver::D ownloadEffect (dinputd.h)

Il metodo IDirectInputEffectDriver::D ownloadEffect invia un effetto al dispositivo.

Sintassi

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

Parametri

unnamedParam1

Specifica il numero di joystick esterno da indirizzare.

unnamedParam2

Specifica il membro dwEffectId della struttura DIEFFECTATTRIBUTES associata all'effetto che l'applicazione sta tentando di creare. La struttura DIEFFECTATTRIBUTES viene archiviata nel Registro di sistema con la chiave del Registro di sistema dell'effetto corrispondente e può essere qualsiasi valore a 32 bit. DirectInput passa il valore a 32 bit al driver senza interpretazione.

unnamedParam3

Nella voce, questo parametro è un puntatore all'handle dell'effetto da scaricare. Se questo parametro punta a zero, viene scaricato un nuovo effetto. All'uscita, questo parametro è un puntatore a un DWORD che contiene il nuovo handle di effetto. In caso di errore, la DWORD a cui punta questo parametro è impostata su zero se l'effetto viene perso o lasciato solo se l'effetto è ancora valido con i relativi parametri precedenti. Si noti che zero non è mai un handle di effetto valido.

unnamedParam4

Punta a una struttura DIEFFECT che descrive il nuovo effetto. I valori dell'asse e del pulsante sono stati convertiti in identificatori di oggetto, costituiti dai seguenti elementi:

Identificatore di tipo:

DIDFT_RELAXIS
DIDFT_ABSAXIS
DIDFT_PSHBUTTON
DIDFT_TGLBUTTON
DIDFT_POV

Un identificatore di istanza:

DIDFT_MAKEINSTANCE(n)

Gli altri bit nell'identificatore dell'oggetto sono riservati e devono essere ignorati.

Ad esempio, 0x02000104 = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE(1) | altre cose

Questo valore indica che l'effetto usa il pulsante 1.

unnamedParam5

Specifica quali parti delle informazioni sull'effetto sono state modificate rispetto all'effetto già applicato al dispositivo. Queste informazioni vengono passate ai driver per consentire l'ottimizzazione della modifica dell'effetto. Se viene modificato un effetto, un driver può aggiornare l'effetto nella posizione originale e trasmettere al dispositivo solo le informazioni modificate. I driver non sono tuttavia necessari per implementare questa ottimizzazione. Tutti i membri della struttura DIEFFECT a cui punta il parametro peff sono validi e un driver può scegliere semplicemente di aggiornare tutti i parametri dell'effetto a ogni download. Per informazioni sulla struttura DIEFFECT, vedere la sezione DirectInput dell'SDK DirectX autonomo.

Questo parametro può essere zero, uno o più dei seguenti:

DIEP_DURATION

Indica che il membro dwDuration della struttura DIEFFECT viene scaricato per la prima volta o è stato modificato dall'ultimo download.

DIEP_SAMPLEPERIOD

Indica che il membro dwSamplePeriod della struttura DIEFFECT viene scaricato per la prima volta o è stato modificato dall'ultimo download.

DIEP_GAIN

Indica che il membro dwGain della struttura DIEFFECT viene scaricato per la prima volta o è stato modificato dall'ultimo download.

DIEP_TRIGGERBUTTON

Indica che il membro dwTriggerButton della struttura DIEFFECT viene scaricato per la prima volta o è stato modificato dopo l'ultimo download.

DIEP_TRIGGERREPEATINTERVAL

Indica che il membro dwTriggerRepeatInterval della struttura DIEFFECT viene scaricato per la prima volta o è stato modificato dall'ultimo download.

DIEP_AXES

Indica che i membri cAxes e rgdwAxes della struttura DIEFFECT vengono scaricati per la prima volta o sono stati modificati dall'ultimo download.

DIEP_DIRECTION

Indica che i membri cAxes e rglDirection della struttura DIEFFECT vengono scaricati per la prima volta o sono stati modificati dopo l'ultimo download. Il membro dwFlags della struttura DIEFFECT specifica, tramite DIEFF_CARTESIAN o DIEFF_POLAR, il sistema di coordinate in cui devono essere interpretati i valori.

DIEP_ENVELOPE

Indica che il membro lpEnvelope della struttura DIEFFECT viene scaricato per la prima volta o è stato modificato dopo l'ultimo download. Se questo flag è impostato e il membro lpEnvelope è un puntatore NULL , l'effetto viene creato senza busta o la busta esistente viene eliminata.

DIEP_TYPESPECIFICPARAMS

Indica che i membri cbTypeSpecificParams e lpTypeSpecificParams della struttura DIEFFECT vengono scaricati per la prima volta o sono stati modificati dopo l'ultimo download.

DIEP_START

Indica che l'effetto deve essere riavviato dall'inizio dopo l'aggiornamento dei parametri dell'effetto. Si noti che il flag DIEP_NODOWNLOAD esegue l'override del flag di DIEP_START.

DIEP_NORESTART

Se questo flag non viene specificato, è consentito riavviare l'effetto se necessario per modificare i parametri specificati. Si noti che i flag DIEP_NODOWNLOAD e DIEP_START sostituiscono questo flag.

DIEP_NODOWNLOAD

Elimina il download automatico che viene normalmente eseguito dopo l'aggiornamento dei parametri. Se questo flag è impostato, il driver deve convalidare i parametri senza eseguire un download effettivo.

Valore restituito

Restituisce S_OK in caso di esito positivo o un valore di errore in caso contrario.

Requisiti

   
Piattaforma di destinazione Desktop
Intestazione dinputd.h (include Dinputd.h)