Condividi tramite


Interfaccia IACList (shlobj_core.h)

Espone un metodo che migliora l'efficienza del completamento automatico quando le stringhe candidate sono organizzate in una gerarchia.

Ereditarietà

L'interfaccia IACList eredita dall'interfaccia IUnknown . IACList include anche questi tipi di membri:

Metodi

L'interfaccia IACList include questi metodi.

 
IACList::Expand

Richiede che il client di completamento automatico generi stringhe candidate associate a un elemento specificato nello spazio dei nomi.

Commenti

Il completamento automatico richiede in genere i tre componenti seguenti:

  • Client di completamento automatico. Questo client è una finestra, ad esempio una finestra di dialogo, che ospita il controllo di modifica.
  • Oggetto di completamento automatico (CLSID_AutoComplete). Questo oggetto viene fornito dal sistema e gestisce l'interfaccia utente, l'analisi e la gestione dei thread in background.
  • Oggetto elenco di completamento automatico. Questo oggetto è responsabile della fornitura di elenchi di stringhe candidate all'oggetto di completamento automatico.
Un semplice oggetto elenco di completamento automatico deve solo esportare IEnumString oltre a IUnknown. Quando l'utente immette caratteri nella casella di modifica, l'oggetto di completamento automatico chiama l'interfaccia IEnumString dell'oggetto elenco per enumerare l'elenco di stringhe che possono essere usate per completare la stringa parziale. L'oggetto list gestisce uno spazio dei nomi e decide quale delle stringhe sono pertinenti.

L'approccio più semplice che accetta un oggetto list consiste nel restituire ogni stringa nello spazio dei nomi ogni volta che l'oggetto di completamento automatico effettua una richiesta. Per una discussione su come implementare questo tipo di oggetto elenco, vedere IAutoComplete. Tuttavia, questo approccio è pratico solo se lo spazio dei nomi è relativamente piccolo. Quando sono coinvolte numerose stringhe, l'oggetto list deve limitarsi a un piccolo subset dello spazio dei nomi.

L'interfaccia IACList viene esportata dagli oggetti elenco di completamento automatico per consentire loro di scegliere un subset sensibile di stringhe da uno spazio dei nomi gerarchicomente organizzato. Con uno spazio dei nomi di grandi dimensioni, questa procedura aumenta notevolmente l'efficienza del completamento automatico. La procedura di base è la seguente:

  1. L'oggetto completamento automatico chiama l'interfaccia IEnumString dell'oggetto list. L'oggetto list restituisce i nomi degli elementi di primo livello nella gerarchia. Ad esempio, se lo spazio dei nomi è costituito da ogni file e cartella nell'unità C: l'oggetto elenco restituisce i percorsi completi delle cartelle e dei file contenuti nella directory C:\.
  2. L'utente continua a digitare finché non entra in un delimitatore. I caratteri '\' e '/' vengono riconosciuti come delimitatori dall'oggetto di completamento automatico.
  3. L'oggetto di completamento automatico chiama il metodo IACList::Expand dell'oggetto list e lo passa alla stringa parziale corrente.
  4. L'oggetto completamento automatico chiama nuovamente l'interfaccia IEnumString dell'oggetto list per richiedere un nuovo elenco di stringhe. Se la stringa parziale corrisponde a uno degli elementi di primo livello nello spazio dei nomi, l'oggetto elenco restituisce i nomi degli elementi che rientrano immediatamente nell'elemento selezionato. Ad esempio, se l'utente ha immesso "C:\Programmi\", l'oggetto elenco restituisce i nomi dei file e delle cartelle contenute in tale directory. Se il nome passato a IACList::Expand non corrisponde a alcun elemento di primo livello, l'oggetto list può semplicemente interrompere la restituzione di stringhe finché l'oggetto completamento automatico chiama IACList::Expand con una stringa presente nello spazio dei nomi dell'oggetto elenco.
  5. Il processo continua fino a quando l'utente seleziona una stringa, in genere premendo il tasto INVIO .

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional, Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione shlobj_core.h