ITextStoreAnchor::RequestLock 方法 (textstor.h)
TSF 管理員用來提供文件鎖定,以修改文字數據流。
語法
HRESULT RequestLock(
[in] DWORD dwLockFlags,
[out] HRESULT *phrSession
);
參數
[in] dwLockFlags
指定要求的鎖定類型。
值 | 意義 |
---|---|
|
檔具有只讀鎖定,而且無法修改。 |
|
檔具有讀取/寫入鎖定,並可加以修改。 |
|
如果此旗標與其他旗標結合,則檔具有同步鎖定。 |
[out] phrSession
如果鎖定要求是同步的,則會從 ITextStoreAnchorSink::OnLockGranted 方法接收 HRESULT 值,指定鎖定要求的結果。
如果鎖定要求為異步,且結果 TS_S_ASYNC,則檔會收到異步鎖定。 如果鎖定要求是異步的,且結果TS_E_SYNCHRONOUS,則無法同步鎖定檔。
傳回值
這個方法可以傳回其中一個值。
值 | 描述 |
---|---|
|
此方法成功。 |
|
發生未指定的錯誤。 |
備註
這個方法會使用 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 |