int CWinApp::Run()
{
    /* Erfrage und verteile die Nachrichten bis
    WM_QUIT eintrifft. */
    while (1)
    {
        LONG lIdleCount = 0;

        // kann Hintergrundarbeit erledigt werden?
        while (!::PeekMessage(&m_msgCur, NULL, NULL, NULL,
        PM_NOREMOVE) && OnIdle(lIdleCount++))
        {
            // Hier ist Platz fr die Hintergrundarbeit.
        }

        // Entweder gibt es eine Nachricht oder OnIdle
        // hat FALSE geliefert.
        if (!PumpMessage())
        break;
    }

    return ExitInstance();
}

