IAgentCharacter::Activate
[Агент Майкрософт не рекомендуется использовать в Windows 7 и может быть недоступен в последующих версиях Windows.]
HRESULT Activate(
short sState, // topmost character or client setting
);
Определяет, активен ли клиент или символ является самым верхним.
- Возвращает S_OK для указания успешной операции.
- Возвращает S_FALSE, чтобы указать, что операция не была успешной.
-
sState
-
Для этого параметра можно указать следующие значения:
Значение Описание 0 Задайте не активный клиент. 1 Задайте в качестве активного клиента. 2 Сделайте самый верхний символ.
Если отображается несколько символов, только один из них получает речевой ввод за раз. Аналогичным образом, если несколько клиентских приложений используют один и тот же символ, только один из клиентов получает ввод с помощью мыши (например, события щелчка или перетаскивания элемента управления Microsoft Agent). Набор символов для получения ввода с помощью мыши и речи является самым верхним символом, а клиент, получающий входные данные, является активным клиентом символа. (Окно самого верхнего символа также отображается в верхней части Z-порядка окна символов.) Как правило, пользователь определяет, какой символ является самым верхним, явно выбрав его. Однако самая верхняя активация также изменяется при отображении или скрытии символа (символ становится или больше не является верхним соответственно).
Этот метод также можно использовать для явного управления тем, когда клиент получает входные данные, направленные на символ, например, когда само приложение становится активным. Например, при установке параметра Состояние 2 символ получается самым верхним, а клиент получает все события ввода мыши и речи, созданные при взаимодействии пользователя с символом. Таким образом, он также делает клиент активным входным клиентом символа. Однако можно также задать активный клиент для символа, не делая символ самым верхним, установив для параметра Состояние значение 1. Это позволяет клиенту получать входные данные, направленные на этот символ, когда символ становится самым верхним. Аналогичным образом, вы можете задать для клиента не активный клиент (чтобы не получать входные данные), когда символ становится самым верхним, задав для параметра Состояние значение 0. Вы можете определить, есть ли у символа другие текущие клиенты, используя IAgentCharacter::HasOtherClients.
Избегайте вызова этого метода непосредственно после метода Show . Show автоматически задает клиент input-active. Если символ скрыт, вызов Activate может завершиться ошибкой, если он будет обработан до завершения метода Show .
Попытка вызвать этот метод с параметром State, равным 2 (если указанный символ скрыт) завершится ошибкой. Аналогичным образом, если для параметра State задано значение 0, а приложение является единственным клиентом, этот вызов завершается ошибкой. У символа всегда должен быть самый верхний клиент.
Примечание
Вызов этого метода с состоянием 1 обычно не создает событие AgentNotifySink::ActivateInputState , если не загружены другие символы или ваше приложение уже активно.
См. также:
IAgentCharacter::HasOtherClients