THIRD PARTY DEVELOPMENT FOR BLACKMAIL

BlackMail is designed to allow third-party developers to write add-ons allowing
the reader to use future (and current) packet formats not normally supported.
This is done by adding hooks into the reader to run external programs to
import and export from BlackMail to those packet formats.

PROGRAM DEVELOPMENT

The most difficult part of the job is, of course, writing the program(s) to
do the actual import and export of the messages.  To this end, this archive
includes a description of all data files and their structures, entitled
FILES.TXT.  For those who are Pascal-inclined (since the main program itself
was written in Virtual Pascal), I have enclosed the source code for a unit to
easily read and write to the BlackMail message database.  (This is the same
code used by the main reader itself.)
        Also enclosed is a string-operations unit called STRING3.  I wrote
these routines a long time back, and have found them invaluable in all my
programming.  Since you would have next to no chance of deciphering the
database code without these routines, I have included them here.  Use them
as you wish.

IMPLEMENTATION

BlackMail keeps track of what type of packet each BBS uses via an eight
character (or less) string called a Packet type.  The types "QWK," "QWKE,"
and "SOUP" are reserved as either in use or under development.  All other
packet types should be descriptive, while sticking to the eight-character-
or-less rule.
        To add a hook for your program in BlackMail, you should either
include (or have an installer create) a file with the extension ".BME"
(for "BlackMail Expansion").  This will be a text file with three lines.
        The first line should be the packet type code.  Remember, eight
characters or less.
        The second line is the command line to execute when IMPORTING a
packet.  The name of the packet file will be passed in the command line
wherever you include the string "%F".
        The third line is the command line to execute when EXPORTING replies.
BlackMail will create a data file with a list of the conference numbers
for that BBS that have outgoing messages.  (For Pascal users, a file of
LONGINTs.  For C users, a file of ULONGs.)  This file's name will also be
passed where you include a %F in the command line.
        For example, if you were to create a program to import and export
BlueWave packets in BlackMail, your .BME file may look like this:

BLUEWAVE
BMBW.EXE -I %F
BMBW.EXE -O %F

        When BlackMail is loaded, it checks all .BME files in its directory,
and adds import commands for each packet type under the "File" menu.  For
example, if you were to add the above three lines as a .BME file, the "File"
menu when BlackMail is next run would read:

        File
           Import QWK packet
           Import BLUEWAVE packet
           Import SOUP packet
           Import ALL QWK packets
           Quit

        If you were to then add a .BME file pointing to a program handling
OPX format packets, the "File" menu would then read:

        File
           Import QWK packet
           Import BLUEWAVE packet
           Import OPX packet
           Import SOUP packet
           Import ALL QWK packets
           Quit

        The reader will automatically know what the packet format of each
BBS with outgoing messages is, and run the appropriate program when needed.

QUESTIONS

        If you have any questions, please feel free to E-Mail me.  My
address is pab@cnx.com.
