Share via


IAgentCharacter::Activate

[Microsoft 에이전트는 Windows 7을 기준으로 더 이상 사용되지 않으며 이후 버전의 Windows에서는 사용할 수 없습니다.]

HRESULT Activate(
   short sState, // topmost character or client setting
);

클라이언트가 활성인지 아니면 문자가 맨 위에 있는지를 설정합니다.

  • 작업이 성공했음을 나타내는 S_OK 반환합니다.
  • 작업이 성공하지 못했음을 나타내는 S_FALSE 반환합니다.

sState

이 매개 변수에 대해 다음 값을 지정할 수 있습니다.

설명
0 활성 클라이언트가 아닌 것으로 설정합니다.
1 활성 클라이언트로 설정합니다.
2 최상위 문자를 만듭니다.

 

여러 문자가 표시되면 문자 중 하나만 한 번에 음성 입력을 받습니다. 마찬가지로 여러 클라이언트 애플리케이션이 동일한 문자를 공유하는 경우 클라이언트 중 하나만 한 번에 마우스 입력(예: Microsoft 에이전트 컨트롤 클릭 또는 끌기 이벤트)을 받습니다. 마우스 및 음성 입력을 수신하도록 설정된 문자는 맨 위 문자이고 입력을 받는 클라이언트는 문자의 활성 클라이언트입니다. (맨 위 문자의 창은 문자 창의 z 순서 맨 위에도 나타납니다.) 일반적으로 사용자는 명시적으로 선택하여 맨 위에 있는 문자를 결정합니다. 그러나 문자가 표시되거나 숨겨질 때(문자가 각각 최상위가 되거나 더 이상 맨 위에 있지 않은 경우) 최상위 활성화도 변경됩니다.

이 메서드를 사용하여 애플리케이션 자체가 활성화되는 경우와 같이 클라이언트가 문자로 전달된 입력을 받을 때를 명시적으로 관리할 수도 있습니다. 예를 들어 State 를 2로 설정하면 문자가 맨 위로 이동하고 클라이언트는 문자와의 사용자 상호 작용에서 생성된 모든 마우스 및 음성 입력 이벤트를 받습니다. 따라서 클라이언트를 문자의 입력 활성 클라이언트로 만듭니다. 그러나 상태를 1로 설정하여 문자를 맨 위로 설정하지 않고 문자의 활성 클라이언트를 설정할 수도 있습니다. 이렇게 하면 문자가 맨 위에 있을 때 클라이언트가 해당 문자로 전달되는 입력을 받을 수 있습니다. 마찬가지로, 상태를 0으로 설정하여 문자가 최상위가 될 때 클라이언트를 활성 클라이언트가 아니도록 설정할 수 있습니다(입력을 받지 않음). IAgentCharacter::HasOtherClients를 사용하여 문자에 다른 현재 클라이언트가 있는지 확인할 수 있습니다.

Show 메서드 바로 다음에 이 메서드를 호출하지 마세요. 입력 활성 클라이언트를 자동으로 설정합니다. 문자가 숨겨지면 Show 메서드가 완료되기 전에 처리되는 경우 Activate 호출이 실패할 수 있습니다.

State 매개 변수가 2로 설정된 상태에서 이 메서드를 호출하려고 하면(지정된 문자가 숨겨져 있는 경우) 실패합니다. 마찬가지로 상태를 0으로 설정하고 애플리케이션이 유일한 클라이언트인 경우 이 호출이 실패합니다. 문자에는 항상 최상위 클라이언트가 있어야 합니다.

참고

상태가 1로 설정된 상태에서 이 메서드를 호출해도 로드된 다른 문자가 없거나 애플리케이션이 이미 입력 활성 상태인 경우가 아니면 일반적으로 AgentNotifySink::ActivateInputState 이벤트가 생성되지 않습니다.

 

참고 항목

IAgentCharacter::HasOtherClients