Partilhar via


IAgentCommands

[O Microsoft Agent foi preterido a partir do Windows 7 e pode não estar disponível em versões subsequentes do Windows.]

O servidor do Microsoft Agent mantém uma lista de comandos que estão atualmente disponíveis para o usuário. Essa lista inclui comandos que o servidor define para interação geral, como Ocultar e Propriedades do Microsoft Agent, a lista de clientes disponíveis (mas não ativos de entrada) e os comandos definidos pelo cliente ativo atual. Os dois primeiros conjuntos de comandos são comandos globais; ou seja, eles estão disponíveis a qualquer momento, independentemente do cliente ativo de entrada. Os comandos definidos pelo cliente estão disponíveis somente quando esse cliente está ativo de entrada.

Recupere um interface IAgentCommands consultando a interface IAgentCharacter para IAgentCommands. Cada aplicativo cliente do Microsoft Agent pode definir uma coleção de comandos chamada Commands collection. Para adicionar um Command à coleção, use o método Add ou Insert. Embora você possa especificar as propriedades de um Command usando métodos IAgentCommand, para um desempenho de código ideal, especifique todas as propriedades de um Command's no IAgentCommands::Add ou IAgentCommands::Insert métodos ao definir inicialmente as propriedades de um novo Command. Você pode usar os métodos IAgentCommand para consultar ou alterar as configurações de propriedade.

Para cada de Comandos na coleçãoComandos do, você pode determinar se o comando aparece no menu pop-up do personagem, na Janela de Comandos de Voz, em ambos ou em nenhum deles. Por exemplo, se você quiser que um comando apareça no menu pop-up do caractere, defina a Caption do comando e propriedades Visible. Para exibir o comando no Janela de Comandos de Voz do, defina as de Legenda do comando e propriedades de de Voz.

Um usuário pode acessar os comandos individuais em sua coleção Comandos somente quando seu aplicativo cliente estiver ativo de entrada e o caractere estiver visível. Portanto, normalmente você desejará definir as propriedades Caption, VoiceCaptione Voice para o objeto Commands collection, bem como para os comandos na coleção, porque isso coloca uma entrada para sua coleção Comandos no menu pop-up de um personagem e na janela Comandos de voz. Quando o usuário alterna para seu cliente escolhendo sua entrada Comandos, o servidor automaticamente torna o cliente de entrada ativo, notificando seu aplicativo cliente usando o IAgentNotifySink::ActivateInputState e disponibiliza os de Comandos em sua coleção. O servidor também notifica o cliente que não está mais ativo de entrada com o IAgentNotifySink::ActivateInputState evento. Isso permite que o servidor apresente e aceite apenas os comandos que se aplicam ao contexto do cliente ativo de entrada atual. Ele também serve para evitar Command-name colisões entre clientes.

Um cliente também pode solicitar explicitamente para se tornar o cliente ativo de entrada usando o método IAgentCharacter::Activate. Esse método também suporta a configuração de seu aplicativo para não ser o cliente ativo de entrada. Você pode querer usar esse método ao compartilhar um caractere com outro aplicativo, definindo seu aplicativo para ser input-active quando a janela do aplicativo recebe foco e não input-active quando perde o foco.

Da mesma forma, você pode usar IAgentCharacter::Activate para definir seu aplicativo para ser (ou não ser) o cliente ativo do personagem. O cliente ativo é o cliente que recebe entrada quando seu caractere é o caractere mais alto. Quando esse status muda, o servidor notifica seu aplicativo com o IAgentNotifySinkEx::ActiveClientChange evento.

Quando o menu pop-up de um caractere é exibido, as alterações nas propriedades de uma coleçãoComandosou os comandos em sua coleção não aparecem até que o usuário exiba novamente o menu. No entanto, quando aberta, a janela de comandos de voz exibe as alterações à medida que elas acontecem.

IAgentCommands define uma interface que permite que os aplicativos adicionem, remova, definam e consultem propriedades para uma coleçãoCommands. Essas funções também estão disponíveis em IAgentCommandsEx.

Uma coleçãoComandospode aparecer como um comando no menu pop-up e na janela Comandos de voz de um personagem. Para que a coleção Comandos apareça, você deve definir sua propriedade Caption. A tabela a seguir resume como as propriedades de uma coleção Commands afetam sua apresentação.

Propriedade Caption Voice-Caption Propriedade Propriedade Voice Propriedade visível Aparece no menu pop-up do personagem Aparece na janela Comandos de voz
Sim Sim Sim Verdadeiro Sim, usando Caption Sim, usando VoiceCaption
Sim Sim Não¹ Verdadeiro Sim, usando Caption Não
Sim Sim Sim Falso Não Sim, usando VoiceCaption
Sim Sim Não¹ Falso Não Não
Não¹ Sim Sim Verdadeiro Não Sim, usando VoiceCaption
Não¹ Sim Sim Falso Não Sim, usando VoiceCaption
Não¹ Sim Não¹ Verdadeiro Não Não
Não¹ Sim Não¹ Falso Não Não
Sim Não¹ Sim Verdadeiro Sim, usando Caption Sim, usando Caption
Sim Não¹ Não¹ Verdadeiro Sim Não
Sim Não¹ Sim Falso Não Sim, usando Caption
Sim Não¹ Não¹ Falso Não Não
Não¹ Não¹ Sim Verdadeiro Não Não²
Não¹ Não¹ Sim Falso Não Não²
Não¹ Não¹ Não¹ Verdadeiro Não Não
Não¹ Não¹ Não¹ Falso Não Não

 

¹Se a configuração da propriedade for null. Em algumas linguagens de programação, uma cadeia de caracteres vazia pode não ser interpretada da mesma forma que uma cadeia de caracteres nula.

²O comando ainda é acessível por voz.

Métodos em Vtable Order

Métodos IAgentCommands Descrição
GetCommand Recupera um objetoCommandda coleçãoCommands.
GetCount Retorna o valor do número de Comandos em uma coleçãoComandos.
SetCaption Define o valor da propriedade Caption para uma coleçãoCommands.
GetCaption Retorna o valor da propriedade Caption de uma coleçãoCommands.
SetVoice Define o valor da propriedade Voice para uma coleção Commands.
GetVoice Retorna o valor da propriedade Voice de uma coleçãoCommands.
SetVisible Define o valor da propriedade Visible para uma coleçãoCommands.
GetVisible Retorna o valor da propriedade Visible de uma coleçãoCommands.
Adicionar Adiciona um objeto Command a uma coleçãoCommands.
Inserir Insere um objeto Command em uma coleçãoCommands.
Remover Remove um objetoCommandem uma coleçãoCommands.
RemoveAll Remove todos os objetos Command de uma coleçãoCommands.