Метод ITfContext::RequestEditSession (msctf.h)

Получает доступ к тексту и свойствам документа.

Синтаксис

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

Параметры

[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
Header msctf.h
DLL Msctf.dll
Распространяемые компоненты TSF 1.0 в Windows 2000 Professional

См. также раздел

Интерфейс ITfContext, интерфейс ITfEditSession, ITfStatusSink::OnStatusChange, ITfTextEditSink::OnEndEdit, ITfTextLayoutSink::OnLayoutChange