Share via


(textstor.h) ITextStoreACP2::RequestLock 方法

由 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_* 常數

文字存放區傳回值