
Pie Shell, by Stephen Fierbaugh
INTERNET: sfierbaugh@acm.org

Pie Shell is in the public domain.  If you use it, please drop
me a line & a copy of your program.  Or better yet, throw some
consulting my way!  Needless to say, I'm responsible for nothing
this program may do and no warranty is expressed or implied.

Pie Shell is a Windows 3.1 program.  It requires VBRUN300.DLL to
run.  Pie Shell generates skeleton header & CPP files for new
classes, which you can then 'pour your batter into'.

The code which it generates is quite clean and has been tested
with BC++, but should run with any C++ compiler (except for the
Borland streaming options).  Places which will require additional
work are clearly commented.


			Options


Handle Import/Export Correctly	(default = ON)

This will generate macro code which __correctly__ exports the
class.  This is useful for classes in DLLs.  The macros ensure
that the class is '_export'ed and '_import'ed correctly where-
ever needed.  It also includes the '_export' keyword in out-of-
line function definitions where needed.  You must correctly
identify the header, CPP, and EXE/DLL file names for this to
work.


Common Helper Functions (default = ON)

Leaving this ON generates a number of common useful functions:
IsValid();	Returns TRUE/FALSE for if the internal state
		is valid.
Reset();	Sets the class to whatever the equivalent of
		NULL or zero is.
Setup();	Don't you hate writing the same code for several
		different constructors which just slightly
		manipulate parameters differently?  Massage your
		parameters and then call this function.  You will
		have to add parameters to this function, though,
		to get it to work nicely.
IsEqual();	TRUE/FALSE, enough said.
Copy();		Just what you'd expect.
With this option on, other places in the generated code call
these functions where appropriate.  You will need to add
appropriate functionality inside of these functions.


BC++ Streaming Functions (default = ON)

This adds everything necessary to implement streaming the class
out to disk through OWL.  See notes at the top of the header
for necessary compiler settings and other requirements.  It
also adds the bare minimum TObject stuff to support streaming.
You will have to write the code inside of write() & read().


PVCS Comments Block (default = ON)

Adds the standard PVCS header block to the top of both the
Header and CPP files.


Constructors/Destructor (all defaults = ON)

Covers default & copy constructors and the destructor, with
inline/out-of-line options and the ability to make your
destructor virtual.


Operators (default = ON for ==, <, >, <=, >=, !=, =)

Covers basically all of the possible operators.  Some of
these are disabled because it is not legal to overload them.
Wouldn't it be nice to not have to look up syntax on these
guys?  No problem, Pie Shell does it for you!



