CString::LockBuffer

Этот метод блокирует строку в буфере.

LPTSTRLockBuffer();

Возвращаемое значение

Возвращает указатель на объект CString или строку С НУЛЕВЫМ СИМВОЛОМ В КОНЦЕ.

Замечания

Вызывая LockBuffer, Вы создаете копию строки, и затем устанавливаете reference count на-1. Когда reference count установлен на -1, строка в буфере, как полагают, находится в блокированном состоянии. В блокированном состоянии, строка защищена двумя способами:

·         Никакая другая строка не может получить ссылку к данным в блокированной строке, даже если той строке присваивается блокированная.

·         Блокированная строка никогда не будет ссылаться на данные другой строки, даже если та другая строка скопирована в блокированную строку.

Блокируя строку в буфере, Вы гарантируете, что содержание строки в буфере, остается неповрежденным.

После того, как Вы закончили с LockBuffer, вызовите UnlockBuffer, чтобы сбросить reference count к 1.

Если Вы вызываете GetBuffer на блокированном буфере, и Вы устанавливаете параметр GetBuffer nMinBufLength в большее значение чем длина текущего буфера, Вы теряете буферную блокировку. Такой запрос к GetBuffer уничтожает текущий буфер, заменяет это буфером требуемого размера, и сбрасывает reference count к 0.

 

См. Также

CString::UnlockBuffer, CString::GetBuffer, CString::ReleaseBuffer