//***************************************************************************
//
//  Library:
//      FM_UTILS.DLL - version 1.1a
//
//  Purpose:
//      FM_UTILS is a File Manager extension DLL. An extension DLL adds
//      a menu to File Manager, contains an entry point that processes menu
//      commands and notification messages sent by File Manager, and
//      queries data and information about the File Manager windows. The 
//      purpose of an extension DLL is to add administration support 
//      features to File Manager, for example, file and disk utilities.
//      Up to five extension DLLs may be installed at any one time.
//
//      FM_UTILS adds a menu (called "Utilities" by default) to File Manager
//      and processes all the messages that are sent by File Manager to an 
//      extension DLL. In order to retrieve any information, it sends 
//      messages to File Manager.
//
//  Usage:
//      File Manager installs the extensions that have entries in the 
//      [AddOns] section of the WINFILE.INI initialization file. An entry 
//      consists of a tag and a value. To load FM_UTILS.DLL as a File 
//      Manager extension, add the following to WINFILE.INI (assuming the 
//      DLL resides in c:\win\system):
//
//          [AddOns]
//          FM_Utils Extension=fm_utils.dll
// 
//      In addition, a section specific to this Extension DLL is added to
//      WINFILE.INI. There are several elements to this section:
//      For each utility to appear on the menu, there is a 'UserProgn=' tag,
//      and a 'UserDescn=' tag. Comments (preceded by semicolons) are optional.
//      You may have up to twenty separate utilities specified.
//      You can also specify up to five utilities to load at the same time as
//      FileMan, and exit when you close FileMan. You use the 'PreLoadn='
//      tag for this. All of the utilities are started with the SW_SHOWMINNOACTIVE
//      setting (minimized, but not activated).
//      And, you can specify the name of the added menu. If you choose not to,
//      the default is "&Utilities". This provides foreign language support,
//      as well as allowing you to use a very short name, to keep the menu bar
//      from growing too long. The tag to use is 'UserMenuName='.
//
//          [FM_Utils Extension]
//          ;Name the menu
//          UserMenuName=&Util
//          ;add Upper Deck Editor to menu
//          UserDesc1=&Edit File(s)
//          UserProg1=D:\UDE\UDE.EXE
//          ;add V. Buerg's LIST to menu
//          UserDesc2=&View File(s)
//          UserProg2=LIST.PIF
//          ;PreLoad Trash Can
//          PreLoad1=TRASH.EXE
//
//  Revision History:
//      1.0 - March '92 - initial release
//
//      1.1 - April '92 - added ability to PreLoad utilities. This seems even
//                  more popular than the original DLL.
//
//      1.1a - August '92 - added ability to specify menu name; changed
//                  SendMessage(...WM_CLOSE...) to PostMessage(...WM_CLOSE...)
//                  since it seemed to make more sense.
//
//  Notes:
//      Portions of the base code for this utility is based on, and borrowed
//      from, the XTENSION sample code provided with the Microsoft Windows
//      3.1 SDK.
//
//      FM_UTILS attempts to close any auto-started utilities by posting a
//      WM_CLOSE to it's main window. There's no guarantee that this method
//      will work for *all* programs. If you know of a better way to handle
//      this situation, I'd be *really* happy to hear about it.
//
//      While it's not properly documented anywhere, it seems that the maximum
//      command line to pass to WinExec() is 128 characters. Since we have to
//      pass in complete pathnames for all files in order for this to work,
//      we may not be able to pass *all* selected file names.
//
//  Copyright (c) 1992 by Brad P. Smith - all rights reserved
//
//  snail:  R.R. #2 - 777 Crozier Rd.
//          Oxford Mills, Ontario, CANADA
//          K0G 1S0
//
//  E-Mail: 'B.P.Smith@BIX.com'
//
//      This utility DLL is FreeWare. Don't let *anybody* charge you for it.
//      However, I would *really* appreciate hearing from you if you find
//      FM_UTILS useful. Drop me a postcard or E-mail. I could use the moral
//      support. :-)
//
//***************************************************************************
