-----------------------------------------------------------------

                         TmdMailSlot

-----------------------------------------------------------------

The inhand package is in version 1.5, and given free the
xxth xxxxxxxx 1997.

Latest version will always be avalible from
http://einstein.ot.dk/~djernaes

The Package gives tree classes (two components) to use within
the Delphi 2.0 and 3.0 enviroment (eventually also C++ Builder,
but that is not prooven).

The last time quite a lot of people have asked me why they get
duplicated messages from a mailslot. The reason is that a 
mailslot message is send via all availible transport layers on
the network (meaning that if you have more than one protocol
installed on the sending computer, which also is installed on the
receiving computer, you will get duplicates of the message).
This is the reason that I have created my new secure mailslot
component. The component add a preample (4 chars), which is used
to make the message as close to unique as possible, and a CRC16 
(4 chars) for preventing messages with errors in sending out
a OnMessage event.
You should notice that the TmdWinPopup component is unchanged, 
since it has to compatible with WinPopup !

-----------------------------------------------------------------
Components :
  TmdCustomMailSlot
  TmdMailSlot
  TmdAutoMailSlot  - Not relevant any longer (see source)
  TmdCustomWinPopup
  TmdWinPopup
  TmdCustomSecureMail
  TmdSecureMail

TmdCustomMailSlot :
  This is the base class containing all the mailslot functionallity
  given.

TmdMailSlot :
  This is the basic mailslot component, with the properties published.

TmdAutoMailSlot :
  This class in only included for compatibility with verions 1.0 of
  the package.

TmdCustomWinPopup :
  A class derived from TCustomMailSlot, build around the mailslot
  "messngr". The calss have the ability to recieve and send messages
  like WinPopup messages.

TmdCustomSecureMail :
  This class is based on the TmdCustomMailSlot, and do self remove 
  duplicated messages which may come because of availability of
  more than one transport layer in the network (more than one 
  protocol).
  The component have also got a CRC16 added to the message, so
  now it is also trying to prevent that a "broken" message is 
  arriving.
  This component also offer to new events, one inform about
  a wrong message (hole message including preample and CRC16 
  is passed as parameter) and a notification about a duplicate
  is detected.

TmdSecureMail :
  This component is the "public" version of TmdCustomSecureMail,
  and make all avalible properties published.

-----------------------------------------------------------------
Functions :
  SendToMailSlot
  SendBufToMailSlot

SendToMailSlot :
  This is a function which can send a message to a mailslot anywhere
  in the network.

SendBufToMailSlot :
  This is a function which send a buffer's contents to a mailslot
  anywhere in the network.

SendSecureMail :
  This function send a message (string) to a secure mailslot.

SendBufSecure :
  This function send a buffer to a secure mailslot.

-----------------------------------------------------------------
Note :
  There is different ways of specifying different servers, or groups
  of servers.

  The notation "." is the current server = the machine where the
  program runs.

  The notation "*" is the current domain = the domain on the network
  which the server (the machine where the program runs on) is pressent.

  The notation "XXX" is the machine with the name XXX.

* The next one I am not sure about, but try it and tell me if it
  were working.

  The notation "XXX*" is the domain with the name XXX.

-----------------------------------------------------------------
Thanks :

  Thanks to Don Hass for giving me information about WinPopup's
  mailslot.

  Thanks to Matt Behrens for suggesting how to reduce the need
  of process time.

  Thanks to Channing Corn & Gary Winslow for reminding of my own
  mistakes ;-)

  Thanks to Alexander Orlov for his comments / information in
  general, and for finding one sure error and preventing another.

-----------------------------------------------------------------
Legal issues :
Copyright  1997 by Martin Djerns <djernaes@metronet.de>

This software is provided as it is, without any kind of warranty
given. The auther can not be held responsible for any kind of
damage, problems etc. arised from using this product.

You may use this software in any kind of development, including
comercial, and redistribute it freely, under the following
restrictions :

1. The origin of this software may not be mispresented, you must
   not claim that you wrote the original software. If you use
   this software in any kind of product, it would be appreciated
   that there in a information box, or in the documentation would
   be an acknowledgmnent like this
          Parts Copyright  1997 by Martin Djerns

2. You may not have any income from distributing this source
   to other developers. When you use this product in a comercial
   package, the source may not be charged seperatly.

3. This notice may not be removed from the source, when distributing
   such. When distributing a comercial package, where the source
   also is avalible, this notice should also follow the package, even
   you choose not to make my source avalible.

                                                               - MD97