ITextStoreAnchor::RequestLock 方法 (textstor.h)

由 TSF 管理器用来提供文档锁以修改文本流。

语法

HRESULT RequestLock(
  [in]  DWORD   dwLockFlags,
  [out] HRESULT *phrSession
);

参数

[in] dwLockFlags

指定所请求的锁类型。

含义
TS_LF_READ
文档具有只读锁,无法修改。
TS_LF_READWRITE
文档具有读/写锁,可以修改。
TS_LF_SYNC
如果此标志与其他标志结合使用,则文档具有同步锁。

[out] phrSession

如果锁定请求是同步的,则 从 ITextStoreAnchorSink::OnLockGranted 方法接收 HRESULT 值,该值指定锁定请求的结果。

如果锁定请求是异步的,并且结果 TS_S_ASYNC,则文档会收到异步锁。 如果锁定请求是异步的,并且结果TS_E_SYNCHRONOUS,则文档无法同步锁定。

返回值

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

说明
S_OK
方法成功。
E_FAIL
发生了未指定的错误。

注解

此方法使用 ITextStoreAnchorSink::OnLockGranted 方法锁定文档。 应用程序不得使用 ITextStoreAnchor::RequestLock 方法中的 ITextStoreAnchorSink::OnTextChange 方法修改文档 发送更改通知。 如果应用程序有待报告的更改,则应用程序只能响应异步锁请求。

应用程序不应尝试将多个 ITextStoreAnchor::RequestLock 方法调用排队,因为应用程序只需要单个回调。 但是,如果调用方发出多个读取请求和一个或多个写入请求,则回调应用于写入访问。

同步锁的成功请求取代异步锁的请求。 同步锁的失败请求不会取代异步锁的请求。 实现仍必须为未完成的异步请求提供服务(如果存在)。

如果在 ITextStoreAnchor::RequestLock 方法返回之前授予锁定, 则 phrSession 参数将接收 ITextStoreAnchorSink::OnLockGranted 方法返回的 HRESULT。 如果调用成功,但稍后将授予锁, 则 phrSession 参数将接收TS_S_ASYNC标志。 如果 ITextStoreAnchor::RequestLock 返回除S_OK以外的任何内容,则应忽略 phrSession 参数。

调用方绝不应重新调用此方法,除非调用方持有只读锁。 在这种情况下,可以重新调用 方法以请求异步写入锁。 稍后将在只读锁结束后授予写入锁。

有关文档锁的详细信息,请参阅 文档锁

要求

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

另请参阅

文档锁定

ITextStoreAnchor

ITextStoreAnchorSink::OnLockGranted

TS_LF_* 常量

文本存储返回值