ITfProperty::FindRange 方法 (msctf.h)

获取一个范围,该范围涵盖包含属性的非空值的文本。

语法

HRESULT FindRange(
  [in]  TfEditCookie ec,
  [in]  ITfRange     *pRange,
  [out] ITfRange     **ppRange,
  [in]  TfAnchor     aPos
);

parameters

[in] ec

包含标识编辑上下文的编辑 Cookie。 这是从 ITfDocumentMgr::CreateContextITfEditSession::D oEditSession 获取的。

[in] pRange

指向 ITfRange 接口的指针,该接口包含要获取其属性范围的点。 该点将是此范围的起始定位点或结束定位点,具体取决于 aPos 的值。

[out] ppRange

指向接收请求的范围对象的 ITfRange 接口指针的指针。

[in] aPos

包含 一个 TfAnchor 值,该值指定将 pRange 的哪个定位点用作获取其属性范围的点。

返回值

此方法可以返回其中一个值。

说明
S_OK
方法成功。
S_FALSE
pRange 未结束或与 属性相邻。 ppRange 接收 NULL
E_INVALIDARG
一个或多个参数无效。
E_OUTOFMEMORY
内存分配失败。
E_FAIL
发生了未指定的错误。
TF_E_NOLOCK
ec 标识的编辑上下文没有只读或读/写锁。

注解

此方法获取包含 属性的非空值的文本范围。 如果属性在指定点没有值, ppRange 将接收 NULL ,并且方法返回S_FALSE。 在以下示例中,如果 aPos 包含 TF_ANCHOR_START,则返回的范围将包含“is”。 如果 aPos 包含TF_ANCHOR_END,则 该方法将返回S_FALSE,因为 属性在范围的终点不存在。


COLOR: RRRRR   RR          GGGGGGGG
TEXT:  this <a>is som</a>e colored text

如果 aPos 包含TF_ANCHOR_START,此方法将忽略紧邻开始定位点之前结束的属性范围。 同样,如果 aPos 包含TF_ANCHOR_END,此方法将忽略在结束定位点之后立即开始的属性范围。 在以下示例中,如果 aPos 包含TF_ANCHOR_START,则返回的范围将包含“colored”而不是“some”,因为 R 值属性在起始定位点处结束,G 值属性从开始定位点开始。 如果 aPos 包含TF_ANCHOR_END,则返回的范围将包含“colored”而不是“text”。


COLOR:         RRRRR   GGGGGGGG    BBBB
TEXT:  this is some <a>colored </a>text

要求

   
最低受支持的客户端 Windows 2000 专业版 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows 2000 Server [桌面应用 |UWP 应用]
目标平台 Windows
标头 msctf.h
DLL Msctf.dll
可再发行组件 Windows 2000 专业版上的 TSF 1.0

另请参阅

ITfDocumentMgr::CreateContext

ITfEditSession::D oEditSession

ITfProperty

ITfRange

TfAnchor