IAnchor::Shift 方法 (textstor.h)

IAnchor::Shift 方法在文本流中向前或向后移动定位点。

语法

HRESULT Shift(
  [in]  DWORD   dwFlags,
  [in]  LONG    cchReq,
  [out] LONG    *pcch,
  [in]  IAnchor *paHaltAnchor
);

参数

[in] dwFlags

用于避免定位点定位的位字段。

含义
TS_SHIFT_COUNT_ONLY
定位点未移动。 如果未 (dwFlags = 0) 设置标志,则定位点将按其他参数设置指定移动。

[in] cchReq

在文本流中移动定位点的字符数。

[out] pcch

文本流中移动的实际字符数。 如果 pcch 失败,方法会将 pcch 设置为零。

[in] paHaltAnchor

对阻止移动的定位点的引用。 设置为 NULL 以避免阻止班次。

返回值

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

说明
S_OK
方法成功。
E_FAIL
班次失败。
E_INVALIDARG
输入参数值无效。
E_NOTIMPL
此方法中未实现 dwFlags 参数值。

注解

cchReqpcch 参数可以是负数,表示文本流中的向后移动,也可以是正的,表示向前移动。 如果遇到文档的开头或结尾、遇到区域边界,或者 paHaltAnchor 收到阻止移动的定位点,则实际移动的字符数可能小于 cchReq

如果 paHaltAnchor 收到阻止班次的定位点,应用程序将截断 paHaltAnchor 占据的位置的移位。如果 paHaltAnchor 不在班次涵盖的文本范围内,则它与班次无关,将被忽略。

例如,如果 paHaltAnchor 引用的定位点位于流中的定位点前 8 个字符,并且客户端调用 Shift (0, 10, pcch, paHaltAnchor) ,则在退出时,定位点将仅移动 8 个字符。 如果 paHaltAnchor 引用的定位点等于要移动的当前定位点,则 Shift 将成功返回,而无需移动定位点。 在这种情况下 ,pcch 将为 0。

定位点移动始终被区域边界阻止,就像遇到文档的开头或结尾一样。 在退出时,实际移位 pcch 的绝对值比请求的移位 cchReq 小,从而指示这一点。 在这种情况下,客户端可以使用 IAnchor::ShiftRegion 将定位点移动到相邻区域。

要求

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

另请参阅

IAnchor

IAnchor::ShiftRegion