Oggetto Request

[Microsoft Agent è deprecato a partire da Windows 7 e potrebbe non essere disponibile nelle versioni successive di Windows.]

Il server elabora alcuni metodi in modo asincrono. Ciò consente al codice dell'applicazione di continuare durante il completamento del metodo. Quando un'applicazione client chiama uno di questi metodi, il controllo crea e restituisce un oggetto Request per la richiesta. È possibile utilizzare l'oggetto Request per tenere traccia dello stato del metodo assegnando una variabile oggetto al metodo . In Visual Basic dichiarare prima una variabile oggetto:

   Dim MyRequest as Object

In VBScript non si include il tipo di variabile nella dichiarazione:

   Dim MyRequest

Usare l'istruzione Set di Visual Basic per assegnare la variabile alla chiamata al metodo:

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

In questo modo viene aggiunto un riferimento all'oggetto Request . L'oggetto Request verrà eliminato definitivamente quando non sono presenti altri riferimenti. Dove dichiari l'oggetto Request e il modo in cui lo usi determina la sua durata. Se l'oggetto viene dichiarato locale in una subroutine o una funzione, verrà eliminato definitivamente quando esce dall'ambito; ovvero quando termina la subroutine o la funzione. Se l'oggetto viene dichiarato a livello globale, non verrà eliminato definitivamente finché il programma termina o un nuovo valore (o un valore impostato su "vuoto") viene assegnato all'oggetto.

L'oggetto Request fornisce diverse proprietà su cui è possibile eseguire query. Ad esempio, la proprietà Status restituisce lo stato corrente della richiesta. È possibile usare questa proprietà per controllare lo stato della richiesta:

   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 proprietà Status restituisce lo stato di un oggetto Request come valore long integer.

Stato Definizione
0 Richiesta completata.
1 Richiesta non riuscita.
2 Richiesta in sospeso (nella coda, ma non completata).
3 Richiesta interrotta.
4 Richiesta in corso.

 

L'oggetto Request include anche un valore long integer nella proprietà Number che restituisce l'errore o la causa del codice di stato . Se nessuno, questo valore è zero (0). La proprietà Description contiene un valore stringa che corrisponde al numero di errore. Se la stringa non esiste, description contiene "Errore definito dall'applicazione o definito dall'oggetto".

Per i valori e il significato restituiti dalla proprietà Number , vedere Codici di errore.

Il server inserisce le richieste di animazione nella coda del carattere specificato. In questo modo il server può riprodurre l'animazione su un thread separato e il codice dell'applicazione può continuare durante la riproduzione delle animazioni. Se si crea un riferimento all'oggetto Request , il server invia automaticamente una notifica all'avvio o al completamento di una richiesta di animazione tramite gli eventi RequestStart e RequestComplete . Poiché i metodi che restituiscono oggetti Request sono asincroni e potrebbero non essere completati durante l'ambito della funzione chiamante, dichiarare il riferimento all'oggetto Request a livello globale.

I metodi seguenti possono essere usati per restituire un oggetto Request : GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak e Wait.