iTfReadOnlyProperty::EnumRanges 方法 (msctf.h)
获取包含给定范围内属性的唯一值的范围的枚举。
语法
HRESULT EnumRanges(
[in] TfEditCookie ec,
[out] IEnumTfRanges **ppEnum,
[in] ITfRange *pTargetRange
);
parameters
[in] ec
包含标识编辑上下文的编辑 Cookie。 这是从 ITfDocumentMgr::CreateContext 或 ITfEditSession::D oEditSession 获取的。
[out] ppEnum
指向接收枚举器对象的 IEnumTfRanges 接口指针的指针。 调用方在不再需要此对象时必须释放该对象。
[in] pTargetRange
指向 ITfRange 接口的指针,该接口指定要扫描的唯一属性值的范围。 此参数是可选的,可以为 NULL。 有关详细信息,请参见“备注”部分。
返回值
此方法可以返回其中一个值。
值 | 说明 |
---|---|
|
方法成功。 |
|
一个或多个参数无效。 |
|
内存分配失败。 |
|
发生了未指定的错误。
注意 如果应用程序未实现 ITextStoreACP::FindNextAttrTransition,ITfReadOnlyProperty::EnumRanges 将失败并E_FAIL。
|
|
ec 标识的编辑上下文没有只读或读/写锁。 |
注解
注意: 如果应用程序未实现 ITextStoreACP::FindNextAttrTransition, ITfReadOnlyProperty::EnumRanges 将失败并E_FAIL。
此方法获取的枚举器将包含指定属性的每个唯一值(包括空值)的范围。 例如,假设的颜色属性可以应用于以下标记文本:
COLOR: RR GGGGGGGG
TEXT: this is some colored text
调用 ITfReadOnlyProperty::EnumRanges 且 pTargetRange 设置为此范围时,枚举器将包含五个区域。
范围索引 | Color 属性值 | 范围文本 |
---|---|---|
0 | <empty> | “this” |
1 | R | 是 |
2 | <empty> | “一些” |
3 | G | “colored” |
4 | <empty> | "text" |
如果 pTargetRange 为 NULL,则枚举器将以包含上下文中非空属性值的第一个和最后一个范围开头和结尾。 在上述示例中为 pTargetRange 指定 NULL 会导致枚举器具有三个范围。
范围索引 | Color 属性值 | 范围内的文本 |
---|---|---|
0 | R | 是 |
1 | <empty> | “一些” |
2 | G | “colored” |
枚举范围将以 pTargetRange 的开始和结束定位点开头和结束,即使任一定位点都定位在属性的中间。
要求
最低受支持的客户端 | Windows 2000 专业版 [桌面应用 |UWP 应用] |
最低受支持的服务器 | Windows 2000 Server [桌面应用 |UWP 应用] |
目标平台 | Windows |
标头 | msctf.h |
DLL | Msctf.dll |
可再发行组件 | Windows 2000 专业版上的 TSF 1.0 |