Condividi tramite


Metodo ITextStoreACP2::RequestLock (textstor.h)

Chiamato dal gestore TSF per fornire un blocco documento per modificare il documento. Questo metodo chiama il metodo OnLockGranted per creare il blocco del documento.

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 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 OnLockGranted per bloccare il documento. Le applicazioni non devono mai modificare il documento o inviare notifiche di modifica usando il metodo OnTextChange dall'interno del metodo 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 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 RequestLock restituisca, il parametro phrSession riceverà il valore HRESULT restituito dal metodo 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 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 8 [app desktop | App UWP]
Server minimo supportato Windows Server 2012 [app desktop | App UWP]
Piattaforma di destinazione Windows
Intestazione textstor.h
DLL Msctf.dll

Vedi anche

Blocchi documenti

ITextStoreACP2

OnLockGranted

costanti TS_LF_*

Valori restituiti dall'archivio testo