Compartir a través de


CSimpleStringT::LockBuffer

Deshabilita el recuento de referencias y protege la cadena en el búfer.

PXSTR LockBuffer( );

Valor devuelto

Un puntero a un objeto de CSimpleStringT o una cadena terminada en null.

Comentarios

Llame a este método para bloquear el búfer del objeto de CSimpleStringT . Llamando a LockBuffer, se crea una copia de la cadena, con a – 1 para el recuento de referencias. Cuando el valor de recuento de referencias es -1, la cadena en el búfer se considera estar en un estado “bloqueado”. Mientras está en un estado bloqueado, la cadena se protege de dos maneras:

  • Ninguna otra cadena puede obtener una referencia a los datos en la cadena bloqueada, aunque esa cadena se asigna a la cadena bloqueada.

  • La cadena bloquea nunca hará referencia a otra cadena, aunque esa otra cadena se copia a la cadena bloqueada.

Bloqueando la cadena en el búfer, se asegura de que permanecerá el bloqueo de la exclusiva de la cadena en el búfer intacto.

Cuando haya terminado con LockBuffer, llamada UnlockBuffer para restablecer el recuento de referencias en 1.

Nota

Si llama a GetBuffer en un búfer y se bloquean establecidos el parámetro nMinBufferLength de GetBuffer a mayor que la longitud del búfer actual, se perderá el bloqueo del búfer.Una llamada a GetBuffer destruye el búfer actual, reemplácela con un búfer de tamaño solicitado, y restablece el recuento de referencias en cero.

Para obtener más información sobre el recuento de referencias, vea los artículos siguientes:

Ejemplo

El siguiente ejemplo muestra el uso de CSimpleStringT::LockBuffer.

CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;

str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();

Requisitos

encabezado: atlsimpstr.h

Vea también

Referencia

CSimpleStringT Class

CSimpleStringT::ReleaseBuffer