次の方法で共有


IACList インターフェイス (shlobj_core.h)

候補文字列が階層に編成されている場合の オートコンプリート の効率を向上させるメソッドを公開します。

継承

IACList インターフェイスは、IUnknown インターフェイスから継承されます。 IACList には、次の種類のメンバーもあります。

メソッド

IACList インターフェイスには、これらのメソッドがあります。

 
IACList::Expand

オートコンプリート クライアントが、その名前空間内の指定された項目に関連付けられている候補文字列を生成することを要求します。

注釈

オートコンプリートには通常、次の 3 つのコンポーネントが必要です。

  • オートコンプリート クライアント。 このクライアントは、編集コントロールをホストするダイアログ ボックスなどのウィンドウです。
  • オートコンプリート オブジェクト (CLSID_AutoComplete)。 このオブジェクトはシステムによって提供され、ユーザー インターフェイス、解析、およびバックグラウンド スレッド管理を処理します。
  • オートコンプリート リスト オブジェクト。 このオブジェクトは、候補文字列のリストをオートコンプリート オブジェクトに提供する役割を担います。
単純なオートコンプリート リスト オブジェクトは、IUnknown に加えて IEnumString をエクスポートするだけで済みます。 ユーザーが編集ボックスに文字を入力すると、オートコンプリート オブジェクトはリスト オブジェクトの IEnumString インターフェイスを呼び出して、部分文字列の入力に使用できる文字列の一覧を列挙します。 list オブジェクトは名前空間を保持し、関連する文字列を決定します。

リスト オブジェクトが受け取る最も簡単な方法は、オートコンプリート オブジェクトが要求を行うたびに、その名前空間内のすべての文字列を返す方法です。 この種類のリスト オブジェクトを実装する方法については、「 IAutoComplete」を参照してください。 ただし、この方法は、名前空間が比較的小さい場合にのみ実用的です。 多数の文字列が含まれている場合、リスト オブジェクト自体を名前空間の小さなサブセットに制限する必要があります。

IACList インターフェイスは、階層的に編成された名前空間から適切な文字列のサブセットを選択できるように、オートコンプリート リスト オブジェクトによってエクスポートされます。 名前空間が大きい場合、この手順によりオートコンプリートの効率が大幅に向上します。 基本的な手順は次のとおりです。

  1. オートコンプリート オブジェクトは、リスト オブジェクトの IEnumString インターフェイスを呼び出します。 list オブジェクトは、階層内の最上位項目の名前を返します。 たとえば、名前空間が C: ドライブ上のすべてのファイルとフォルダーで構成されている場合、リスト オブジェクトは C:\ ディレクトリに含まれるフォルダーとファイルの完全修飾パスを返します。
  2. ユーザーは、区切り記号を入力するまで入力し続けます。 '\' 文字と '/' 文字は、オートコンプリート オブジェクトによって区切り記号として認識されます。
  3. オートコンプリート オブジェクトは、リスト オブジェクトの IACList::Expand メソッドを呼び出し、現在の部分文字列を渡します。
  4. autocomplete オブジェクトは、リスト オブジェクトの IEnumString インターフェイスをもう一度呼び出して、文字列の新しいリストを要求します。 部分文字列が名前空間の最上位項目の 1 つと一致する場合、リスト オブジェクトは、選択した項目のすぐ下にある項目の名前を返します。 たとえば、ユーザーが "C:\Program Files\" を入力した場合、リスト オブジェクトはそのディレクトリに含まれるファイルとフォルダーの名前を返します。 IACList::Expand に渡された名前が最上位項目と一致しない場合、オートコンプリート オブジェクトがリスト オブジェクトの名前空間にある文字列で IACList::Expand を呼び出すまで、リスト オブジェクトは文字列の返しを停止できます。
  5. このプロセスは、ユーザーが文字列を選択するまで続行されます。通常は Enter キーを押します。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional、Windows XP [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows Server 2003 (デスクトップ アプリのみ)
対象プラットフォーム Windows
ヘッダー shlobj_core.h