// Tworzymy dynamiczny deskryptor buforowy i odkadamy
// wskanik do niego na CleanupStack.
HBufC* hbufc1 = HBufC::NewLC( 20 );

// Definiujemy litera.
_LIT( KTekst, "Deskryptor HBufC" );
// Kopiujemy zawarto literau do deskryptora hbufc1.
*hbufc1 = KTekst;
// Nie mona modyfikowa zawartoci deskryptora HBufC.
// Dozwolona jest jedynie operacja przypisania (w ten
// sposb zastpowana jest caa poprzednia zawarto
// deskryptora). Aby moliwe byo wykonywanie operacji
// modyfikujcych dane, naley uzyska dostp do obiektu
// TPtr skojarzonego z danymi deskryptora.
TPtr wsk = hbufc1->Des();    
// wsk = hbufc1 = "Deskryptor HBufC"

// Modyfikujemy zawarto deskryptora hbufc1.
_LIT( KTekstPodmieniany, "HBufC" );
_LIT( KTekstDoPodmiany, "TPtr" );
wsk.Replace( wsk.Find( KTekstPodmieniany ), KTekstPodmieniany().Length(), KTekstDoPodmiany );
// wsk = hbufc1 = "Deskryptor TPtr"

// Usuwamy deskryptor.
CleanupStack::PopAndDestroy( hbufc1 );

// Tworzymy kolejny dynamiczny deskryptor buforowy.
HBufC* hbufc2 = HBufC::NewMaxL( 20 );
// Deskryptor wypeniony jest przypadkowymi danymi.
// Podmieniamy dowolny znak.
wsk = hbufc2->Des();
wsk[5] = L'5';
// Operacja si udaa; prba jej wykonania na
// deskryptorze hbufc1 spowodowaaby wygenerowanie
// paniki USER 9.

// Nie odkadalimy deskryptora hbufc2 na CleanupStack,
// wic zwalniamy obiekt w klasyczny sposb.
delete hbufc2;
