#include <aknmessagequerydialog.h>     // CAknMessageQueryDialog
#include <HelloWorld_0xE5D64214.rsg>   // Identyfikatory zasobw

#include "HelloWorld.hrh"              // Identyfikatory komend

// ...

void CHelloWorldAppUi::HandleCommandL(TInt aCommand)
    {
    switch (aCommand)
        {
        // ...
        case EAbout:
            {
            // 1) Tworzenie obiektu okna dialogowego
            CAknMessageQueryDialog* oProgramie = new( ELeave ) CAknMessageQueryDialog();
            // 2) Konstruowanie dialogu na podstawie zasobw
            oProgramie->PrepareLC( R_ABOUT_QUERY_DIALOG );
            // 3) Zaadowanie z zasobw tekstu nagwka okna
            HBufC* title = iEikonEnv->AllocReadResourceLC( R_ABOUT_DIALOG_TITLE );
            // 4) Ustawianie nagwka
            oProgramie->QueryHeading()->SetTextL( *title );
            // 5) Tekst nagwka zosta skopiowany do obiektu okna - mona go ju
            // zwolni.
            CleanupStack::PopAndDestroy( title );
            // 6) Zaadowanie z zasobw tekstu komunikatu dla okna
            HBufC* msg = iEikonEnv->AllocReadResourceLC( R_ABOUT_DIALOG_TEXT );
            // 7) Ustawianie tekstu komunikatu
            oProgramie->SetMessageTextL( *msg );
            // 8) Zwolnienie pamici zajmowanej przez tekst komunikatu
            CleanupStack::PopAndDestroy( msg );
            // 9) Wywietlenie okna dialogowego 
            oProgramie->RunLD();    // Ta linia si wykona dopiero wtedy, gdy okno
                                    // dialogowe zostanie zamknite (wwczas
                                    // wskanik oProgramie zostanie automatycznie
                                    // zwolniony, nie trzeba uywa instrukcji
                                    // delete).
            }
            break;
        // ...
        }
    }
