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