CSimpleStringT::LockBuffer
Désactive le décompte de références et empêché la chaîne dans la mémoire tampon.
PXSTR LockBuffer( );
Valeur de retour
Un pointeur vers un objet d' CSimpleStringT ou une chaîne terminée par le caractère NULL.
Notes
Appelez cette méthode pour verrouiller la mémoire tampon de l'objet d' CSimpleStringT . En appelant LockBuffer, vous créez une copie de la chaîne, avec A-1 pour le décompte de références. Lorsque la valeur de décompte de références est -1, la chaîne dans la mémoire tampon est considérée comme dans un état verrouillé « ». Alors que dans un état verrouillé, la chaîne est protégée de deux façons :
Aucune autre chaîne ne peut obtenir une référence aux données de la chaîne verrouillée, même si cette chaîne est assignée à la chaîne verrouillée.
La chaîne verrouillée ne référence jamais une autre chaîne, même si cette autre chaîne est copié dans la chaîne verrouillée.
En verrouillant la chaîne dans la mémoire tampon, vous vous assurez que le blocage exclusif de la chaîne de caractères dans la mémoire tampon reste intact.
Après avoir terminé avec LockBuffer, appelez UnlockBuffer pour réinitialiser le décompte de références à 1.
Notes
Si vous appelez GetBuffer sur une mémoire tampon verrouillée et vous affectez au paramètre nMinBufferLength d' GetBuffer à supérieur à la longueur de la mémoire tampon actuel, vous perdrez le verrou de mémoire tampon.Un appel à GetBuffer perd le tampon actuel, le remplace par une mémoire tampon de taille demandée, et réinitialise le décompte de références à zéro.
Pour plus d'informations sur le décompte de références, consultez les articles suivants :
Gérer les durées de vie des objets via le décompte de références dans Kit de développement logiciel Windows
implémenter le décompte de références dans Kit de développement logiciel Windows
règles pour gérer des nombres de références dans Kit de développement logiciel Windows
Exemple
L'exemple suivant illustre l'utilisation du mot clé CSimpleStringT::LockBuffer :
CSimpleString str(_T("Hello"), pMgr);
TCHAR ch;
str.LockBuffer();
ch = str.GetAt(2);
_tprintf_s(_T("%c"), ch);
str.UnlockBuffer();
Configuration requise
Header: atlsimpstr.h