iTfContext::RequestEditSession 方法 (msctf.h)

获取对文档文本和属性的访问权限。

语法

HRESULT RequestEditSession(
  [in]  TfClientId     tid,
  [in]  ITfEditSession *pes,
  [in]  DWORD          dwFlags,
  [out] HRESULT        *phrSession
);

parameters

[in] tid

包含标识要与其建立编辑会话的客户端的 TfClientId 值。

[in] pes

指向调用以执行编辑会话的 ITfEditSession 接口的指针。

[in] dwFlags

包含以下一个或多个值。

含义
TF_ES_ASYNCDONTCARE
编辑会话可以同步或异步进行,由 TSF 管理器决定。 经理将尝试安排同步编辑会话以提高性能。 此值不能与TF_ES_ASYNC或TF_ES_SYNC值组合使用。
TF_ES_SYNC
编辑会话必须是同步的,否则请求将失败, (TF_E_SYNCHRONOUS) 。 此标志仅应用于记录 (例如击键处理) 预期成功的情况。 否则,调用可能会失败。 此值不能与TF_ES_ASYNCDONTCARE或TF_ES_ASYNC值组合使用。
TF_ES_READ
请求对上下文的只读访问权限。
TF_ES_READWRITE
请求对上下文的读/写访问权限。
TF_ES_ASYNC
编辑会话必须是异步的,否则请求将失败。 此值不能与TF_ES_ASYNCDONTCARE或TF_ES_SYNC值组合使用。

[out] phrSession

接收编辑会话请求结果的 HRESULT 值的地址。 接收的值取决于请求的编辑会话的类型。

  • 如果请求异步编辑会话并且可以建立,则 接收TF_S_ASYNC。
  • 如果请求同步编辑会话但无法建立,则 接收TF_E_SYNCHRONOUS。
  • 如果指定了TF_ES_READWRITE标志并且文档为只读,则 接收TS_E_READONLY。
  • 如果建立了同步编辑会话,则 接收 ITfEditSession::D oEditSession 的返回值。

返回值

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

说明
S_OK
方法成功。 phrSession 包含方法的更多结果数据。
TF_E_LOCKED
调用方位于另一个已持有锁的文本服务的上下文中。
TF_E_DISCONNECTED
上下文不在文档堆栈上。
E_INVALIDARG
一个或多个参数无效。
E_OUTOFMEMORY
发生内存分配失败。

注解

挂起的异步编辑会话按接收的顺序进行处理。 同步编辑会话在任何挂起的异步编辑会话之前进行处理。

文本服务可以在现有编辑会话的上下文中请求编辑会话,前提是只读会话中未请求写入访问会话。 在另一个文本服务建立的编辑会话的上下文中调用此方法将失败,并TF_E_LOCKED。

如果在处理以下通知之一时发出同步读/写请求,则会失败。

要求

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

另请参阅

ITfContext 接口ITfEditSession 接口ITfStatusSink::OnStatusChangeITfTextEditSink::OnEndEditITfTextLayoutSink::OnLayoutChange