IDirectInputEffectDriver::D ownloadEffect, méthode (dinputd.h)
La méthode IDirectInputEffectDriver::D ownloadEffect envoie un effet à l’appareil.
Syntaxe
HRESULT DownloadEffect(
DWORD unnamedParam1,
DWORD unnamedParam2,
LPDWORD unnamedParam3,
LPCDIEFFECT unnamedParam4,
DWORD unnamedParam5
);
Paramètres
unnamedParam1
Spécifie le numéro de la manette de jeu externe en cours d’adresse.
unnamedParam2
Spécifie le membre dwEffectId de la structure DIEFFECTATTRIBUTES associée à l’effet que l’application tente de créer. La structure DIEFFECTATTRIBUTES est stockée dans le Registre sous la clé de Registre d’effet correspondante et peut être n’importe quelle valeur 32 bits. DirectInput transmet la valeur 32 bits au pilote sans interprétation.
unnamedParam3
Lors de l’entrée, ce paramètre est un pointeur vers le handle de l’effet téléchargé. Si ce paramètre pointe vers un zéro, un nouvel effet est téléchargé. À la sortie, ce paramètre est un pointeur vers un DWORD qui contient le nouveau handle d’effet. En cas d’échec, le DWORD pointé par ce paramètre est défini sur zéro si l’effet est perdu, ou laissé seul si l’effet est toujours valide avec ses anciens paramètres. Notez que zéro n’est jamais un handle d’effet valide.
unnamedParam4
Pointe vers une structure DIEFFECT qui décrit le nouvel effet. Les valeurs de l’axe et du bouton ont été converties en identificateurs d’objet, qui se composent des éléments suivants :
Spécificateur d’un type :
DIDFT_RELAXIS
DIDFT_ABSAXIS
DIDFT_PSHBUTTON
DIDFT_TGLBUTTON
DIDFT_POV
Un identificateur instance :
DIDFT_MAKEINSTANCE(n)
Les autres bits de l’identificateur d’objet sont réservés et doivent être ignorés.
Par exemple, 0x02000104 = DIDFT_PSHBUTTON | DIDFT_MAKEINSTANCE(1) | autres choses
Cette valeur indique que l’effet utilise le bouton 1.
unnamedParam5
Spécifie les parties des informations d’effet qui ont changé par rapport à l’effet déjà appliqué à l’appareil. Ces informations sont transmises aux pilotes pour permettre l’optimisation de la modification d’effet. Si un effet est en cours de modification, un pilote peut être en mesure de mettre à jour l’effet dans sa position d’origine et de transmettre à l’appareil uniquement les informations qui ont changé. Toutefois, les pilotes ne sont pas nécessaires pour implémenter cette optimisation. Tous les membres de la structure DIEFFECT pointés par le paramètre peff sont valides, et un pilote peut choisir simplement de mettre à jour tous les paramètres de l’effet à chaque téléchargement. (Pour plus d’informations sur la structure DIEFFECT, consultez la section DirectInput du Kit de développement logiciel (SDK) DirectX autonome.)
Ce paramètre peut être égal à zéro, un ou plusieurs des éléments suivants :
DIEP_DURATION
Indique que le membre dwDuration de la structure DIEFFECT est en cours de téléchargement pour la première fois ou a changé depuis son dernier téléchargement.
DIEP_SAMPLEPERIOD
Indique que le membre dwSamplePeriod de la structure DIEFFECT est en cours de téléchargement pour la première fois ou a changé depuis son dernier téléchargement.
DIEP_GAIN
Indique que le membre dwGain de la structure DIEFFECT est en cours de téléchargement pour la première fois ou a changé depuis son dernier téléchargement.
DIEP_TRIGGERBUTTON
Indique que le membre dwTriggerButton de la structure DIEFFECT est en cours de téléchargement pour la première fois ou a changé depuis son dernier téléchargement.
DIEP_TRIGGERREPEATINTERVAL
Indique que le membre dwTriggerRepeatInterval de la structure DIEFFECT est en cours de téléchargement pour la première fois ou a changé depuis son dernier téléchargement.
DIEP_AXES
Indique que les membres cAxes et rgdwAxes de la structure DIEFFECT sont en cours de téléchargement pour la première fois ou ont changé depuis leur dernier téléchargement.
DIEP_DIRECTION
Indique que les membres cAxes et rglDirection de la structure DIEFFECT sont en cours de téléchargement pour la première fois ou ont changé depuis leur dernier téléchargement. (Le membre dwFlags de la structure DIEFFECT spécifie, par DIEFF_CARTESIAN ou DIEFF_POLAR, le système de coordonnées dans lequel les valeurs doivent être interprétées.)
DIEP_ENVELOPE
Indique que le membre lpEnvelope de la structure DIEFFECT est en cours de téléchargement pour la première fois ou a changé depuis son dernier téléchargement. Si cet indicateur est défini et que le membre lpEnvelope est un pointeur NULL , l’effet est créé sans enveloppe ou l’enveloppe existante est supprimée.
DIEP_TYPESPECIFICPARAMS
Indique que les membres cbTypeSpecificParams et lpTypeSpecificParams de la structure DIEFFECT sont en cours de téléchargement pour la première fois ou ont changé depuis leur dernier téléchargement.
DIEP_START
Indique que l’effet doit être redémarré à partir du début après la mise à jour des paramètres de l’effet. Notez que l’indicateur DIEP_NODOWNLOAD remplace l’indicateur DIEP_START.
DIEP_NORESTART
Si cet indicateur n’est pas spécifié, le pilote de périphérique d’effet est autorisé à redémarrer l’effet si cela est nécessaire pour modifier les paramètres spécifiés. Notez que les indicateurs DIEP_NODOWNLOAD et DIEP_START remplacent cet indicateur.
DIEP_NODOWNLOAD
Supprime le téléchargement automatique qui est normalement effectué après la mise à jour des paramètres. Si cet indicateur est défini, le pilote doit valider les paramètres sans effectuer de téléchargement réel.
Valeur retournée
Retourne S_OK en cas de réussite, ou une valeur d’erreur dans le cas contraire.
Spécifications
Plateforme cible | Desktop (Expérience utilisateur) |
En-tête | dinputd.h (inclure Dinputd.h) |