Dela via


Begärandeobjektet

[Microsoft Agent är inaktuell från och med Windows 7 och kan vara otillgänglig i efterföljande versioner av Windows.]

Servern bearbetar vissa metoder asynkront. På så sätt kan programkoden fortsätta medan metoden slutförs. När ett klientprogram anropar någon av dessa metoder skapar och returnerar kontrollen ett Request-objekt för begäran. Du kan använda objektet Request för att spåra metodens status genom att tilldela en objektvariabel till metoden. Deklarera först en objektvariabel i Visual Basic:

   Dim MyRequest as Object

I VBScript inkluderar du inte variabeltypen i deklarationen:

   Dim MyRequest

Och använd Visual Basics Set-instruktion för att tilldela variabeln till metodanropet:

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

Detta lägger till en referens till objektet Request. Objektet Request kommer att förstöras när det inte finns några fler referenser till det. Där du deklarerar objektet Request och hur du använder det avgör dess livslängd. Om objektet deklareras lokalt för en underrutin eller funktion förstörs det när det hamnar utanför omfånget. det vill: när subrutinen eller funktionen slutar. Om objektet deklareras globalt förstörs det inte förrän antingen programmet avslutas eller ett nytt värde (eller ett värde som är inställt på "tom") har tilldelats objektet.

Objektet Request innehåller flera egenskaper som du kan fråga efter. Egenskapen Status returnerar till exempel den aktuella statusen för begäran. Du kan använda den här egenskapen för att kontrollera statusen för din begäran:

   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

Egenskapen Status returnerar statusen för ett Request-objekt som ett långt heltalsvärde.

Status Definition
0 Begäran har slutförts.
1 Begäran misslyckades.
2 Väntande begäran (i kön, men inte slutförd).
3 Begäran avbröts.
4 Begäran pågår.

 

Objektet Request innehåller också ett långt heltalsvärde i egenskapen Number som returnerar felet eller orsaken till statuskoden . Om inget är det här värdet noll (0). Egenskapen Description innehåller ett strängvärde som motsvarar felnumret. Om strängen inte finns innehåller Beskrivning "Programdefinierat eller objektdefinierat fel".

De värden och den betydelse som returneras av egenskapen Number finns i Felkoder.

Servern placerar animeringsbegäranden i det angivna tecknets kö. På så sätt kan servern spela upp animeringen i en separat tråd, och programmets kod kan fortsätta medan animeringar spelas upp. Om du skapar en Begäran objektreferens meddelar servern dig automatiskt när en animeringsbegäran har startats eller slutförts via RequestStart och RequestComplete händelser. Eftersom metoder som returnerar Request-objekt är asynkrona och kanske inte slutförs under omfånget för den anropande funktionen deklarerar du din referens till objektet Request globalt.

Följande metoder kan användas för att returnera ett request-objekt: GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak, , och Vänta.