Condividi tramite


Metodo ITextStoreAnchor::RequestLock (textstor.h)

Usato dal gestore TSF per fornire un blocco del documento per modificare il flusso di testo.

Sintassi

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

Parametri

[in] dwLockFlags

Specifica il tipo di blocco richiesto.

Valore Significato
TS_LF_READ
Il documento ha un blocco di sola lettura e non può essere modificato.
TS_LF_READWRITE
Il documento ha un blocco di lettura/scrittura e può essere modificato.
TS_LF_SYNC
Il documento ha un blocco sincrono se questo flag è combinato con altri flag.

[out] phrSession

Se la richiesta di blocco è sincrona, riceve un valore HRESULT dal metodo ITextStoreAnchorSink::OnLockGranted che specifica il risultato della richiesta di blocco.

Se la richiesta di blocco è asincrona e il risultato è TS_S_ASYNC, il documento riceve un blocco asincrono. Se la richiesta di blocco è asincrona e il risultato è TS_E_SYNCHRONOUS, il documento non può essere bloccato in modo sincrono.

Valore restituito

Questo metodo può restituire uno di questi valori.

Valore Descrizione
S_OK
Il metodo è stato eseguito correttamente.
E_FAIL
Si è verificato un errore non specificato.

Commenti

Questo metodo usa il metodo ITextStoreAnchorSink::OnLockGranted per bloccare il documento. Le applicazioni non devono mai modificare il documento o inviare notifiche di modifica usando il metodo ITextStoreAnchorSink::OnTextChange dall'interno del metodo ITextStoreAnchor::RequestLock . Se l'applicazione ha modifiche in sospeso al report, l'applicazione può rispondere solo alla richiesta di blocco asincrona.

Le applicazioni non devono tentare di accodare più chiamate al metodo ITextStoreAnchor::RequestLock , perché l'applicazione richiede solo un singolo callback. Se il chiamante effettua diverse richieste di lettura e una o più richieste di scrittura, tuttavia, il callback deve essere per l'accesso in scrittura.

Le richieste di esito positivo per i blocchi sincrono sostituiscono le richieste per i blocchi asincroni. Le richieste non riuscite per i blocchi sincroni non sostituiscono le richieste per i blocchi asincroni. L'implementazione deve comunque servire la richiesta asincrona in sospeso, se presente.

Se il blocco viene concesso prima che il metodo ITextStoreAnchor::RequestLock restituisca, il parametro phrSession riceverà il valore HRESULT restituito dal metodo ITextStoreAnchorSink::OnLockGranted . Se la chiamata ha esito positivo, ma il blocco verrà concesso in un secondo momento, il parametro phrSession riceve il flag di TS_S_ASYNC. Il parametro phrSession deve essere ignorato se ITextStoreAnchor::RequestLock restituisce qualsiasi elemento diverso da S_OK.

Un chiamante non deve mai chiamare questo metodo in modo reentrantly, tranne nel caso in cui il chiamante contenga un blocco di sola lettura. In questo caso, il metodo può essere chiamato reentrantly per chiedere un blocco di scrittura asincrono. Il blocco di scrittura verrà concesso in un secondo momento, dopo la fine del blocco di sola lettura.

Per altre informazioni sui blocchi dei documenti, vedere Blocchi documenti.

Requisiti

Requisito Valore
Client minimo supportato Windows 2000 Professional [app desktop | App UWP]
Server minimo supportato Windows 2000 Server [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione textstor.h
DLL Msctf.dll
Componente ridistribuibile TSF 1.0 in Windows 2000 Professional

Vedi anche

Blocchi documenti

ITextStoreAnchor

ITextStoreAnchorSink::OnLockGranted

costanti TS_LF_*

Valori restituiti dall'archivio testo