Compartir a través de


El objeto Request

[Microsoft Agent está en desuso a partir de Windows 7 y puede no estar disponible en versiones posteriores de Windows.

El servidor procesa algunos métodos de forma asincrónica. Esto permite que el código de la aplicación continúe mientras se completa el método. Cuando una aplicación cliente llama a uno de estos métodos, el control crea y devuelve un objeto Request para la solicitud. Puede usar el objeto Request para realizar un seguimiento del estado del método mediante la asignación de una variable de objeto al método . En Visual Basic, declare primero una variable de objeto:

   Dim MyRequest as Object

En VBScript, no se incluye el tipo de variable en la declaración:

   Dim MyRequest

Y use la instrucción Set de Visual Basic para asignar la variable a la llamada al método:

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

Esto agrega una referencia al objeto Request . El objeto Request se destruirá cuando no haya más referencias a él. Dónde declara el objeto Request y cómo se usa determina su duración. Si el objeto se declara local en una subrutina o función, se destruirá cuando salga del ámbito; es decir, cuando finaliza la subrutina o la función. Si el objeto se declara globalmente, no se destruirá hasta que el programa finalice o se asigne un nuevo valor (o un valor establecido en "vacío") al objeto.

El objeto Request proporciona varias propiedades que puede consultar. Por ejemplo, la propiedad Status devuelve el estado actual de la solicitud. Puede usar esta propiedad para comprobar el estado de la solicitud:

   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 propiedad Status devuelve el estado de un objeto Request como un valor entero Long.

Estado Definición
0 Solicitud completada correctamente.
1 Error en la solicitud.
2 Solicitud pendiente (en la cola, pero no completada).
3 Solicitud interrumpida.
4 Solicitud en curso.

 

El objeto Request también incluye un valor entero Long en la propiedad Number que devuelve el error o la causa del código Status . Si no es ninguno, este valor es cero (0). La propiedad Description contiene un valor de cadena que corresponde al número de error. Si la cadena no existe, Description contiene "Error definido por la aplicación o definido por objetos".

Para conocer los valores y el significado devueltos por la propiedad Number , vea Códigos de error.

El servidor coloca solicitudes de animación en la cola del carácter especificado. Esto permite al servidor reproducir la animación en un subproceso independiente y el código de la aplicación puede continuar mientras se reproducen las animaciones. Si crea una referencia de objeto Request , el servidor le notifica automáticamente cuando se ha iniciado o completado una solicitud de animación a través de los eventos RequestStart y RequestComplete . Dado que los métodos que devuelven objetos Request son asincrónicos y pueden no completarse durante el ámbito de la función de llamada, declare la referencia al objeto Request globalmente.

Los métodos siguientes se pueden usar para devolver un objeto Request : GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak y Wait.