Share via


Metodo ITextStoreACP::RequestLock (textstor.h)

Il metodo ITextStoreACP::RequestLock viene chiamato dal gestore TSF per fornire un blocco di documento per modificare il documento. Questo metodo chiama il metodo ITextStoreACPSink::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 viene 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 ITextStoreACPSink::OnLockGranted per bloccare il documento. Le applicazioni non devono mai modificare il documento o inviare notifiche di modifica usando il metodo ITextStoreACPSink::OnTextChange dall'interno del metodo ITextStoreACP::RequestLock . Se l'applicazione presenta modifiche in sospeso per il report, l'applicazione può rispondere solo alla richiesta di blocco asincrona.

Le applicazioni non devono tentare di accodare più chiamate al metodo ITextStoreACP::RequestLock , perché l'applicazione richiede un solo 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 riuscite per i blocchi sincroni 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 gestire la richiesta asincrona in sospeso, se presente.

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

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

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

Requisiti

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

Vedi anche

Blocchi documento

ITextStoreACP

ITextStoreACPSink::OnLockGranted

Costanti TS_LF_*

Valori restituiti dell'archivio testo