IAgentCharacter::Activate

[Microsoft Agent не рекомендуется использовать в Windows 7 и может быть недоступно в последующих версиях Windows.]

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

Задает, является ли клиент активным или символом является самым верхним.

  • Возвращает S_OK, чтобы указать, что операция выполнена успешно.
  • Возвращает S_FALSE, чтобы указать, что операция не выполнена успешно.

sState

Для этого параметра можно указать следующие значения:

Ценность Описание
0 Задайте значение неактивного клиента.
1 Задайте в качестве активного клиента.
2 Сделайте самый верхний символ.

 

При отображении нескольких символов только один из символов получает входные данные речи одновременно. Аналогичным образом, если несколько клиентских приложений используют один и тот же символ, один из клиентов получает входные данные мыши (например, элемент управления Microsoft Agent или перетаскивание событий) одновременно. Набор символов для получения ввода мыши и речи является самым верхним символом, а клиент, который получает входные данные, является активным клиентом символа. (Окно верхнего символа также отображается в верхней части z-порядка окна символа.) Как правило, пользователь определяет, какой символ является самым верхним, явно выбрав его. Тем не менее, самая верхняя активация также изменяется при отображении или скрытии символа (символ становится или больше не является самым верхним, соответственно).)

Этот метод также можно использовать для явного управления, когда клиент получает входные данные, направленные на символ, например, когда приложение становится активным. Например, параметр state 2 делает символ самым верхним, а клиент получает все события ввода мыши и речи, созданные из взаимодействия пользователя с символом. Таким образом, он также делает клиент входным активным клиентом символа. Однако можно также задать активный клиент для символа, не делая символ самым верхним, задав состояние значение 1. Это позволяет клиенту получать входные данные, направленные на этот символ, когда символ становится самым верхним. Аналогичным образом можно задать, чтобы клиент не был активным клиентом (не получать входные данные), когда символ становится самым верхним, установив для состояние значение 0. Вы можете определить, имеет ли символ другие текущие клиенты с помощью IAgentCharacter::HasOtherClients.

Избегайте вызова этого метода непосредственно после метода Show. показывать автоматически задает клиент input-active. Если символ скрыт, вызов активации активации может завершиться ошибкой, если он обрабатывается до завершения метода Show.

Попытка вызвать этот метод с параметром состояния значение 2 (если указанный символ скрыт) завершится ошибкой. Аналогичным образом, если задать для состояние значение 0, а приложение является единственным клиентом, этот вызов завершается ошибкой. У символа всегда должен быть самый верхний клиент.

Заметка

Вызов этого метода с состояния, заданного значением 1, обычно не создает событие AgentNotifySink::ActivateInputState, если нет других символов, загруженных или приложение уже активно.

 

См. также

IAgentCharacter::HasOtherClients