Share via


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

Usado por el administrador de TSF para proporcionar un bloqueo de documento con el fin de modificar la secuencia de texto.

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 sincrónicamente.

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 ITextStoreAnchorSink::OnLockGranted para bloquear el documento. Las aplicaciones nunca deben modificar el documento ni enviar notificaciones de cambio mediante el método ITextStoreAnchorSink::OnTextChange desde el método ITextStoreAnchor::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 ITextStoreAnchor::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 el bloqueo se concede antes de que se devuelva el método ITextStoreAnchor::RequestLock , el parámetro phrSession recibirá el VALOR HRESULT devuelto por el método ITextStoreAnchorSink::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 ITextStoreAnchor::RequestLock devuelve algo distinto de S_OK.

Un llamador nunca debe llamar a este método de forma reentrante, 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 reentrant 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 documento.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 2000 Professional [aplicaciones de escritorio | Aplicaciones para UWP]
Servidor mínimo compatible Windows 2000 Server [aplicaciones de escritorio | Aplicaciones para UWP]
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

ITextStoreAnchor

ITextStoreAnchorSink::OnLockGranted

TS_LF_* Constantes

Valores devueltos del almacén de texto