Compartilhar via


Método ITextStoreACP2::RequestLock (textstor.h)

Chamado pelo gerente do TSF para fornecer um bloqueio de documento para modificar o documento. Esse método chama o método OnLockGranted para criar o bloqueio de documento.

Sintaxe

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

Parâmetros

[in] dwLockFlags

Especifica o tipo de bloqueio solicitado.

Valor Significado
TS_LF_READ
O documento tem um bloqueio somente leitura e não pode ser modificado.
TS_LF_READWRITE
O documento tem um bloqueio de leitura/gravação e pode ser modificado.
TS_LF_SYNC
O documento terá um bloqueio síncrono se esse sinalizador for combinado com outros sinalizadores.

[out] phrSession

Se a solicitação de bloqueio for síncrona, receberá um valor HRESULT do método OnLockGranted que especifica o resultado da solicitação de bloqueio.

Se a solicitação de bloqueio for assíncrona e o resultado for TS_S_ASYNC, o documento receberá um bloqueio assíncrono. Se a solicitação de bloqueio for assíncrona e o resultado for TS_E_SYNCHRONOUS, o documento não poderá ser bloqueado de forma síncrona.

Retornar valor

Esse método pode retornar um desses valores.

Valor Descrição
S_OK
O método foi bem-sucedido.
E_FAIL
Ocorreu um erro não especificado.

Comentários

Esse método usa o método OnLockGranted para bloquear o documento. Os aplicativos nunca devem modificar o documento ou enviar notificações de alteração usando o método OnTextChange de dentro do método RequestLock . Se o aplicativo tiver alterações pendentes no relatório, o aplicativo só poderá responder à solicitação de bloqueio assíncrona.

Os aplicativos não devem tentar enfileirar várias chamadas de método RequestLock , pois o aplicativo requer apenas um único retorno de chamada. Se o chamador fizer várias solicitações de leitura e uma ou mais solicitações de gravação, no entanto, o retorno de chamada deverá ser para acesso de gravação.

Solicitações bem-sucedidas para bloqueios síncronos substituem solicitações de bloqueios assíncronos. Solicitações malsucedidas para bloqueios síncronos não substituem solicitações de bloqueios assíncronos. A implementação ainda deve atender à solicitação assíncrona pendente, se houver uma.

Se o bloqueio for concedido antes que o método RequestLock retorne, o parâmetro phrSession receberá o HRESULT retornado pelo método OnLockGranted . Se a chamada for bem-sucedida, mas o bloqueio for concedido posteriormente, o parâmetro phrSession receberá o sinalizador TS_S_ASYNC. O parâmetro phrSession deve ser ignorado se RequestLock retornar algo diferente de S_OK.

Um chamador nunca deve chamar esse método novamente, exceto no caso de o chamador conter um bloqueio somente leitura. Nesse caso, o método pode ser chamado reentradamente para solicitar um bloqueio de gravação assíncrono. O bloqueio de gravação será concedido posteriormente, depois que o bloqueio somente leitura terminar.

Para obter mais informações sobre bloqueios de documentos, consulte Bloqueios de documentos.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8 [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2012 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho textstor.h
DLL Msctf.dll

Confira também

Bloqueios de documentos

ITextStoreACP2

OnLockGranted

constantes TS_LF_*

Valores retornados do Repositório de Texto