IAgentNotifySinkEx::ActiveClientChange
[Microsoft 에이전트는 Windows 7을 기준으로 더 이상 사용되지 않으며 이후 버전의 Windows에서는 사용할 수 없습니다.]
HRESULT ActiveClientChange(
...long dwCharID, // character ID
long lStatus // active state flag
);
활성 클라이언트가 더 이상 문자의 활성 클라이언트가 아닌 경우 클라이언트 애플리케이션에 알깁니다.
- 반환 값이 없습니다.
-
dwCharID
-
활성 클라이언트 상태가 변경된 문자의 식별자입니다.
-
lStatus
-
다음 값의 조합일 수 있는 클라이언트의 활성 상태 변경:
값 설명 const unsigned short ACTIVATE_NOTACTIVE = 0; 클라이언트가 문자의 활성 클라이언트가 아닙니다. const unsigned short ACTIVATE_ACTIVE = 1; 클라이언트가 문자의 활성 클라이언트입니다. const unsigned short ACTIVATE_INPUTACTIVE = 2; 클라이언트가 입력 활성(최상위 문자의 활성 클라이언트)입니다.
여러 클라이언트 애플리케이션이 동일한 문자를 공유하는 경우 문자의 활성 클라이언트는 마우스 입력(예: Microsoft 에이전트 컨트롤 클릭 또는 끌기 이벤트)을 받습니다. 마찬가지로 여러 문자가 표시되면 최상위 문자(입력-활성 클라이언트라고도 함)의 활성 클라이언트는 IAgentNotifySink::Command 이벤트를 받습니다.
문자의 활성 클라이언트가 변경되면 이 이벤트는 해당 문자의 ID를 다시 전달하고 , 애플리케이션이 문자의 활성 클라이언트가 되었으면 True 이고, 더 이상 문자 의 활성 클라이언트가 아니면 False 를 전달합니다.
사용자가 문자의 팝업 메뉴 또는 음성 명령으로 다른 클라이언트 애플리케이션의 항목을 선택하거나, 클라이언트 애플리케이션이 활성 상태를 변경하거나, 다른 클라이언트 애플리케이션이 Microsoft 에이전트에 대한 연결을 종료할 때 클라이언트 애플리케이션이 이 이벤트를 수신할 수 있습니다. 에이전트는 활성 클라이언트가 되거나 활성 클라이언트가 되는 것을 중지하는 직접 영향을 받는 클라이언트 애플리케이션에만 이 이벤트를 보냅니다.
Activate 메서드를 사용하여 애플리케이션이 문자의 활성 클라이언트인지 여부를 설정하거나 애플리케이션을 입력-활성 클라이언트로 만들 수 있습니다(문자가 맨 위로도 지정됨).
참고 항목
IAgentCharacter::Activate, IAgentCharacterEx::GetActive, IAgentNotifySink::ActivateInputState