Das Anforderungsobjekt

[Microsoft Agent ist ab Windows 7 veraltet und in nachfolgenden Versionen von Windows möglicherweise nicht verfügbar.]

Der Server verarbeitet einige Methoden asynchron. Dadurch kann Der Anwendungscode fortgesetzt werden, während die Methode abgeschlossen ist. Wenn eine Clientanwendung eine dieser Methoden aufruft, erstellt und gibt das Steuerelement ein Request-Objekt für die Anforderung zurück. Sie können das Request-Objekt verwenden, um die status der -Methode nachzuverfolgen, indem Sie der -Methode eine Objektvariable zuweisen. Deklarieren Sie in Visual Basic zunächst eine Objektvariable:

   Dim MyRequest as Object

In VBScript schließen Sie den Variablentyp nicht in Ihre Deklaration ein:

   Dim MyRequest

Verwenden Sie die Set-Anweisung von Visual Basic, um die Variable dem Methodenaufruf zuzuweisen:

   Set MyRequest = <i>agent</i>.Characters("<i>CharacterID</i>").<i>method</i> (<i>parameter</i>[s])

Dadurch wird ein Verweis auf das Request-Objekt hinzugefügt. Das Request-Objekt wird zerstört, wenn keine Verweise mehr darauf vorhanden sind. Wo Sie das Request-Objekt deklarieren und wie Sie es verwenden, bestimmt seine Lebensdauer. Wenn das Objekt lokal für eine Unterroutine oder Funktion deklariert wird, wird es zerstört, wenn es aus dem Bereich herausgeht. das heißt, wenn die Unterroutine oder Funktion endet. Wenn das Objekt global deklariert wird, wird es erst zerstört, wenn entweder das Programm beendet oder ein neuer Wert (oder ein Wert, der auf "leer" festgelegt ist) dem Objekt zugewiesen wird.

Das Request-Objekt stellt mehrere Eigenschaften bereit, die Sie abfragen können. Die Status-Eigenschaft gibt beispielsweise den aktuellen status der Anforderung zurück. Sie können diese Eigenschaft verwenden, um die status Ihrer Anforderung zu überprüfen:

   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

Die Status-Eigenschaft gibt den status eines Request-Objekts als ganzzahligen Long-Wert zurück.

Status Definition
0 Die Anforderung wurde erfolgreich abgeschlossen.
1 Anforderung fehlgeschlagen.
2 Anforderung ausstehend (in der Warteschlange, aber nicht abgeschlossen).
3 Anforderung unterbrochen.
4 Die Anforderung wird ausgeführt.

 

Das Request-Objekt enthält auch einen ganzzahligen Long-Wert in der Number-Eigenschaft , der den Fehler oder die Ursache des Statuscodes zurückgibt. Wenn keine, ist dieser Wert null (0). Die Description-Eigenschaft enthält einen Zeichenfolgenwert, der der Fehlernummer entspricht. Wenn die Zeichenfolge nicht vorhanden ist, enthält die Beschreibung "Anwendungsdefinierter oder objektdefinierter Fehler".

Die werte und bedeutung, die von der Number-Eigenschaft zurückgegeben werden, finden Sie unter Fehlercodes.

Der Server platziert Animationsanforderungen in der Warteschlange des angegebenen Zeichens. Dadurch kann der Server die Animation in einem separaten Thread wiedergeben, und der Code Ihrer Anwendung kann fortgesetzt werden, während Animationen wiedergegeben werden. Wenn Sie einen Request-Objektverweis erstellen, benachrichtigt Sie der Server automatisch, wenn eine Animationsanforderung über die Ereignisse RequestStart und RequestComplete gestartet oder abgeschlossen wurde. Da Methoden, die Request-Objekte zurückgeben, asynchron sind und während des Bereichs der aufrufenden Funktion möglicherweise nicht abgeschlossen sind, deklarieren Sie Ihren Verweis auf das Request-Objekt global.

Die folgenden Methoden können verwendet werden, um ein Request-Objekt zurückzugeben: GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak und Wait.