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
標頭 msctf.h
Dll Msctf.dll
可轉散發套件 Windows 2000 專業版上的 TSF 1.0

另請參閱

ITfCoNtext 介面ITfEditSession 介面ITfStatusSink::OnStatusChangeITfTextEditSink::OnEndEditITfTextLayoutSink::OnLayoutChange