ITextStoreACP2::RequestLock 方法 (textstor.h)

由 TSF 管理器调用以提供文档锁以修改文档。 此方法调用 OnLockGranted 方法来创建文档锁。

语法

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

参数

[in] dwLockFlags

指定所请求的锁的类型。

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

[out] phrSession

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

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

返回值

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

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

注解

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

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

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

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

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

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

要求

要求
最低受支持的客户端 Windows 8 [桌面应用 |UWP 应用]
最低受支持的服务器 Windows Server 2012 [桌面应用 |UWP 应用]
目标平台 Windows
标头 textstor.h
DLL Msctf.dll

另请参阅

文档锁

ITextStoreACP2

OnLockGranted

TS_LF_* 常量

文本存储返回值