Freigeben über


IACList-Schnittstelle (shlobj_core.h)

Macht eine Methode verfügbar, die die Effizienz der automatischen Vervollständigung verbessert, wenn die Kandidatenzeichenfolgen in einer Hierarchie organisiert sind.

Vererbung

Die IACList-Schnittstelle erbt von der IUnknown-Schnittstelle . IACList verfügt auch über folgende Membertypen:

Methoden

Die IACList-Schnittstelle verfügt über diese Methoden.

 
IACList::Expand

Fordert an, dass der AutoVervollständigen-Client Kandidatenzeichenfolgen generiert, die einem angegebenen Element in seinem Namespace zugeordnet sind.

Hinweise

Für die automatische Vervollständigung sind in der Regel die folgenden drei Komponenten erforderlich:

  • Der AutoVervollständigen-Client. Dieser Client ist ein Fenster, z. B. ein Dialogfeld, in dem das Bearbeitungssteuerelement gehostet wird.
  • Das AutoVervollständigen-Objekt (CLSID_AutoComplete). Dieses Objekt wird vom System bereitgestellt und verarbeitet die Benutzeroberfläche, die Analyse und die Hintergrundthreadverwaltung.
  • Das AutoVervollständigen-Listenobjekt. Dieses Objekt ist für die Bereitstellung von Listen von Kandidatenzeichenfolgen für das AutoVervollständigen-Objekt verantwortlich.
Ein einfaches AutoVervollständigen-Listenobjekt muss nur IEnumString zusätzlich zu IUnknown exportieren. Wenn der Benutzer Zeichen in das Bearbeitungsfeld eingibt, ruft das AutoVervollständigen-Objekt die IEnumString-Schnittstelle des Listenobjekts auf, um die Liste der Zeichenfolgen aufzulisten, die zum Vervollständigen der Teilzeichenfolge verwendet werden können. Das Listenobjekt verwaltet einen Namespace und entscheidet, welche dieser Zeichenfolgen relevant sind.

Der einfachste Ansatz eines Listenobjekts besteht darin, jede Zeichenfolge in seinem Namespace jedes Mal zurückzugeben, wenn das AutoVervollständigen-Objekt eine Anforderung sendet. Eine Erläuterung zum Implementieren dieses Typs von Listenobjekten finden Sie unter IAutoComplete. Dieser Ansatz ist jedoch nur dann praktisch, wenn der Namespace relativ klein ist. Wenn eine große Anzahl von Zeichenfolgen beteiligt ist, muss sich das Listenobjekt auf eine kleine Teilmenge des Namespace beschränken.

Die IACList-Schnittstelle wird von AutoVervollständigen-Listenobjekten exportiert, um sie bei der Auswahl einer sinnvollen Teilmenge von Zeichenfolgen aus einem hierarchisch organisierten Namespace zu unterstützen. Bei einem großen Namespace erhöht diese Prozedur die Effizienz der automatischen Vervollständigung erheblich. Das grundlegende Verfahren sieht wie folgt aus:

  1. Das AutoVervollständigen-Objekt ruft die IEnumString-Schnittstelle des Listenobjekts auf. Das list-Objekt gibt die Namen der Elemente der obersten Ebene in der Hierarchie zurück. Wenn der Namespace beispielsweise aus jeder Datei und jedem Ordner auf Laufwerk C: besteht, gibt das Listenobjekt die vollqualifizierten Pfade der Ordner und Dateien zurück, die im Verzeichnis C:\ enthalten sind.
  2. Der Benutzer setzt die Eingabe fort, bis er ein Trennzeichen eingibt. Die Zeichen "\" und "/" werden vom AutoVervollständigen-Objekt als Trennzeichen erkannt.
  3. Das AutoVervollständigen-Objekt ruft die IACList::Expand-Methode des Listenobjekts auf und übergibt die aktuelle Partielle Zeichenfolge.
  4. Das AutoVervollständigen-Objekt ruft die IEnumString-Schnittstelle des Listenobjekts erneut auf, um eine neue Liste von Zeichenfolgen anzufordern. Wenn die partielle Zeichenfolge mit einem der Elemente der obersten Ebene im Namespace übereinstimmt, gibt das Listenobjekt die Namen der Elemente zurück, die direkt unter dem ausgewählten Element liegen. Wenn der Benutzer für instance "C:\Programme\" eingegeben hat, gibt das Listenobjekt die Namen der Dateien und Ordner zurück, die in diesem Verzeichnis enthalten sind. Wenn der an IACList::Expand übergebene Name mit keinem Element der obersten Ebene übereinstimmt, kann das Listenobjekt einfach die Rückgabe von Zeichenfolgen beenden, bis das AutoVervollständigen-Objekt IACList::Expand mit einer Zeichenfolge aufruft, die sich im Namespace des Listenobjekts befindet.
  5. Der Prozess wird fortgesetzt, bis der Benutzer eine Zeichenfolge auswählt, in der Regel durch Drücken der EINGABETASTE .

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional, Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile shlobj_core.h