Request 개체
[Microsoft 에이전트는 Windows 7을 기준으로 더 이상 사용되지 않으며 이후 버전의 Windows에서는 사용할 수 없습니다.]
서버는 일부 메서드를 비동기적으로 처리합니다. 이렇게 하면 메서드가 완료되는 동안 애플리케이션 코드를 계속할 수 있습니다. 클라이언트 애플리케이션이 이러한 메서드 중 하나를 호출하면 컨트롤은 요청에 대한 Request 개체를 만들고 반환합니다. Request 개체를 사용하여 메서드에 개체 변수를 할당하여 메서드의 상태 추적할 수 있습니다. Visual Basic에서 먼저 개체 변수를 선언합니다.
Dim MyRequest as Object
VBScript에서는 선언에 변수 형식을 포함하지 않습니다.
Dim MyRequest
Visual Basic의 Set 문을 사용하여 메서드 호출에 변수를 할당합니다.
Set MyRequest = <i>agent</i>.Characters("<i>CharacterID</i>").<i>method</i> (<i>parameter</i>[s])
그러면 Request 개체에 대한 참조가 추가됩니다. Request 개체에 대한 참조가 더 이상 없으면 Request 개체가 제거됩니다. Request 개체를 선언하는 위치와 사용하는 방법에 따라 해당 수명이 결정됩니다. 개체가 서브루틴 또는 함수에 로컬로 선언되면 scope 종료될 때 제거됩니다. 즉, 서브루틴 또는 함수가 종료될 때 제거됩니다. 개체가 전역적으로 선언된 경우 프로그램이 종료되거나 새 값(또는 "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 개체에는 Status 코드의 오류 또는 원인을 반환하는 Long 정수 값도 Number 속성에 포함됩니다. 없는 경우 이 값은 0입니다. Description 속성에는 오류 번호에 해당하는 문자열 값이 포함되어 있습니다. 문자열이 없으면 Description 에 "애플리케이션 정의 또는 개체 정의 오류"가 포함됩니다.
Number 속성에서 반환된 값과 의미는 오류 코드를 참조하세요.
서버는 지정된 문자의 큐에 애니메이션 요청을 배치합니다. 이렇게 하면 서버가 별도의 스레드에서 애니메이션을 재생할 수 있으며 애니메이션이 재생되는 동안 애플리케이션의 코드를 계속할 수 있습니다. Request 개체 참조를 만드는 경우 서버는 RequestStart 및 RequestComplete 이벤트를 통해 애니메이션 요청이 시작되거나 완료되면 자동으로 알림을 표시합니다. Request 개체를 반환하는 메서드는 비동기적이며 호출 함수의 scope 동안 완료되지 않을 수 있으므로 Request 개체에 대한 참조를 전역적으로 선언합니다.
Request 개체를 반환하는 데 사용할 수 있는 메서드는 GestureAt, Get, Hide, Interrupt, Load, MoveTo, Play, Show, Speak 및 Wait입니다.