Objet Request
[Microsoft Agent est déconseillé à partir de Windows 7 et peut être indisponible dans les versions ultérieures de Windows.]
Le serveur traite certaines méthodes de manière asynchrone. Cela permet à votre code d’application de continuer pendant que la méthode est terminée. Lorsqu’une application cliente appelle l’une de ces méthodes, le contrôle crée et retourne un objet Request pour la requête. Vous pouvez utiliser l’objet Request pour suivre les status de la méthode en affectant une variable objet à la méthode. En Visual Basic, déclarez d’abord une variable objet :
Dim MyRequest as Object
Dans VBScript, vous n’incluez pas le type de variable dans votre déclaration :
Dim MyRequest
Et utilisez l’instruction Set de Visual Basic pour affecter la variable à l’appel de méthode :
Set MyRequest = <i>agent</i>.Characters("<i>CharacterID</i>").<i>method</i> (<i>parameter</i>[s])
Cela ajoute une référence à l’objet Request . L’objet Request est détruit lorsqu’il n’y a plus de références à celui-ci. L’emplacement où vous déclarez l’objet Request et la façon dont vous l’utilisez déterminent sa durée de vie. Si l’objet est déclaré local dans une sous-routine ou une fonction, il est détruit lorsqu’il sort de l’étendue ; autrement dit, lorsque la sous-routine ou la fonction se termine. Si l’objet est déclaré globalement, il n’est pas détruit tant que le programme ne se termine pas ou qu’une nouvelle valeur (ou une valeur définie sur « vide ») n’est pas affectée à l’objet.
L’objet Request fournit plusieurs propriétés que vous pouvez interroger. Par exemple, la propriété Status retourne la status actuelle de la demande. Vous pouvez utiliser cette propriété pour case activée le status de votre demande :
Dim MyRequest
Set MyRequest = Agent1.Characters.Load ("Genie", "https://agent.microsoft.com/characters/v2/genie/genie.acf")
If (MyRequest.Status = 2) then
'do something
Else If (MyRequest.Status = 0) then
'do something right away
End If
La propriété Status retourne le status d’un objet Request sous la forme d’un entier long.
Statut | Définition |
---|---|
0 | La demande s’est terminée avec succès. |
1 | Échec de la requête. |
2 | Requête en attente (dans la file d’attente, mais non terminée). |
3 | Demande interrompue. |
4 | Demande en cours. |
L’objet Request inclut également une valeur entière long dans la propriété Number qui retourne l’erreur ou la cause du code d’état . Si aucun, cette valeur est égale à zéro (0). La propriété Description contient une valeur de chaîne qui correspond au numéro d’erreur. Si la chaîne n’existe pas, la description contient « Erreur définie par l’application ou définie par l’objet ».
Pour connaître les valeurs et la signification retournées par la propriété Number , consultez Codes d’erreur.
Le serveur place les demandes d’animation dans la file d’attente du caractère spécifié. Cela permet au serveur de lire l’animation sur un thread distinct, et le code de votre application peut continuer pendant la lecture des animations. Si vous créez une référence d’objet Request , le serveur vous avertit automatiquement lorsqu’une demande d’animation a démarré ou terminé via les événements RequestStart et RequestComplete . Étant donné que les méthodes qui retournent des objets Request sont asynchrones et peuvent ne pas se terminer pendant l’étendue de la fonction appelante, déclarez globalement votre référence à l’objet Request .
Les méthodes suivantes peuvent être utilisées pour renvoyer un objet Request : GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak et Wait.