The Powerpoint filter design has these components:

powerpointfilter.h
powerpoint.h
pptdoc.h
pptxml.h

These are described in turn below.

powerpointfilter.h
==================

This is the interface to the KOffice filter architecture. It is invoked from
olefilter when an OLE file is detected to have a Powerpoint document in it.

powerpoint.h
============

This is the actual parser. It is designed to walk the Powerpoint file and is
not intended to have much embedded knowledge beyond that required to invoke
a series of virtual functions when it recognises low level objects. See also
pptdoc.h.

In principle, each record in the Powerpoint file is modelled as a structure
defined in powerpoint.h, as well as a virtual function callback to output it.
In practice, this is true only of records that contain data. Records that are
simply containers for other records don't have an associated structure, but
instead have two callbacks, one each marking entry to and exit from the 
container.

pptdoc.h
========

The purpose of pptdoc.h is to take the output from powerpoint.h and create a
high level interface to the Powerpoint file contents. The idea is that it can
take the low output from powerpoint.h and aggregate it into objects at a more
useful level of abstraction.

The output of this is again via a series of virtual function callbacks.
Subclasses of pptdoc.h can simply override the callbacks for the objects of 
interest.

pptxml.h
========

This is a subclass of pptdoc.h that produces kpresenter-compatible XML which
is delivered to kpresenter via powerpointfilter.h.
