Share via


Interface IAutoComplete (shldisp.h)

Exposto pelo objeto de preenchimento automático (CLSID_AutoComplete). Essa interface permite que os aplicativos inicializem, habilitem e desabilitem o objeto.

Herança

A interface IAutoComplete herda da interface IUnknown . O IAutoComplete também tem esses tipos de membros:

Métodos

A interface IAutoComplete tem esses métodos.

 
IAutoComplete::Enable

Habilita ou desabilita o preenchimento automático.
IAutoComplete::Init

Inicializa o objeto de preenchimento automático.

Comentários

A preenchimento automático expande cadeias de caracteres que foram parcialmente inseridas em um controle de edição em cadeias de caracteres completas. Por exemplo, quando um usuário começa a digitar uma URL no controle de edição de endereço inserido na barra de ferramentas Explorer da Internet do Windows, a preenchimento automático expande a cadeia de caracteres em uma ou mais URLs completas consistentes com a cadeia de caracteres parcial existente. Uma cadeia de caracteres de URL parcial, como "mic", pode ser expandida para "http://www.microsoft.com" ou "http://www.microsoft.com/windows". O preenchimento automático normalmente é usado com controles de edição ou com controles que têm um controle de edição inserido, como o controle comboboxex.

O preenchimento automático tem dois modos para exibir a cadeia de caracteres concluída. Os modos são independentes, portanto, você pode habilitar ou ambos. Para especificar o modo, chame IAutoComplete2::SetOptions. Os modos são os seguintes:

  • No modo de autoaplicativo , o preenchimento automático acrescenta o restante da cadeia de caracteres candidata mais provável aos caracteres existentes, realçando os caracteres acrescentados. O controle de edição se comporta como se o usuário tivesse inserido a cadeia de caracteres inteira manualmente e realçado os caracteres acrescentados. Se o usuário continuar a inserir caracteres, ele será adicionado à cadeia de caracteres parcial existente. Se o usuário adicionar um caractere idêntico ao próximo caractere realçado, o realce desse caractere será desativado. Os caracteres restantes ainda serão realçados. Se o usuário adicionar um caractere que não corresponde ao próximo caractere realçado, a preenchimento automático tentará gerar uma nova cadeia de caracteres candidata com base na cadeia de caracteres parcial maior. Ele acrescenta o restante da nova cadeia de caracteres candidata à cadeia de caracteres parcial atual, como antes. Se nenhuma cadeia de caracteres candidata puder ser encontrada, apenas os caracteres digitado aparecerão e a caixa de edição se comportará como faria sem preenchimento automático. Esse processo continua até que o usuário aceite uma cadeia de caracteres.
  • No modo de sugestão automática, o preenchimento automático exibe uma lista suspensa abaixo do controle de edição com uma ou mais cadeias de caracteres completas sugeridas. O usuário pode selecionar uma das cadeias de caracteres sugeridas, geralmente clicando nela ou continuar digitando. À medida que a digitação progride, a lista suspensa pode ser modificada, com base na cadeia de caracteres parcial atual. Se você definir o sinalizador ACO_SEARCH no parâmetro dwFlag de IAutoComplete2::SetOptions, um item "Pesquisar 'XXX'" será adicionado à parte inferior da lista suspensa. Ele é exibido mesmo que não haja cadeias de caracteres sugeridas. "XXX" é definido como a cadeia de caracteres parcial atual e é atualizado à medida que o usuário continua a digitar. Se o usuário selecionar "Pesquisar por '...'", seu aplicativo deverá iniciar um mecanismo de pesquisa para ajudar o usuário.
A maneira mais simples de implementar a preenchimento automático é chamar SHAutoComplete. Quando essa função for chamada para um controle de edição do sistema, o controle preencherá automaticamente caminhos ou URLs do sistema de arquivos parcialmente inseridos. Para habilitar o preenchimento automático para outros tipos de cadeias de caracteres ou ter mais controle sobre como a preenchimento automático funciona, você pode usar o objeto de preenchimento automático subjacente diretamente.

Essa interface geralmente não é implementada por aplicativos. Ele é exposto pelo objeto de preenchimento automático do Shell e usado por aplicativos.

Use a interface IAutoComplete do objeto de preenchimento automático para inicializar o objeto e habilitar ou desabilitar o preenchimento automático.

Para implementar a preenchimento automático para um controle de edição usando o objeto de preenchimento automático, faça o seguinte:

  1. Implemente um objeto COM (Component Object Model) da lista de cadeias de caracteres que exporta uma interface IEnumString . Esse objeto de lista de cadeias de caracteres é responsável por fornecer a lista de cadeias de caracteres que o objeto de preenchimento automático usará como candidatos para cadeias de caracteres concluídas.
  2. Crie uma instância do objeto de preenchimento automático com CoCreateInstance. Solicite um ponteiro para sua interface IAutoComplete .
  3. Chame IAutoComplete::Init. Defina o parâmetro hwndEdit como o identificador de janela do controle de edição. Se o controle de edição estiver inserido em outro controle, você deverá recuperar o identificador para o próprio controle de edição. Por exemplo, para recuperar um identificador para o controle de edição inserido em um controle comboboxex, envie uma mensagem CBEM_GETEDITCONTROL . Defina o parâmetro punkACL de IAutoComplete::Init como o ponteiro IUnknown do objeto de lista de cadeias de caracteres.
  4. Se você não quiser usar as opções padrão, recupere um ponteiro para a interface IAutoComplete2 do objeto de preenchimento automático. Chame IAutoComplete2::SetOptions para definir as opções desejadas.
  5. O objeto de preenchimento automático usa o ponteiro IUnknown do objeto string list, passado como punkACL na etapa 3, para recuperar um ponteiro para a interface IEnumString desse objeto. Em seguida, o objeto de preenchimento automático chama essa interface para gerar sua lista de cadeias de caracteres candidatas. Ele seleciona cadeias de caracteres nessa lista que são uma correspondência aceitável com a cadeia de caracteres parcial no controle. No modo de autoaplicativo, os caracteres necessários para concluir a cadeia de caracteres são acrescentados à cadeia de caracteres parcial e realçados. No modo de sugestão automática, uma caixa suspensa com uma lista de uma ou mais cadeias de caracteres possíveis é exibida abaixo do controle de edição.
  6. Se o usuário aceitar uma cadeia de caracteres autocompletada, o controle de edição se comportará como se a cadeia de caracteres tivesse sido inserida manualmente.
O preenchimento automático está habilitado por padrão. Os aplicativos só precisam chamar IAutoComplete::Enable para desabilitar o preenchimento automático ou reabilitá-lo se ele tiver sido desabilitado.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 2000 Professional, Windows XP [somente aplicativos da área de trabalho]
Servidor mínimo com suporte Windows Server 2003 [somente aplicativos da área de trabalho]
Plataforma de Destino Windows
Cabeçalho shldisp.h

Confira também

IACList

IACList2

IAutoComplete2

ICurrentWorkingDirectory

IObjMgr