Поделиться через


IAgentCommands

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

Сервер Microsoft Agent поддерживает список команд, которые в настоящее время доступны пользователю. Этот список включает команды, определяемые сервером для общего взаимодействия, такие как скрытие и свойства Microsoft Agent, список доступных (но неактивных) клиентов и команды, определенные текущим активным клиентом. Первые два набора команд являются глобальными командами; то есть они доступны в любое время независимо от клиента input-active. Определяемые клиентом команды доступны только в том случае, если этот клиент имеет значение input-active.

Получите интерфейс IAgentCommands, запрос ив интерфейс IAgentCharacter для IAgentCommands. Каждое клиентское приложение Microsoft Agent может определить коллекцию команд, называемых коллекциейкоманд. Чтобы добавитькомандыв коллекцию, используйте метод Add or Insert. Хотя можно указать свойства команды с помощью методов IAgentCommand для оптимальной производительности кода, укажите все свойства команды в свойствах IAgentCommands::Add или IAgentCommands::Insert при первоначальном задании свойств для новой команды . Для запроса или изменения параметров свойства можно использовать методы IAgentCommand.

Для каждой команды в коллекции команд можно определить, отображается ли команда во всплывающем меню символа, в окне голосовых команд в обоих или ни в другом. Например, если вы хотите, чтобы команда отображалась во всплывающем меню для символа, задайте заголовка команды и свойства видимых. Чтобы отобразить команду в окне голосовых команд, задайте заголовки команды и свойства голосовой.

Пользователь может получить доступ к отдельным командам в коллекции Commands только в том случае, если клиентское приложение является активным и отображается символ. Таким образом, обычно требуется задать свойствазаголовка, VoiceCaptionи свойства голосовой для объекта коллекции Commands, а также для команд в коллекции, так как это помещает запись для коллекции команд в всплывающем меню символа и в окне голосовых команд. Когда пользователь переключается на клиент, выбрав команды, сервер автоматически делает клиентские входные данные активными, уведомляя клиентское приложение с помощью IAgentNotifySink::ActivateInputState и делает команды в своей коллекции. Сервер также уведомляет клиента, который больше не имеет входных данных с помощью события IAgentNotifySink::ActivateInputState. Это позволяет серверу представлять и принимать только команды , которые применяются к текущему контексту клиента ввода-активного. Он также служит для предотвращения конфликтов команд-name между клиентами.

Клиент также может явным образом запросить сам входной клиент с помощью метода IAgentCharacter::Activate. Этот метод также поддерживает настройку приложения не входящего клиента. Этот метод может потребоваться использовать при совместном использовании символа с другим приложением, установив для приложения значение input-active, когда окно приложения получает фокус, а не ввод-активный при потере фокуса.

Аналогичным образом можно использовать IAgentCharacter::Activate для задания приложения (или не быть) активным клиентом символа. Активный клиент — это клиент, который получает входные данные, когда его символ является самым верхним символом. При изменении этого состояния сервер уведомляет приложение с помощью события IAgentNotifySinkEx::ActiveClientChange.

При отображении всплывающего меню символа изменения свойств команд коллекции или команд в коллекции не отображаются до тех пор, пока пользователь не переиграет меню. Однако при открытии окно голосовых команд отображает изменения по мере их выполнения.

IAgentCommands определяет интерфейс, позволяющий приложениям добавлять, удалять, задавать и запрашивать свойства для коллекции команд . Эти функции также доступны из IAgentCommandsEx.

Коллекциякомандможет отображаться как команда во всплывающем меню, так и в окне голосовых команд для символа. Чтобы открыть коллекцию команд , необходимо задать его свойство caption. В следующей таблице показано, как свойства коллекции команд влияют на ее презентацию.

Свойство caption Свойство Voice-Caption Свойство Voice Видимое свойство Отображается во всплывающем меню символа Отображается в окне голосовых команд
Да Да Да Истинный Да, использование заголовка Да, использование VoiceCaption
Да Да No¹ Истинный Да, использование заголовка Нет
Да Да Да Ложный Нет Да, использование VoiceCaption
Да Да No¹ Ложный Нет Нет
No¹ Да Да Истинный Нет Да, использование VoiceCaption
No¹ Да Да Ложный Нет Да, использование VoiceCaption
No¹ Да No¹ Истинный Нет Нет
No¹ Да No¹ Ложный Нет Нет
Да No¹ Да Истинный Да, использование заголовка Да, использование заголовка
Да No¹ No¹ Истинный Да Нет
Да No¹ Да Ложный Нет Да, использование заголовка
Да No¹ No¹ Ложный Нет Нет
No¹ No¹ Да Истинный Нет No 2
No¹ No¹ Да Ложный Нет No 2
No¹ No¹ No¹ Истинный Нет Нет
No¹ No¹ No¹ Ложный Нет Нет

 

Значение ¹If значение свойства имеет значение NULL. На некоторых языках программирования пустая строка может не интерпретироваться так же, как и строка NULL.

Команда fxThe по-прежнему доступна для голосовой связи.

Методы в порядке Vtable

Методы IAgentCommands Описание
GetCommand Извлекает объект commandиз коллекции Commands.
GetCount Возвращает значение числа команд в коллекциикоманд.
SetCaption Задает значение свойствазаголовкадля коллекции Commands.
GetCaption Возвращает значение свойства заголовка коллекции Commands.
SetVoice Задает значение свойстваголосовойдля коллекции Commands.
GetVoice Возвращает значение свойства voice коллекции Commands.
SetVisible Задает значение свойства Visible для коллекции Commands.
GetVisible Возвращает значение свойства Visible коллекцииcommands.
добавление Добавляет объект commandв коллекциюcommands.
Вставка Вставляет объект commandв коллекциюкоманд.
Удалить Удаляет объект commandв коллекции Commands.
RemoveAll Удаляет все объекты commandиз коллекциикоманд.