Compartir a través de


Interfaz IACList (shlobj_core.h)

Expone un método que mejora la eficacia de la autocompletar cuando las cadenas candidatas se organizan en una jerarquía.

Herencia

La interfaz IACList hereda de la interfaz IUnknown . IACList también tiene estos tipos de miembros:

Métodos

La interfaz IACList tiene estos métodos.

 
IACList::Expand

Solicita que el cliente de autocompletar genere cadenas candidatas asociadas a un elemento especificado en su espacio de nombres.

Comentarios

La autocompletar normalmente requiere los tres componentes siguientes:

  • Cliente de autocompletar. Este cliente es una ventana, como un cuadro de diálogo, que hospeda el control de edición.
  • Objeto autocompletar (CLSID_AutoComplete). El sistema proporciona este objeto y controla la interfaz de usuario, el análisis y la administración de subprocesos en segundo plano.
  • Objeto de lista de autocompletar. Este objeto es responsable de proporcionar listas de cadenas candidatas al objeto autocompletar.
Un objeto de lista de autocompletar simple solo necesita exportar IEnumString además de IUnknown. Cuando el usuario escribe caracteres en el cuadro de edición, el objeto autocompletar llama a la interfaz IEnumString del objeto de lista para enumerar la lista de cadenas que se pueden usar para completar la cadena parcial. El objeto list mantiene un espacio de nombres y decide cuáles de esas cadenas son relevantes.

El enfoque más sencillo que toma un objeto de lista es devolver todas las cadenas de su espacio de nombres cada vez que el objeto de autocompletar realiza una solicitud. Para obtener información sobre cómo implementar este tipo de objeto de lista, consulte IAutoComplete. Sin embargo, este enfoque solo es práctico si el espacio de nombres es relativamente pequeño. Cuando intervienen grandes cantidades de cadenas, el objeto de lista debe restringirse a un pequeño subconjunto del espacio de nombres.

La interfaz IACList se exporta mediante objetos de lista de autocompletar para ayudarles a elegir un subconjunto razonable de cadenas de un espacio de nombres organizado jerárquicamente. Con un espacio de nombres grande, este procedimiento aumenta considerablemente la eficacia de la autocompletar. El procedimiento básico es el siguiente:

  1. El objeto autocompletar llama a la interfaz IEnumString del objeto de lista. El objeto list devuelve los nombres de los elementos de nivel superior de la jerarquía. Por ejemplo, si el espacio de nombres consta de todos los archivos y carpetas de la unidad C: , el objeto list devuelve las rutas de acceso completas de las carpetas y archivos contenidos en el directorio C:\.
  2. El usuario sigue escribendo hasta que entra en un delimitador. Los caracteres '\' y '/' se reconocen como delimitadores por el objeto autocompletar.
  3. El objeto autocompletar llama al método IACList::Expand del objeto de lista y lo pasa a la cadena parcial actual.
  4. El objeto autocompletar llama de nuevo a la interfaz IEnumString del objeto de lista para solicitar una nueva lista de cadenas. Si la cadena parcial coincide con uno de los elementos de nivel superior del espacio de nombres, el objeto de lista devuelve los nombres de los elementos que se encuentran inmediatamente debajo del elemento seleccionado. Por ejemplo, si el usuario ha escrito "C:\Archivos de programa\", el objeto de lista devuelve los nombres de los archivos y carpetas contenidos en ese directorio. Si el nombre pasado a IACList::Expand no coincide con ningún elemento de nivel superior, el objeto de lista simplemente puede dejar de devolver cadenas hasta que el objeto autocompletar llame a IACList::Expand con una cadena que se encuentra en el espacio de nombres del objeto de lista.
  5. El proceso continúa hasta que el usuario selecciona una cadena, normalmente presionando la tecla ENTRAR .

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional, Windows XP [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows Server 2003 [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado shlobj_core.h