Поделиться через


Объект запроса

[Microsoft Agent является нерекомендуемым начиная с Windows 7 и может быть недоступен в последующих версиях Windows.]

Сервер обрабатывает некоторые методы асинхронно. Это позволит коду приложения продолжить работу во время завершения метода. Когда клиентское приложение вызывает один из этих методов, элемент управления создает и возвращает объект Request для запроса. Объект Request можно использовать для отслеживания состояния метода, назначив объектную переменную методу. В Visual Basic сначала объявите объектную переменную:

   Dim MyRequest as Object

В VBScript тип переменной не включается в объявление:

   Dim MyRequest

Используйте оператор Set в Visual Basic, чтобы присвоить переменную вызову метода:

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

При этом добавляется ссылка на объект Request . Объект Request будет уничтожен, если на него больше нет ссылок. Место объявления объекта Request и способ его использования определяет его время существования. Если объект объявлен локальным для подпрограммы или функции, он будет уничтожен при выходе из область, то есть при завершении подпрограммы или функции. Если объект объявлен глобально, он не будет уничтожен, пока программа не завершит работу или не будет присвоено новое значение (или значение " empty").

Объект Request предоставляет несколько свойств, которые можно запрашивать. Например, свойство Status возвращает текущее состояние запроса. Это свойство можно использовать для проверка состояния запроса:

   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

Свойство Status возвращает состояние объекта Request в виде целочисленного значения Long.

Состояние Определение
0 Запрос успешно завершен.
1 Сбой запроса.
2 Запрос находится в состоянии ожидания (в очереди, но не завершен).
3 Запрос прерван.
4 Выполняется запрос.

 

Объект Request также содержит целочисленное значение Long в свойстве Number , которое возвращает ошибку или причину кода состояния . Если значение отсутствует, это значение равно нулю (0). Свойство Description содержит строковое значение, соответствующее номеру ошибки. Если строка не существует, описание содержит "Ошибка, определяемая приложением или объектом".

Значения и значения, возвращаемые свойством Number , см. в разделе Коды ошибок.

Сервер помещает запросы анимации в очередь указанного символа. Это позволяет серверу воспроизводить анимацию в отдельном потоке, и код приложения может продолжаться во время воспроизведения анимации. При создании ссылки на объект Request сервер автоматически уведомляет вас о запуске или завершении запроса анимации с помощью событий RequestStart и RequestComplete . Так как методы, возвращающие объекты Request, являются асинхронными и могут не завершиться во время область вызывающей функции, объявите ссылку на объект Request глобально.

Для возврата объекта Запроса можно использовать следующие методы: GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak и Wait.