IACList 介面 (shlobj_core.h)
當候選字串組織在階層中時,公開可改善 自動完成 效率的方法。
繼承
IACList 介面繼承自 IUnknown 介面。 IACList 也有下列類型的成員:
方法
IACList 介面具有這些方法。
IACList::Expand 要求自動完成用戶端在其命名空間中產生與指定專案相關聯的候選字串。 |
備註
自動完成通常需要下列三個元件:
- 自動完成用戶端。 這個客戶端是裝載編輯控制元件的視窗,例如對話框。
- 自動完成物件 (CLSID_AutoComplete) 。 此物件是由系統提供,並處理使用者介面、剖析和背景線程管理。
- 自動完成清單物件。 此物件負責提供候選字串清單給自動完成物件。
list 對象採用的最簡單方法是在每次自動完成物件提出要求時,傳回其命名空間中的每個字串。 如需如何實作這種類型的清單對象的討論,請參閱 IAutoComplete。 不過,只有在命名空間相對較小時,此方法才實用。 當涉及大量字串時,清單對象必須限制本身為命名空間的小型子集。
自動完成清單物件會匯出 IACList 介面,以協助他們從階層式組織命名空間中選擇合理的字串子集。 使用大型命名空間時,此程式會大幅提升自動完成的效率。 基本程式如下:
- 自動完成物件會呼叫清單物件的 IEnumString 介面。 list 物件會傳回階層中最上層項目的名稱。 例如,如果命名空間是由 C: 磁碟驅動器上的每個檔案和資料夾所組成,則清單物件會傳回 C:\ 目錄中所包含的資料夾和檔案的完整路徑。
- 用戶會繼續輸入,直到輸入分隔符為止。 自動完成物件會將 『\』 和 『/』 字元辨識為分隔符。
- 自動完成物件會呼叫清單物件的 IACList::Expand 方法,並將目前的部分字串傳遞給它。
- 自動完成物件會再次呼叫清單物件的 IEnumString 介面,以要求新的字串清單。 如果部分字串符合命名空間中的其中一個最上層專案,清單物件會傳回緊接在所選專案下的項目名稱。 例如,如果使用者已輸入 「C:\Program Files\」,清單物件會傳回該目錄中所包含的檔案和資料夾名稱。 如果傳遞至 IACList::Expand 的名稱與任何最上層專案不符,則清單物件可以直接停止傳回字串,直到自動完成物件呼叫 IACList::Expand 時,就會使用清單物件命名空間中的字元串。
- 此程式會繼續執行,直到用戶選取字串為止,通常是按 ENTER 鍵。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | Windows 2000 Professional、Windows XP [僅限桌面應用程式] |
最低支援的伺服器 | Windows Server 2003 [僅限桌面應用程式] |
目標平台 | Windows |
標頭 | shlobj_core.h |