IACList インターフェイス (shlobj_core.h)
候補文字列が階層に編成されている場合の オートコンプリート の効率を向上させるメソッドを公開します。
継承
IACList インターフェイスは、IUnknown インターフェイスから継承されます。 IACList には、次の種類のメンバーもあります。
メソッド
IACList インターフェイスには、これらのメソッドがあります。
IACList::Expand オートコンプリート クライアントが、その名前空間内の指定された項目に関連付けられている候補文字列を生成することを要求します。 |
注釈
オートコンプリートには通常、次の 3 つのコンポーネントが必要です。
- オートコンプリート クライアント。 このクライアントは、編集コントロールをホストするダイアログ ボックスなどのウィンドウです。
- オートコンプリート オブジェクト (CLSID_AutoComplete)。 このオブジェクトはシステムによって提供され、ユーザー インターフェイス、解析、およびバックグラウンド スレッド管理を処理します。
- オートコンプリート リスト オブジェクト。 このオブジェクトは、候補文字列のリストをオートコンプリート オブジェクトに提供する役割を担います。
リスト オブジェクトが受け取る最も簡単な方法は、オートコンプリート オブジェクトが要求を行うたびに、その名前空間内のすべての文字列を返す方法です。 この種類のリスト オブジェクトを実装する方法については、「 IAutoComplete」を参照してください。 ただし、この方法は、名前空間が比較的小さい場合にのみ実用的です。 多数の文字列が含まれている場合、リスト オブジェクト自体を名前空間の小さなサブセットに制限する必要があります。
IACList インターフェイスは、階層的に編成された名前空間から適切な文字列のサブセットを選択できるように、オートコンプリート リスト オブジェクトによってエクスポートされます。 名前空間が大きい場合、この手順によりオートコンプリートの効率が大幅に向上します。 基本的な手順は次のとおりです。
- オートコンプリート オブジェクトは、リスト オブジェクトの IEnumString インターフェイスを呼び出します。 list オブジェクトは、階層内の最上位項目の名前を返します。 たとえば、名前空間が C: ドライブ上のすべてのファイルとフォルダーで構成されている場合、リスト オブジェクトは C:\ ディレクトリに含まれるフォルダーとファイルの完全修飾パスを返します。
- ユーザーは、区切り記号を入力するまで入力し続けます。 '\' 文字と '/' 文字は、オートコンプリート オブジェクトによって区切り記号として認識されます。
- オートコンプリート オブジェクトは、リスト オブジェクトの IACList::Expand メソッドを呼び出し、現在の部分文字列を渡します。
- autocomplete オブジェクトは、リスト オブジェクトの IEnumString インターフェイスをもう一度呼び出して、文字列の新しいリストを要求します。 部分文字列が名前空間の最上位項目の 1 つと一致する場合、リスト オブジェクトは、選択した項目のすぐ下にある項目の名前を返します。 たとえば、ユーザーが "C:\Program Files\" を入力した場合、リスト オブジェクトはそのディレクトリに含まれるファイルとフォルダーの名前を返します。 IACList::Expand に渡された名前が最上位項目と一致しない場合、オートコンプリート オブジェクトがリスト オブジェクトの名前空間にある文字列で IACList::Expand を呼び出すまで、リスト オブジェクトは文字列の返しを停止できます。
- このプロセスは、ユーザーが文字列を選択するまで続行されます。通常は Enter キーを押します。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows 2000 Professional、Windows XP [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows Server 2003 (デスクトップ アプリのみ) |
対象プラットフォーム | Windows |
ヘッダー | shlobj_core.h |