Share via


Método ITextStoreACP::RequestLock (texttor.h)

El administrador de TSF llama al método ITextStoreACP::RequestLock para proporcionar un bloqueo de documento para modificar el documento. Este método llama al método ITextStoreACPSink::OnLockGranted para crear el bloqueo del documento.

Sintaxis

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

Parámetros

[in] dwLockFlags

Especifica el tipo de bloqueo solicitado.

Valor Significado
TS_LF_READ
El documento tiene un bloqueo de solo lectura y no se puede modificar.
TS_LF_READWRITE
El documento tiene un bloqueo de lectura y escritura y se puede modificar.
TS_LF_SYNC
El documento tiene un bloqueo sincrónico si esta marca se combina con otras marcas.

[out] phrSession

Si la solicitud de bloqueo es sincrónica, recibe un valor HRESULT del método ITextStoreAnchorSink::OnLockGranted que especifica el resultado de la solicitud de bloqueo.

Si la solicitud de bloqueo es asincrónica y el resultado es TS_S_ASYNC, el documento recibe un bloqueo asincrónico. Si la solicitud de bloqueo es asincrónica y el resultado es TS_E_SYNCHRONOUS, el documento no se puede bloquear de forma sincrónica.

Valor devuelto

Este método puede devolver uno de estos valores.

Valor Descripción
S_OK
Método realizado correctamente.
E_FAIL
Se ha producido un error no especificado.

Comentarios

Este método usa el método ITextStoreACPSink::OnLockGranted para bloquear el documento. Las aplicaciones nunca deben modificar el documento ni enviar notificaciones de cambios mediante el método ITextStoreACPSink::OnTextChange desde el método ITextStoreACP::RequestLock . Si la aplicación tiene cambios pendientes en el informe, la aplicación solo puede responder a la solicitud de bloqueo asincrónica.

Las aplicaciones no deben intentar poner en cola varias llamadas al método ITextStoreACP::RequestLock , ya que la aplicación solo requiere una sola devolución de llamada. Sin embargo, si el autor de la llamada realiza varias solicitudes de lectura y una o varias solicitudes de escritura, la devolución de llamada debe ser para el acceso de escritura.

Las solicitudes correctas de bloqueos sincrónicos reemplazan las solicitudes de bloqueos asincrónicos. Las solicitudes incorrectas de bloqueos sincrónicos no reemplazan las solicitudes de bloqueos asincrónicos. La implementación todavía debe atender la solicitud asincrónica pendiente, si existe.

Si se concede el bloqueo antes de que se devuelva el método ITextStoreACP::RequestLock , el parámetro phrSession recibirá el VALOR HRESULT devuelto por el método ITextStoreACPSink::OnLockGranted . Si la llamada se realiza correctamente, pero el bloqueo se concederá más adelante, el parámetro phrSession recibe la marca TS_S_ASYNC. El parámetro phrSession debe omitirse si ITextStoreACP::RequestLock devuelve algo distinto de S_OK.

Un llamador nunca debe llamar a este método de forma reentrant, excepto en el caso de que el autor de la llamada contenga un bloqueo de solo lectura. En este caso, se puede llamar al método de forma reentrante para solicitar un bloqueo de escritura asincrónico. El bloqueo de escritura se concederá más adelante, después de que finalice el bloqueo de solo lectura.

Para obtener más información sobre los bloqueos de documentos, vea Bloqueos de documentos.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [solo aplicaciones de escritorio]
Servidor mínimo compatible Windows 2000 Server [solo aplicaciones de escritorio]
Plataforma de destino Windows
Encabezado textstor.h
Archivo DLL Msctf.dll
Redistribuible TSF 1.0 en Windows 2000 Professional

Consulte también

Bloqueos de documento

ITextStoreACP

ITextStoreACPSink::OnLockGranted

TS_LF_* constantes

Valores devueltos del almacén de texto