IACList 接口 (shlobj_core.h)

公开一个方法,该方法可在候选字符串在层次结构中组织时提高 自动完成 的效率。

继承

IACList 接口继承自 IUnknown 接口。 IACList 还具有以下类型的成员:

方法

IACList 接口具有这些方法。

 
IACList::Expand

请求自动完成客户端在其命名空间中生成与指定项关联的候选字符串。

注解

自动完成通常需要以下三个组件:

  • 自动完成客户端。 此客户端是承载编辑控件的窗口,例如对话框。
  • 自动完成对象 (CLSID_AutoComplete) 。 此对象由系统提供,并处理用户界面、分析和后台线程管理。
  • 自动完成列表对象。 此对象负责向自动完成对象提供候选字符串列表。
除了 IUnknown 之外,简单的自动完成列表对象只需导出 IEnumString。 当用户在编辑框中输入字符时,自动完成对象将调用列表对象的 IEnumString 接口来枚举可用于完成部分字符串的字符串列表。 list 对象维护命名空间,并决定其中哪些字符串相关。

列表对象采用的最简单方法是在每次自动完成对象发出请求时返回其命名空间中的每个字符串。 有关如何实现此类列表对象的讨论,请参阅 IAutoComplete。 但是,仅当命名空间相对较小时,此方法才可行。 当涉及大量字符串时,列表对象必须将自身限制为命名空间的一小部分。

IACList 接口由自动完成列表对象导出,以帮助他们从分层组织的命名空间中选择合理的字符串子集。 对于较大的命名空间,此过程可显著提高自动完成的效率。 基本过程如下:

  1. 自动完成对象调用列表对象的 IEnumString 接口。 列表对象返回层次结构中顶级项的名称。 例如,如果命名空间由 C: 驱动器上的每个文件和文件夹组成,则列表对象将返回 C:\ 目录中包含的文件夹和文件的完全限定路径。
  2. 用户继续键入,直到输入分隔符。 自动完成对象将“\”和“/”字符识别为分隔符。
  3. 自动完成对象调用列表对象的 IACList::Expand 方法,并将当前分部字符串传递给它。
  4. 自动完成对象再次调用列表对象的 IEnumString 接口,以请求新的字符串列表。 如果分部字符串与命名空间中的一个顶级项匹配,则列表对象将返回紧靠在所选项下的项的名称。 例如,如果用户输入了“C:\Program Files\”,列表对象将返回该目录中包含的文件和文件夹的名称。 如果传递给 IACList::Expand 的名称与任何顶级项都不匹配,则列表对象只需停止返回字符串,直到自动完成对象使用列表对象的命名空间中的字符串调用 IACList::Expand
  5. 该过程一直持续到用户选择字符串,通常按 Enter 键。

要求

要求
最低受支持的客户端 Windows 2000 专业版、Windows XP [仅限桌面应用]
最低受支持的服务器 Windows Server 2003 [仅限桌面应用]
目标平台 Windows
标头 shlobj_core.h