Compartir a través de


Editar contextos

APLICACIONES

Para crear un contexto de edición, una aplicación llama a ITfDocumentMgr::CreateContext.

Servicios de texto

Un servicio de texto suele usar el contexto de edición activo actualmente. El contexto de edición activo actualmente es el contexto de edición en la parte superior de la pila del administrador de documentos activo. Para obtener el contexto activo actualmente, un servicio de texto llama a ITfThreadMgr::GetFocus para obtener el administrador de documentos activo y, a continuación, llama a ITfDocumentMgr::GetTop para obtener el contexto de edición en la parte superior de la pila.

En algunos casos, un servicio de texto requiere su propio contexto de edición. Para crear un contexto de edición, un servicio de texto llama a ITfDocumentMgr::CreateContext.

Editar cookies

Muchos métodos, como ITfRange::SetText, requieren una manera de identificar un contexto de edición que tenga un bloqueo de documento de solo lectura o de lectura y escritura. Un bloqueo de documento se obtiene a través de una negociación entre el administrador de TSF y la aplicación. Un servicio de texto no puede realizar esta negociación directamente. Un servicio de texto solo puede obtener un bloqueo solicitando una sesión de edición con un contexto específico y acceso de solo lectura o de lectura y escritura. Cuando se concede la sesión de edición, el servicio de texto se proporciona con una cookie de edición que identifica el contexto de edición con el acceso solicitado. A continuación, esta cookie se pasa al método para identificar el contexto de edición con el acceso adecuado.

ITfDocumentMgr::CreateContext también proporciona una cookie de edición al creador del contexto. Esta cookie tiene acceso de solo lectura y no hay ninguna manera de modificar el nivel de acceso. En verdad, el administrador de TSF no negocia un bloqueo de documento para esta cookie de edición. La cookie está marcada internamente como de solo lectura, pero el documento no está realmente bloqueado. Por ejemplo, si el creador del contexto llama a ITfContext::GetSelection con la cookie de edición devuelta por ITfDocumentMgr::CreateContext , se llama a ITextStoreACP::GetSelection o ITextStoreAnchor::GetSelection . Antes de obtener la selección, la aplicación determinará si existe un bloqueo de documento. Dado que no existe ningún bloqueo, se producirá un error en la aplicación con TS_E_NOLOCK. Es decir, si una aplicación llama a un método con esta cookie que da como resultado una de las llamadas a uno de los métodos de almacén de texto de la aplicación, debe controlar este caso internamente porque la aplicación no tendrá realmente un bloqueo de documento.

Si el creador del contexto requiere una cookie de edición con acceso de lectura y escritura, debe establecer su propia sesión de edición.

ITfContext

ITfDocumentMgr::CreateContext

ITfThreadMgr::GetFocus

ITfDocumentMgr::GetTop

ITfRange::SetText

Bloqueos de documento

Sesiones de edición

ITfContext::GetSelection

ITextStoreACP::GetSelection

ITextStoreAnchor::GetSelection