The framework can be thought of as fully functioning template application. The application development consists of modifying callback procedure behaviour and modifying object behaviour using inheritance.
This paradigm provides the patterns for understanding development with Rapid Application Development (RAD) systems such as Delphi, where the Integrated Development Environment (IDE) provides the template application and the programmer fills in the appropriate event handlers. The developer has the option of modifying existing objects via inheritance.
C++ Hierarchy Design Idioms by Stephen C. Dewhurst of www.semantics.org.