共用方式為


ITextStoreAnchor::RequestLock 方法 (textstor.h)

TSF 管理員用來提供文件鎖定,以修改文字數據流。

語法

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

參數

[in] dwLockFlags

指定要求的鎖定類型。

意義
TS_LF_READ
檔具有只讀鎖定,而且無法修改。
TS_LF_READWRITE
檔具有讀取/寫入鎖定,並可加以修改。
TS_LF_SYNC
如果此旗標與其他旗標結合,則檔具有同步鎖定。

[out] phrSession

如果鎖定要求是同步的,則會從 ITextStoreAnchorSink::OnLockGranted 方法接收 HRESULT 值,指定鎖定要求的結果。

如果鎖定要求為異步,且結果 TS_S_ASYNC,則檔會收到異步鎖定。 如果鎖定要求是異步的,且結果TS_E_SYNCHRONOUS,則無法同步鎖定檔。

傳回值

這個方法可以傳回其中一個值。

描述
S_OK
此方法成功。
E_FAIL
發生未指定的錯誤。

備註

這個方法會使用 ITextStoreAnchorSink::OnLockGranted 方法來鎖定檔。 應用程式絕對不能修改檔,或使用 ITextStoreAnchorSink::OnTextChange 方法從 ITextStoreAnchor::RequestLock 方法傳送變更通知。 如果應用程式有待報告的變更,應用程式只能回應異步鎖定要求。

應用程式不應該嘗試將多個 ITextStoreAnchor::RequestLock 方法呼叫排入佇列,因為應用程式只需要單一回呼。 不過,如果呼叫端發出數個讀取要求和一或多個寫入要求,則回呼應該用於寫入存取權。

同步鎖定的成功要求會取代異步鎖定的要求。 同步鎖定的要求不成功,不會取代異步鎖定的要求。 如果存在,實作仍必須提供未處理的異步要求。

如果在 ITextStoreAnchor::RequestLock 方法傳回之前授與鎖定, phrSession 參數將會收到 ITextStoreAnchorSink::OnLockGranted 方法所傳回的 HRESULT。 如果呼叫成功,但稍後會授與鎖定, phrSession 參數會收到TS_S_ASYNC旗標。 如果 ITextStoreAnchor::RequestLock 傳回S_OK以外的任何專案,則應該忽略 phrSession 參數。

呼叫端永遠不應該重新呼叫這個方法,但呼叫端保留只讀鎖定的情況除外。 在此情況下,可以重新呼叫 方法來要求異步寫入鎖定。 寫入鎖定會在唯讀鎖定結束之後授與。

如需文件鎖定的詳細資訊,請參閱 文件鎖定

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows 2000 Server [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 textstor.h
Dll Msctf.dll
可轉散發套件 Windows 2000 專業版上的 TSF 1.0

另請參閱

檔鎖定

ITextStoreAnchor

ITextStoreAnchorSink::OnLockGranted

TS_LF_* 常數

文字存放區傳回值