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из коллекциикоманд. |