CSimpleStringT::LockBuffer
Wyłącza odwołanie inwentaryzacji i chroni w buforze ciągu.
PXSTR LockBuffer( );
Wartość zwracana
Wskaźnik do CSimpleStringT obiektu lub ciąg zakończony znakiem null.
Uwagi
Wywołanie tej metody, aby zablokować buforu z CSimpleStringT obiektu.Wywołując LockBuffer, Utwórz kopię ciąg z –1 dla licznika odwołań.Gdy wartość licznika odniesienia jest -1, w buforze ciągu uważana jest w stanie "zablokowana".Która znajduje się w stanie zablokowania ciąg jest chroniony na dwa sposoby:
Nie inne ciąg można uzyskać odwołanie do danych w ciągu zablokowane, nawet jeśli ten ciąg jest przypisany do zablokowanej ciąg.
Ciąg zablokowane nigdy nie będzie odwoływać innego ciągu, nawet jeśli inne ciągu jest kopiowany do zablokowanej ciąg.
Blokowanie ciąg w buforze, zapewnienia, ciąg hold wyłączności na buforze pozostaną nienaruszone.
Po zakończeniu z LockBuffer, call UnlockBuffer resetowania licznika odwołań do 1.
[!UWAGA]
Jeśli zadzwonisz GetBuffer buforu zablokowane i można ustawić GetBuffer parametr nMinBufferLength większej niż długość buforu bieżącego, utracisz lock buforu.Wywołanie do GetBuffer niszczy bieżący bufor, zamienia bufor o żądanym rozmiarze i resetuje liczbę odwołań do zera.
Aby uzyskać więcej informacji na temat liczenia odniesienia, zobacz następujące artykuły:
Zarządzanie istnienia obiektu poprzez liczenie odniesienia wWindows SDK
Wykonawczych zliczania odniesienia wWindows SDK
Zasady zarządzania zliczanie odwołań wWindows SDK
Przykład
Poniższy przykład ilustruje użycie CSimpleStringT::LockBuffer.
CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;
str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();
Wymagania
Nagłówek: atlsimpstr.h