O objeto Request
[O Microsoft Agent foi preterido a partir do Windows 7 e pode estar indisponível nas versões subsequentes do Windows.]
O servidor processa alguns métodos de forma assíncrona. Isso permite que o código do aplicativo continue enquanto o método está sendo concluído. Quando um aplicativo cliente chama um desses métodos, o controle cria e retorna um objeto Request para a solicitação. Você pode usar o objeto Request para acompanhar o status do método atribuindo uma variável de objeto ao método . No Visual Basic, primeiro declare uma variável de objeto:
Dim MyRequest as Object
No VBScript, você não inclui o tipo de variável em sua declaração:
Dim MyRequest
E use a instrução Set do Visual Basic para atribuir a variável à chamada de método:
Set MyRequest = <i>agent</i>.Characters("<i>CharacterID</i>").<i>method</i> (<i>parameter</i>[s])
Isso adiciona uma referência ao objeto Request . O objeto Request será destruído quando não houver mais referências a ele. Onde você declara o objeto Request e como usá-lo determina seu tempo de vida. Se o objeto for declarado local para uma sub-rotina ou função, ele será destruído quando sair do escopo; ou seja, quando a sub-rotina ou função termina. Se o objeto for declarado globalmente, ele não será destruído até que o programa seja encerrado ou um novo valor (ou um valor definido como "vazio") seja atribuído ao objeto.
O objeto Request fornece várias propriedades que você pode consultar. Por exemplo, a propriedade Status retorna o status atual da solicitação. Você pode usar essa propriedade para marcar o status de sua solicitação:
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
A propriedade Status retorna o status de um objeto Request como um valor inteiro Long.
Status | Definição |
---|---|
0 | Solicitação concluída com êxito. |
1 | Falha na solicitação. |
2 | Solicitação pendente (na fila, mas não concluída). |
3 | Solicitação interrompida. |
4 | Solicitação em andamento. |
O objeto Request também inclui um valor inteiro Long na propriedade Number que retorna o erro ou a causa do código Status . Se nenhum, esse valor será zero (0). A propriedade Description contém um valor de cadeia de caracteres que corresponde ao número do erro. Se a cadeia de caracteres não existir, Description conterá "Erro definido pelo aplicativo ou definido pelo objeto".
Para obter os valores e o significado retornados pela propriedade Number , consulte Códigos de erro.
O servidor coloca solicitações de animação na fila do caractere especificado. Isso permite que o servidor reproduza a animação em um thread separado e o código do aplicativo pode continuar enquanto as animações são reproduzidas. Se você criar uma referência de objeto Request , o servidor notificará você automaticamente quando uma solicitação de animação for iniciada ou concluída por meio dos eventos RequestStart e RequestComplete . Como os métodos que retornam objetos Request são assíncronos e podem não ser concluídos durante o escopo da função de chamada, declare sua referência ao objeto Request globalmente.
Os métodos a seguir podem ser usados para retornar um objeto Request : GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak e Wait.